From fe7581101b8ac4119e402eebb5ec4bb051404ff3 Mon Sep 17 00:00:00 2001 From: cgewecke Date: Sun, 22 Dec 2019 13:21:35 -0800 Subject: [PATCH 1/4] Add solc-6 integration test sources / upgrade Buidler --- package.json | 6 +- test/integration/projects/solc-6/.solcover.js | 8 + .../projects/solc-6/buidler.config.js | 10 + .../solc-6/build/contracts/ContractA.json | 3351 +++++++++++++++++ .../solc-6/build/contracts/ContractB.json | 657 ++++ .../projects/solc-6/contracts/ContractA.sol | 56 + .../projects/solc-6/contracts/ContractB.sol | 18 + test/integration/projects/solc-6/test/test.js | 27 + .../projects/solc-6/truffle-config.js | 9 + yarn.lock | 502 ++- 10 files changed, 4561 insertions(+), 83 deletions(-) create mode 100644 test/integration/projects/solc-6/.solcover.js create mode 100644 test/integration/projects/solc-6/buidler.config.js create mode 100644 test/integration/projects/solc-6/build/contracts/ContractA.json create mode 100644 test/integration/projects/solc-6/build/contracts/ContractB.json create mode 100644 test/integration/projects/solc-6/contracts/ContractA.sol create mode 100644 test/integration/projects/solc-6/contracts/ContractB.sol create mode 100644 test/integration/projects/solc-6/test/test.js create mode 100644 test/integration/projects/solc-6/truffle-config.js diff --git a/package.json b/package.json index 3d7b7041..5a474b15 100644 --- a/package.json +++ b/package.json @@ -44,9 +44,9 @@ "web3-utils": "^1.0.0" }, "devDependencies": { - "@nomiclabs/buidler": "^1.0.1", - "@nomiclabs/buidler-truffle5": "^1.0.1", - "@nomiclabs/buidler-web3": "^1.0.1", + "@nomiclabs/buidler": "^1.0.2", + "@nomiclabs/buidler-truffle5": "^1.0.2", + "@nomiclabs/buidler-web3": "^1.0.2", "@truffle/contract": "^4.0.36", "decache": "^4.5.1", "ganache-core-sc": "^2.7.0-sc.0", diff --git a/test/integration/projects/solc-6/.solcover.js b/test/integration/projects/solc-6/.solcover.js new file mode 100644 index 00000000..c2453041 --- /dev/null +++ b/test/integration/projects/solc-6/.solcover.js @@ -0,0 +1,8 @@ +// Testing hooks +const fn = (msg, config) => config.logger.log(msg); + +module.exports = { + skipFiles: ['Migrations.sol'], + silent: process.env.SILENT ? true : false, + istanbulReporter: ['json-summary', 'text'], +} diff --git a/test/integration/projects/solc-6/buidler.config.js b/test/integration/projects/solc-6/buidler.config.js new file mode 100644 index 00000000..ea8e0537 --- /dev/null +++ b/test/integration/projects/solc-6/buidler.config.js @@ -0,0 +1,10 @@ +const { loadPluginFile } = require("@nomiclabs/buidler/plugins-testing"); +loadPluginFile(__dirname + "/../plugins/buidler.plugin"); +usePlugin("@nomiclabs/buidler-truffle5"); + +module.exports={ + defaultNetwork: "buidlerevm", + solc: { + version: "0.6.0" + } +}; diff --git a/test/integration/projects/solc-6/build/contracts/ContractA.json b/test/integration/projects/solc-6/build/contracts/ContractA.json new file mode 100644 index 00000000..1b8959b7 --- /dev/null +++ b/test/integration/projects/solc-6/build/contracts/ContractA.json @@ -0,0 +1,3351 @@ +{ + "contractName": "ContractA", + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "i", + "type": "uint256" + } + ], + "name": "simpleSet", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "i", + "type": "uint256" + } + ], + "name": "simpleView", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "tryCatch", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "arraySlice", + "outputs": [], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "payableFn", + "outputs": [], + "stateMutability": "pure", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.6.0+commit.26b70077\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"arraySlice\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"payableFn\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"i\",\"type\":\"uint256\"}],\"name\":\"simpleSet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"i\",\"type\":\"uint256\"}],\"name\":\"simpleView\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tryCatch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/cgewecke/code/sc-forks/new-master/solidity-coverage/test/integration/projects/solc-6/contracts/ContractA.sol\":\"ContractA\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/cgewecke/code/sc-forks/new-master/solidity-coverage/test/integration/projects/solc-6/contracts/ContractA.sol\":{\"keccak256\":\"0x9b6e7b6cc41348b9f5e5392b86e6aa701d550fea4e78dcca05f13af30cd9dfb8\",\"urls\":[\"bzz-raw://c30e9dbf7d631efeadff10706cd72cc801621d76ccf5e367d32dacdcbdc73eda\",\"dweb:/ipfs/QmQquC8fxdJxARRdoEB3BA651N5mxjd8SQq3Q9kHdyH2cP\"]},\"/Users/cgewecke/code/sc-forks/new-master/solidity-coverage/test/integration/projects/solc-6/contracts/ContractB.sol\":{\"keccak256\":\"0xccbf300f949b1b68c26ee6af298386638715dca51a1e2e9b0efc554c0503fe42\",\"urls\":[\"bzz-raw://8500ac51b5fb269af86de1aa5f050d937bc3a1dc7b459cbf2473a64cf6ba404e\",\"dweb:/ipfs/QmY2xsfwMNw7ZRjwTiPsT7DGMaVxKu6yBGxQJ9y1jFGmsp\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b506103ca806100206000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063531ba2f21461005c5780637c5a83e01461008a5780637ef135f5146100d75780639162736b146100e1578063eb9ef6d3146100eb575b600080fd5b6100886004803603602081101561007257600080fd5b8101908080359060200190929190505050610114565b005b6100b6600480360360208110156100a057600080fd5b8101908080359060200190929190505050610122565b60405180838152602001821515151581526020019250505060405180910390f35b6100df610140565b005b6100e961014a565b005b6100f36101a6565b60405180838152602001821515151581526020019250505060405180910390f35b806001540160018190555050565b600080600161013057600080fd5b8260015401600191509150915091565b6000808190505050565b6000366004818082111561015d57600080fd5b8281111561016a57600080fd5b600182028401935081810392505050604081101561018757600080fd5b8101908080359060200190929190803590602001909291905050505050565b6000803073ffffffffffffffffffffffffffffffffffffffff16637c5a83e060056040518263ffffffff1660e01b815260040180828152602001915050604080518083038186803b1580156101fa57600080fd5b505afa92505050801561023857506040513d604081101561021a57600080fd5b81019080805190602001909291908051906020019092919050505060015b6103825760006040519050600081526001156103015760443d10156102605760009050610301565b60046000803e60005160e01c6308c379a08114610281576000915050610301565b60043d036004833e81513d602482011167ffffffffffffffff821117156102ad57600092505050610301565b808301805167ffffffffffffffff8111156102cf576000945050505050610301565b8060208301013d86018111156102ed57600095505050505050610301565b601f19601f82011660405282955050505050505b8061030c575061032e565b6002600081548092919060010191905055506000808191509250925050610390565b3d806000811461035a576040519150601f19603f3d011682016040523d82523d6000602084013e61035f565b606091505b506002600081548092919060010191905055506000808191509250925050610390565b600260018191509350935050505b909156fea26469706673582212205c35c0df5637a0ba0ffef868ded38cf2a604466a405b073e6458fefd3f85e05064736f6c63430006000033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100575760003560e01c8063531ba2f21461005c5780637c5a83e01461008a5780637ef135f5146100d75780639162736b146100e1578063eb9ef6d3146100eb575b600080fd5b6100886004803603602081101561007257600080fd5b8101908080359060200190929190505050610114565b005b6100b6600480360360208110156100a057600080fd5b8101908080359060200190929190505050610122565b60405180838152602001821515151581526020019250505060405180910390f35b6100df610140565b005b6100e961014a565b005b6100f36101a6565b60405180838152602001821515151581526020019250505060405180910390f35b806001540160018190555050565b600080600161013057600080fd5b8260015401600191509150915091565b6000808190505050565b6000366004818082111561015d57600080fd5b8281111561016a57600080fd5b600182028401935081810392505050604081101561018757600080fd5b8101908080359060200190929190803590602001909291905050505050565b6000803073ffffffffffffffffffffffffffffffffffffffff16637c5a83e060056040518263ffffffff1660e01b815260040180828152602001915050604080518083038186803b1580156101fa57600080fd5b505afa92505050801561023857506040513d604081101561021a57600080fd5b81019080805190602001909291908051906020019092919050505060015b6103825760006040519050600081526001156103015760443d10156102605760009050610301565b60046000803e60005160e01c6308c379a08114610281576000915050610301565b60043d036004833e81513d602482011167ffffffffffffffff821117156102ad57600092505050610301565b808301805167ffffffffffffffff8111156102cf576000945050505050610301565b8060208301013d86018111156102ed57600095505050505050610301565b601f19601f82011660405282955050505050505b8061030c575061032e565b6002600081548092919060010191905055506000808191509250925050610390565b3d806000811461035a576040519150601f19603f3d011682016040523d82523d6000602084013e61035f565b606091505b506002600081548092919060010191905055506000808191509250925050610390565b600260018191509350935050505b909156fea26469706673582212205c35c0df5637a0ba0ffef868ded38cf2a604466a405b073e6458fefd3f85e05064736f6c63430006000033", + "sourceMap": "52:872:0:-:0;;;190:26;8:9:-1;5:2;;;30:1;27;20:12;5:2;190:26:0;52:872;;;;;;", + "deployedSourceMap": "52:872:0:-:0;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;52:872:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;220:96;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;220:96:0;;;;;;;;;;;;;;;;;:::i;:::-;;320:129;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;320:129:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;841:81;;;:::i;:::-;;754:83;;;:::i;:::-;;453:297;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;220:96;310:1;300:7;;:11;290:7;:21;;;;220:96;:::o;320:129::-;398:4;404;169;161:13;;;;;;436:1:::1;426:7;;:11;439:4;418:26;;;;320:129:::0;;;:::o;841:81::-;880:9;895;915:1;895:22;;841:81;;:::o;754:83::-;805:8;;814:1;805:12;25:8:-1;13:10;10:24;7:2;;;47:1;44;37:12;7:2;73:6;63:8;60:20;57:2;;;93:1;90;83:12;57:2;142:1;130:10;126:18;118:6;114:31;104:41;;175:10;165:8;161:25;151:35;;805:12:0;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;794:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;754:83::o;453:297::-;489:4;495;511;:15;;;527:1;511:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;511:18:0;;;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;511:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;507:239;;;20:4:-1;14:11;6:19;;43:1;37:4;30:15;57:1;50:730;;;93:4;75:16;72:26;69:2;;;109:1;101:9;;111:5;;69:2;145:1;142;139;124:23;179:1;173:8;168:3;164:18;206:10;201:3;198:19;188:2;;229:1;221:9;;231:5;;;188:2;290:1;272:16;268:24;265:1;259:4;244:49;319:4;313:11;403:16;396:4;388:6;384:17;381:39;354:18;346:6;343:30;333:94;330:2;;;444:1;436:9;;452:5;;;;330:2;491:6;485:4;481:17;524:3;518:10;548:18;540:6;537:30;534:2;;;578:1;570:9;;580:5;;;;;;534:2;624:6;617:4;612:3;608:14;604:27;658:16;652:4;648:27;643:3;640:36;637:2;;;687:1;679:9;;689:5;;;;;;;637:2;739:4;735:9;728:4;723:3;719:14;715:30;709:4;702:44;760:3;752:11;;769:5;;;;;50:730;507:239:0;;;;;;;622:10;;:12;;;;;;;;;;;;;652:1;655:5;644:17;;;;;;;;;;507:239;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;700:10:0;;:12;;;;;;;;;;;;;730:1;733:5;722:17;;;;;;;;;;507:239;569:1;572:4;561:16;;;;;;;;;453:297;;;:::o", + "source": "pragma solidity ^0.6.0;\n\nimport \"./ContractB.sol\";\n\ncontract ContractA is ContractB {\n uint counter;\n uint errorCount;\n\n modifier overridden() override {\n require(true);\n _;\n }\n\n constructor() public {\n }\n\n function simpleSet(uint i)\n public\n override(ContractB)\n {\n counter = counter + i;\n }\n\n function simpleView(uint i)\n view\n overridden\n external\n returns (uint, bool)\n {\n return (counter + i, true);\n }\n\n function tryCatch() public returns (uint, bool) {\n try this.simpleView(5) returns (uint, bool) {\n return (2, true);\n } catch Error(string memory) {\n errorCount++;\n return (0, false);\n } catch (bytes memory) {\n errorCount++;\n return (0, false);\n }\n }\n\n function arraySlice() public pure {\n abi.decode(msg.data[4:], (uint, uint));\n }\n\n function payableFn() public pure {\n address x;\n address y = payable(x);\n }\n}\n", + "sourcePath": "/Users/cgewecke/code/sc-forks/new-master/solidity-coverage/test/integration/projects/solc-6/contracts/ContractA.sol", + "ast": { + "absolutePath": "/Users/cgewecke/code/sc-forks/new-master/solidity-coverage/test/integration/projects/solc-6/contracts/ContractA.sol", + "exportedSymbols": { + "ContractA": [ + 134 + ] + }, + "id": 135, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:23:0" + }, + { + "absolutePath": "/Users/cgewecke/code/sc-forks/new-master/solidity-coverage/test/integration/projects/solc-6/contracts/ContractB.sol", + "file": "./ContractB.sol", + "id": 2, + "nodeType": "ImportDirective", + "scope": 135, + "sourceUnit": 162, + "src": "25:25:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 3, + "name": "ContractB", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 161, + "src": "74:9:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ContractB_$161", + "typeString": "contract ContractB" + } + }, + "id": 4, + "nodeType": "InheritanceSpecifier", + "src": "74:9:0" + } + ], + "contractDependencies": [ + 161 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 134, + "linearizedBaseContracts": [ + 134, + 161 + ], + "name": "ContractA", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 6, + "name": "counter", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 134, + "src": "88:12:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "88:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8, + "name": "errorCount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 134, + "src": "104:15:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "104:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "baseModifiers": [ + 150 + ], + "body": { + "id": 16, + "nodeType": "Block", + "src": "155:31:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "74727565", + "id": 12, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "169:4:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 11, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 179, + 180 + ], + "referencedDeclaration": 179, + "src": "161:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 13, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "161:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14, + "nodeType": "ExpressionStatement", + "src": "161:13:0" + }, + { + "id": 15, + "nodeType": "PlaceholderStatement", + "src": "180:1:0" + } + ] + }, + "documentation": null, + "id": 17, + "name": "overridden", + "nodeType": "ModifierDefinition", + "overrides": { + "id": 10, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "146:8:0" + }, + "parameters": { + "id": 9, + "nodeType": "ParameterList", + "parameters": [], + "src": "143:2:0" + }, + "src": "124:62:0", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 20, + "nodeType": "Block", + "src": "211:5:0", + "statements": [] + }, + "documentation": null, + "id": 21, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 18, + "nodeType": "ParameterList", + "parameters": [], + "src": "201:2:0" + }, + "returnParameters": { + "id": 19, + "nodeType": "ParameterList", + "parameters": [], + "src": "211:0:0" + }, + "scope": 134, + "src": "190:26:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 160 + ], + "body": { + "id": 34, + "nodeType": "Block", + "src": "284:32:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 32, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 28, + "name": "counter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6, + "src": "290:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 31, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 29, + "name": "counter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6, + "src": "300:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 30, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23, + "src": "310:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "300:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "290:21:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 33, + "nodeType": "ExpressionStatement", + "src": "290:21:0" + } + ] + }, + "documentation": null, + "functionSelector": "531ba2f2", + "id": 35, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "simpleSet", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 26, + "nodeType": "OverrideSpecifier", + "overrides": [ + { + "contractScope": null, + "id": 25, + "name": "ContractB", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 161, + "src": "271:9:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ContractB_$161", + "typeString": "contract ContractB" + } + } + ], + "src": "262:19:0" + }, + "parameters": { + "id": 24, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 23, + "name": "i", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 35, + "src": "239:6:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 22, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "239:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "238:8:0" + }, + "returnParameters": { + "id": 27, + "nodeType": "ParameterList", + "parameters": [], + "src": "284:0:0" + }, + "scope": 134, + "src": "220:96:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 52, + "nodeType": "Block", + "src": "412:37:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 48, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 46, + "name": "counter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6, + "src": "426:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 47, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "436:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "426:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "74727565", + "id": 49, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "439:4:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + } + ], + "id": 50, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "425:19:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", + "typeString": "tuple(uint256,bool)" + } + }, + "functionReturnParameters": 45, + "id": 51, + "nodeType": "Return", + "src": "418:26:0" + } + ] + }, + "documentation": null, + "functionSelector": "7c5a83e0", + "id": 53, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 40, + "modifierName": { + "argumentTypes": null, + "id": 39, + "name": "overridden", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17, + "src": "361:10:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "361:10:0" + } + ], + "name": "simpleView", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 38, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 37, + "name": "i", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 53, + "src": "340:6:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 36, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "340:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "339:8:0" + }, + "returnParameters": { + "id": 45, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 42, + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 53, + "src": "398:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 41, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "398:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 44, + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 53, + "src": "404:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 43, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "404:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "397:12:0" + }, + "scope": 134, + "src": "320:129:0", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 100, + "nodeType": "Block", + "src": "501:249:0", + "statements": [ + { + "clauses": [ + { + "block": { + "id": 73, + "nodeType": "Block", + "src": "551:33:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "hexValue": "32", + "id": 69, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "569:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + { + "argumentTypes": null, + "hexValue": "74727565", + "id": 70, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "572:4:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + } + ], + "id": 71, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "568:9:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_rational_2_by_1_$_t_bool_$", + "typeString": "tuple(int_const 2,bool)" + } + }, + "functionReturnParameters": 59, + "id": 72, + "nodeType": "Return", + "src": "561:16:0" + } + ] + }, + "errorName": "", + "id": 74, + "nodeType": "TryCatchClause", + "parameters": { + "id": 68, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 65, + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 74, + "src": "539:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 64, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "539:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 67, + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 74, + "src": "545:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 66, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "545:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "538:12:0" + }, + "src": "530:54:0" + }, + { + "block": { + "id": 85, + "nodeType": "Block", + "src": "612:56:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 79, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "622:12:0", + "subExpression": { + "argumentTypes": null, + "id": 78, + "name": "errorCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8, + "src": "622:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 80, + "nodeType": "ExpressionStatement", + "src": "622:12:0" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 81, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "652:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 82, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "655:5:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + } + ], + "id": 83, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "651:10:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_rational_0_by_1_$_t_bool_$", + "typeString": "tuple(int_const 0,bool)" + } + }, + "functionReturnParameters": 59, + "id": 84, + "nodeType": "Return", + "src": "644:17:0" + } + ] + }, + "errorName": "Error", + "id": 86, + "nodeType": "TryCatchClause", + "parameters": { + "id": 77, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 76, + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 86, + "src": "597:13:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 75, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "597:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "596:15:0" + }, + "src": "585:83:0" + }, + { + "block": { + "id": 97, + "nodeType": "Block", + "src": "690:56:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 91, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "700:12:0", + "subExpression": { + "argumentTypes": null, + "id": 90, + "name": "errorCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8, + "src": "700:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 92, + "nodeType": "ExpressionStatement", + "src": "700:12:0" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 93, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "730:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 94, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "733:5:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + } + ], + "id": 95, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "729:10:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_rational_0_by_1_$_t_bool_$", + "typeString": "tuple(int_const 0,bool)" + } + }, + "functionReturnParameters": 59, + "id": 96, + "nodeType": "Return", + "src": "722:17:0" + } + ] + }, + "errorName": "", + "id": 98, + "nodeType": "TryCatchClause", + "parameters": { + "id": 89, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 88, + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 98, + "src": "676:12:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 87, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "676:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "675:14:0" + }, + "src": "669:77:0" + } + ], + "externalCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "35", + "id": 62, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "527:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "5" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + } + ], + "expression": { + "argumentTypes": null, + "id": 60, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 192, + "src": "511:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ContractA_$134", + "typeString": "contract ContractA" + } + }, + "id": 61, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "simpleView", + "nodeType": "MemberAccess", + "referencedDeclaration": 53, + "src": "511:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint256_$_t_bool_$", + "typeString": "function (uint256) view external returns (uint256,bool)" + } + }, + "id": 63, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "511:18:0", + "tryCall": true, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", + "typeString": "tuple(uint256,bool)" + } + }, + "id": 99, + "nodeType": "TryStatement", + "src": "507:239:0" + } + ] + }, + "documentation": null, + "functionSelector": "eb9ef6d3", + "id": 101, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryCatch", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 54, + "nodeType": "ParameterList", + "parameters": [], + "src": "470:2:0" + }, + "returnParameters": { + "id": 59, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 56, + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 101, + "src": "489:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 55, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "489:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 58, + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 101, + "src": "495:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 57, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "495:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "488:12:0" + }, + "scope": 134, + "src": "453:297:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 118, + "nodeType": "Block", + "src": "788:49:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 107, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 176, + "src": "805:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 108, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "data", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "805:8:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "endExpression": null, + "id": 110, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexRangeAccess", + "src": "805:12:0", + "startExpression": { + "argumentTypes": null, + "hexValue": "34", + "id": 109, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "814:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr_slice", + "typeString": "bytes calldata slice" + } + }, + { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 112, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "820:4:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 111, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "820:4:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + { + "argumentTypes": null, + "id": 114, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "826:4:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 113, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "826:4:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + } + ], + "id": 115, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "819:12:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$", + "typeString": "tuple(type(uint256),type(uint256))" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_calldata_ptr_slice", + "typeString": "bytes calldata slice" + }, + { + "typeIdentifier": "t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$", + "typeString": "tuple(type(uint256),type(uint256))" + } + ], + "expression": { + "argumentTypes": null, + "id": 104, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 163, + "src": "794:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 106, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "decode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "794:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 116, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "794:38:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "id": 117, + "nodeType": "ExpressionStatement", + "src": "794:38:0" + } + ] + }, + "documentation": null, + "functionSelector": "9162736b", + "id": 119, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "arraySlice", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 102, + "nodeType": "ParameterList", + "parameters": [], + "src": "773:2:0" + }, + "returnParameters": { + "id": 103, + "nodeType": "ParameterList", + "parameters": [], + "src": "788:0:0" + }, + "scope": 134, + "src": "754:83:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 132, + "nodeType": "Block", + "src": "874:48:0", + "statements": [ + { + "assignments": [ + 123 + ], + "declarations": [ + { + "constant": false, + "id": 123, + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 132, + "src": "880:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 122, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "880:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 124, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "880:9:0" + }, + { + "assignments": [ + 126 + ], + "declarations": [ + { + "constant": false, + "id": 126, + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 132, + "src": "895:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 125, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "895:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 131, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 129, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 123, + "src": "915:1:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 128, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "907:8:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_payable_$", + "typeString": "type(address payable)" + }, + "typeName": { + "id": 127, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "907:8:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 130, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "907:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "895:22:0" + } + ] + }, + "documentation": null, + "functionSelector": "7ef135f5", + "id": 133, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "payableFn", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 120, + "nodeType": "ParameterList", + "parameters": [], + "src": "859:2:0" + }, + "returnParameters": { + "id": 121, + "nodeType": "ParameterList", + "parameters": [], + "src": "874:0:0" + }, + "scope": 134, + "src": "841:81:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + } + ], + "scope": 135, + "src": "52:872:0" + } + ], + "src": "0:925:0" + }, + "legacyAST": { + "absolutePath": "/Users/cgewecke/code/sc-forks/new-master/solidity-coverage/test/integration/projects/solc-6/contracts/ContractA.sol", + "exportedSymbols": { + "ContractA": [ + 134 + ] + }, + "id": 135, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:23:0" + }, + { + "absolutePath": "/Users/cgewecke/code/sc-forks/new-master/solidity-coverage/test/integration/projects/solc-6/contracts/ContractB.sol", + "file": "./ContractB.sol", + "id": 2, + "nodeType": "ImportDirective", + "scope": 135, + "sourceUnit": 162, + "src": "25:25:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 3, + "name": "ContractB", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 161, + "src": "74:9:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ContractB_$161", + "typeString": "contract ContractB" + } + }, + "id": 4, + "nodeType": "InheritanceSpecifier", + "src": "74:9:0" + } + ], + "contractDependencies": [ + 161 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 134, + "linearizedBaseContracts": [ + 134, + 161 + ], + "name": "ContractA", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 6, + "name": "counter", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 134, + "src": "88:12:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "88:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8, + "name": "errorCount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 134, + "src": "104:15:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "104:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "baseModifiers": [ + 150 + ], + "body": { + "id": 16, + "nodeType": "Block", + "src": "155:31:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "74727565", + "id": 12, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "169:4:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 11, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 179, + 180 + ], + "referencedDeclaration": 179, + "src": "161:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 13, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "161:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14, + "nodeType": "ExpressionStatement", + "src": "161:13:0" + }, + { + "id": 15, + "nodeType": "PlaceholderStatement", + "src": "180:1:0" + } + ] + }, + "documentation": null, + "id": 17, + "name": "overridden", + "nodeType": "ModifierDefinition", + "overrides": { + "id": 10, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "146:8:0" + }, + "parameters": { + "id": 9, + "nodeType": "ParameterList", + "parameters": [], + "src": "143:2:0" + }, + "src": "124:62:0", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 20, + "nodeType": "Block", + "src": "211:5:0", + "statements": [] + }, + "documentation": null, + "id": 21, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 18, + "nodeType": "ParameterList", + "parameters": [], + "src": "201:2:0" + }, + "returnParameters": { + "id": 19, + "nodeType": "ParameterList", + "parameters": [], + "src": "211:0:0" + }, + "scope": 134, + "src": "190:26:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 160 + ], + "body": { + "id": 34, + "nodeType": "Block", + "src": "284:32:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 32, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 28, + "name": "counter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6, + "src": "290:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 31, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 29, + "name": "counter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6, + "src": "300:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 30, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23, + "src": "310:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "300:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "290:21:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 33, + "nodeType": "ExpressionStatement", + "src": "290:21:0" + } + ] + }, + "documentation": null, + "functionSelector": "531ba2f2", + "id": 35, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "simpleSet", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 26, + "nodeType": "OverrideSpecifier", + "overrides": [ + { + "contractScope": null, + "id": 25, + "name": "ContractB", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 161, + "src": "271:9:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ContractB_$161", + "typeString": "contract ContractB" + } + } + ], + "src": "262:19:0" + }, + "parameters": { + "id": 24, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 23, + "name": "i", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 35, + "src": "239:6:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 22, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "239:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "238:8:0" + }, + "returnParameters": { + "id": 27, + "nodeType": "ParameterList", + "parameters": [], + "src": "284:0:0" + }, + "scope": 134, + "src": "220:96:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 52, + "nodeType": "Block", + "src": "412:37:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 48, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 46, + "name": "counter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6, + "src": "426:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 47, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 37, + "src": "436:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "426:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "74727565", + "id": 49, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "439:4:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + } + ], + "id": 50, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "425:19:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", + "typeString": "tuple(uint256,bool)" + } + }, + "functionReturnParameters": 45, + "id": 51, + "nodeType": "Return", + "src": "418:26:0" + } + ] + }, + "documentation": null, + "functionSelector": "7c5a83e0", + "id": 53, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 40, + "modifierName": { + "argumentTypes": null, + "id": 39, + "name": "overridden", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17, + "src": "361:10:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "361:10:0" + } + ], + "name": "simpleView", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 38, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 37, + "name": "i", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 53, + "src": "340:6:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 36, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "340:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "339:8:0" + }, + "returnParameters": { + "id": 45, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 42, + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 53, + "src": "398:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 41, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "398:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 44, + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 53, + "src": "404:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 43, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "404:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "397:12:0" + }, + "scope": 134, + "src": "320:129:0", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 100, + "nodeType": "Block", + "src": "501:249:0", + "statements": [ + { + "clauses": [ + { + "block": { + "id": 73, + "nodeType": "Block", + "src": "551:33:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "hexValue": "32", + "id": 69, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "569:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + { + "argumentTypes": null, + "hexValue": "74727565", + "id": 70, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "572:4:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + } + ], + "id": 71, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "568:9:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_rational_2_by_1_$_t_bool_$", + "typeString": "tuple(int_const 2,bool)" + } + }, + "functionReturnParameters": 59, + "id": 72, + "nodeType": "Return", + "src": "561:16:0" + } + ] + }, + "errorName": "", + "id": 74, + "nodeType": "TryCatchClause", + "parameters": { + "id": 68, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 65, + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 74, + "src": "539:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 64, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "539:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 67, + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 74, + "src": "545:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 66, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "545:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "538:12:0" + }, + "src": "530:54:0" + }, + { + "block": { + "id": 85, + "nodeType": "Block", + "src": "612:56:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 79, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "622:12:0", + "subExpression": { + "argumentTypes": null, + "id": 78, + "name": "errorCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8, + "src": "622:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 80, + "nodeType": "ExpressionStatement", + "src": "622:12:0" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 81, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "652:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 82, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "655:5:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + } + ], + "id": 83, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "651:10:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_rational_0_by_1_$_t_bool_$", + "typeString": "tuple(int_const 0,bool)" + } + }, + "functionReturnParameters": 59, + "id": 84, + "nodeType": "Return", + "src": "644:17:0" + } + ] + }, + "errorName": "Error", + "id": 86, + "nodeType": "TryCatchClause", + "parameters": { + "id": 77, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 76, + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 86, + "src": "597:13:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 75, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "597:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "596:15:0" + }, + "src": "585:83:0" + }, + { + "block": { + "id": 97, + "nodeType": "Block", + "src": "690:56:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 91, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "700:12:0", + "subExpression": { + "argumentTypes": null, + "id": 90, + "name": "errorCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8, + "src": "700:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 92, + "nodeType": "ExpressionStatement", + "src": "700:12:0" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 93, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "730:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 94, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "733:5:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + } + ], + "id": 95, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "729:10:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_rational_0_by_1_$_t_bool_$", + "typeString": "tuple(int_const 0,bool)" + } + }, + "functionReturnParameters": 59, + "id": 96, + "nodeType": "Return", + "src": "722:17:0" + } + ] + }, + "errorName": "", + "id": 98, + "nodeType": "TryCatchClause", + "parameters": { + "id": 89, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 88, + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 98, + "src": "676:12:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 87, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "676:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "675:14:0" + }, + "src": "669:77:0" + } + ], + "externalCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "35", + "id": 62, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "527:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "5" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + } + ], + "expression": { + "argumentTypes": null, + "id": 60, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 192, + "src": "511:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ContractA_$134", + "typeString": "contract ContractA" + } + }, + "id": 61, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "simpleView", + "nodeType": "MemberAccess", + "referencedDeclaration": 53, + "src": "511:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint256_$_t_bool_$", + "typeString": "function (uint256) view external returns (uint256,bool)" + } + }, + "id": 63, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "511:18:0", + "tryCall": true, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", + "typeString": "tuple(uint256,bool)" + } + }, + "id": 99, + "nodeType": "TryStatement", + "src": "507:239:0" + } + ] + }, + "documentation": null, + "functionSelector": "eb9ef6d3", + "id": 101, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryCatch", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 54, + "nodeType": "ParameterList", + "parameters": [], + "src": "470:2:0" + }, + "returnParameters": { + "id": 59, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 56, + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 101, + "src": "489:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 55, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "489:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 58, + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 101, + "src": "495:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 57, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "495:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "488:12:0" + }, + "scope": 134, + "src": "453:297:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 118, + "nodeType": "Block", + "src": "788:49:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 107, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 176, + "src": "805:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 108, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "data", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "805:8:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "endExpression": null, + "id": 110, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexRangeAccess", + "src": "805:12:0", + "startExpression": { + "argumentTypes": null, + "hexValue": "34", + "id": 109, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "814:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr_slice", + "typeString": "bytes calldata slice" + } + }, + { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 112, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "820:4:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 111, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "820:4:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + { + "argumentTypes": null, + "id": 114, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "826:4:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 113, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "826:4:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + } + ], + "id": 115, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "819:12:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$", + "typeString": "tuple(type(uint256),type(uint256))" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_calldata_ptr_slice", + "typeString": "bytes calldata slice" + }, + { + "typeIdentifier": "t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$", + "typeString": "tuple(type(uint256),type(uint256))" + } + ], + "expression": { + "argumentTypes": null, + "id": 104, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 163, + "src": "794:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 106, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "decode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "794:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 116, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "794:38:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "id": 117, + "nodeType": "ExpressionStatement", + "src": "794:38:0" + } + ] + }, + "documentation": null, + "functionSelector": "9162736b", + "id": 119, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "arraySlice", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 102, + "nodeType": "ParameterList", + "parameters": [], + "src": "773:2:0" + }, + "returnParameters": { + "id": 103, + "nodeType": "ParameterList", + "parameters": [], + "src": "788:0:0" + }, + "scope": 134, + "src": "754:83:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 132, + "nodeType": "Block", + "src": "874:48:0", + "statements": [ + { + "assignments": [ + 123 + ], + "declarations": [ + { + "constant": false, + "id": 123, + "name": "x", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 132, + "src": "880:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 122, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "880:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 124, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "880:9:0" + }, + { + "assignments": [ + 126 + ], + "declarations": [ + { + "constant": false, + "id": 126, + "name": "y", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 132, + "src": "895:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 125, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "895:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 131, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 129, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 123, + "src": "915:1:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 128, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "907:8:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_payable_$", + "typeString": "type(address payable)" + }, + "typeName": { + "id": 127, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "907:8:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 130, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "907:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "895:22:0" + } + ] + }, + "documentation": null, + "functionSelector": "7ef135f5", + "id": 133, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "payableFn", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 120, + "nodeType": "ParameterList", + "parameters": [], + "src": "859:2:0" + }, + "returnParameters": { + "id": 121, + "nodeType": "ParameterList", + "parameters": [], + "src": "874:0:0" + }, + "scope": 134, + "src": "841:81:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + } + ], + "scope": 135, + "src": "52:872:0" + } + ], + "src": "0:925:0" + }, + "compiler": { + "name": "solc", + "version": "0.6.0+commit.26b70077.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.0.20", + "updatedAt": "2019-12-21T22:48:33.668Z", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/test/integration/projects/solc-6/build/contracts/ContractB.json b/test/integration/projects/solc-6/build/contracts/ContractB.json new file mode 100644 index 00000000..72489105 --- /dev/null +++ b/test/integration/projects/solc-6/build/contracts/ContractB.json @@ -0,0 +1,657 @@ +{ + "contractName": "ContractB", + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "i", + "type": "uint256" + } + ], + "name": "simpleSet", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.6.0+commit.26b70077\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"i\",\"type\":\"uint256\"}],\"name\":\"simpleSet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/cgewecke/code/sc-forks/new-master/solidity-coverage/test/integration/projects/solc-6/contracts/ContractB.sol\":\"ContractB\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/cgewecke/code/sc-forks/new-master/solidity-coverage/test/integration/projects/solc-6/contracts/ContractB.sol\":{\"keccak256\":\"0xccbf300f949b1b68c26ee6af298386638715dca51a1e2e9b0efc554c0503fe42\",\"urls\":[\"bzz-raw://8500ac51b5fb269af86de1aa5f050d937bc3a1dc7b459cbf2473a64cf6ba404e\",\"dweb:/ipfs/QmY2xsfwMNw7ZRjwTiPsT7DGMaVxKu6yBGxQJ9y1jFGmsp\"]}},\"version\":1}", + "bytecode": "0x6080604052348015600f57600080fd5b5060998061001e6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c8063531ba2f214602d575b600080fd5b605660048036036020811015604157600080fd5b81019080803590602001909291905050506058565b005b60056000819055505056fea2646970667358221220b2e66acbf3344867ca3e8b853808686b9f20429f3292f397b3ae4a280c825fa964736f6c63430006000033", + "deployedBytecode": "0x6080604052348015600f57600080fd5b506004361060285760003560e01c8063531ba2f214602d575b600080fd5b605660048036036020811015604157600080fd5b81019080803590602001909291905050506058565b005b60056000819055505056fea2646970667358221220b2e66acbf3344867ca3e8b853808686b9f20429f3292f397b3ae4a280c825fa964736f6c63430006000033", + "sourceMap": "26:197:1:-:0;;;64:26;8:9:-1;5:2;;;30:1;27;20:12;5:2;64:26:1;26:197;;;;;;", + "deployedSourceMap": "26:197:1:-:0;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;26:197:1;;;;;;;;;;;;;;;;;;;159:62;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;159:62:1;;;;;;;;;;;;;;;;;:::i;:::-;;;215:1;207:5;:9;;;;159:62;:::o", + "source": "pragma solidity ^0.6.0;\n\n\ncontract ContractB {\n uint value;\n\n constructor() public {\n }\n\n modifier overridden() virtual {\n require(true);\n _;\n }\n\n function simpleSet(uint i) public virtual {\n value = 5;\n }\n}\n", + "sourcePath": "/Users/cgewecke/code/sc-forks/new-master/solidity-coverage/test/integration/projects/solc-6/contracts/ContractB.sol", + "ast": { + "absolutePath": "/Users/cgewecke/code/sc-forks/new-master/solidity-coverage/test/integration/projects/solc-6/contracts/ContractB.sol", + "exportedSymbols": { + "ContractB": [ + 165 + ] + }, + "id": 166, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 140, + "literals": [ + "solidity", + "^", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:23:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 165, + "linearizedBaseContracts": [ + 165 + ], + "name": "ContractB", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 142, + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 165, + "src": "49:10:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 141, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "49:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "body": { + "id": 145, + "nodeType": "Block", + "src": "85:5:1", + "statements": [] + }, + "documentation": null, + "id": 146, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 143, + "nodeType": "ParameterList", + "parameters": [], + "src": "75:2:1" + }, + "returnParameters": { + "id": 144, + "nodeType": "ParameterList", + "parameters": [], + "src": "85:0:1" + }, + "scope": 165, + "src": "64:26:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 153, + "nodeType": "Block", + "src": "124:31:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "74727565", + "id": 149, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "138:4:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 148, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 183, + 184 + ], + "referencedDeclaration": 183, + "src": "130:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "130:13:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 151, + "nodeType": "ExpressionStatement", + "src": "130:13:1" + }, + { + "id": 152, + "nodeType": "PlaceholderStatement", + "src": "149:1:1" + } + ] + }, + "documentation": null, + "id": 154, + "name": "overridden", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 147, + "nodeType": "ParameterList", + "parameters": [], + "src": "113:2:1" + }, + "src": "94:61:1", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 163, + "nodeType": "Block", + "src": "201:20:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 161, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 159, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 142, + "src": "207:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "35", + "id": 160, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "215:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "5" + }, + "src": "207:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 162, + "nodeType": "ExpressionStatement", + "src": "207:9:1" + } + ] + }, + "documentation": null, + "functionSelector": "531ba2f2", + "id": 164, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "simpleSet", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 157, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 156, + "name": "i", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 164, + "src": "178:6:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 155, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "178:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "177:8:1" + }, + "returnParameters": { + "id": 158, + "nodeType": "ParameterList", + "parameters": [], + "src": "201:0:1" + }, + "scope": 165, + "src": "159:62:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + } + ], + "scope": 166, + "src": "26:197:1" + } + ], + "src": "0:224:1" + }, + "legacyAST": { + "absolutePath": "/Users/cgewecke/code/sc-forks/new-master/solidity-coverage/test/integration/projects/solc-6/contracts/ContractB.sol", + "exportedSymbols": { + "ContractB": [ + 165 + ] + }, + "id": 166, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 140, + "literals": [ + "solidity", + "^", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:23:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 165, + "linearizedBaseContracts": [ + 165 + ], + "name": "ContractB", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 142, + "name": "value", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 165, + "src": "49:10:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 141, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "49:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "body": { + "id": 145, + "nodeType": "Block", + "src": "85:5:1", + "statements": [] + }, + "documentation": null, + "id": 146, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 143, + "nodeType": "ParameterList", + "parameters": [], + "src": "75:2:1" + }, + "returnParameters": { + "id": 144, + "nodeType": "ParameterList", + "parameters": [], + "src": "85:0:1" + }, + "scope": 165, + "src": "64:26:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 153, + "nodeType": "Block", + "src": "124:31:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "74727565", + "id": 149, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "138:4:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 148, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 183, + 184 + ], + "referencedDeclaration": 183, + "src": "130:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "130:13:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 151, + "nodeType": "ExpressionStatement", + "src": "130:13:1" + }, + { + "id": 152, + "nodeType": "PlaceholderStatement", + "src": "149:1:1" + } + ] + }, + "documentation": null, + "id": 154, + "name": "overridden", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 147, + "nodeType": "ParameterList", + "parameters": [], + "src": "113:2:1" + }, + "src": "94:61:1", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 163, + "nodeType": "Block", + "src": "201:20:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 161, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 159, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 142, + "src": "207:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "35", + "id": 160, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "215:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "5" + }, + "src": "207:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 162, + "nodeType": "ExpressionStatement", + "src": "207:9:1" + } + ] + }, + "documentation": null, + "functionSelector": "531ba2f2", + "id": 164, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "simpleSet", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 157, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 156, + "name": "i", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 164, + "src": "178:6:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 155, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "178:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "177:8:1" + }, + "returnParameters": { + "id": 158, + "nodeType": "ParameterList", + "parameters": [], + "src": "201:0:1" + }, + "scope": 165, + "src": "159:62:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + } + ], + "scope": 166, + "src": "26:197:1" + } + ], + "src": "0:224:1" + }, + "compiler": { + "name": "solc", + "version": "0.6.0+commit.26b70077.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.0.20", + "updatedAt": "2019-12-21T22:43:06.828Z", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/test/integration/projects/solc-6/contracts/ContractA.sol b/test/integration/projects/solc-6/contracts/ContractA.sol new file mode 100644 index 00000000..842d7ef3 --- /dev/null +++ b/test/integration/projects/solc-6/contracts/ContractA.sol @@ -0,0 +1,56 @@ +pragma solidity ^0.6.0; + +import "./ContractB.sol"; + +/** + * New syntaxes in solc 0.6.x + */ +contract ContractA is ContractB { + uint counter; + uint errorCount; + + modifier overridden() override { + require(true); + _; + } + + constructor() public { + } + + function simpleSet(uint i) + public + override(ContractB) + { + counter = counter + i; + } + + function simpleView(uint i) + view + overridden + external + returns (uint, bool) + { + return (counter + i, true); + } + + function tryCatch() public returns (uint, bool) { + try this.simpleView(5) returns (uint, bool) { + return (2, true); + } catch Error(string memory) { + errorCount++; + return (0, false); + } catch (bytes memory) { + errorCount++; + return (0, false); + } + } + + function arraySlice() public pure { + abi.decode(msg.data[4:], (uint, uint)); + } + + function payableFn() public pure { + address x; + address y = payable(x); + } +} diff --git a/test/integration/projects/solc-6/contracts/ContractB.sol b/test/integration/projects/solc-6/contracts/ContractB.sol new file mode 100644 index 00000000..5dd0b63e --- /dev/null +++ b/test/integration/projects/solc-6/contracts/ContractB.sol @@ -0,0 +1,18 @@ +pragma solidity ^0.6.0; + + +contract ContractB { + uint value; + + constructor() public { + } + + modifier overridden() virtual { + require(true); + _; + } + + function simpleSet(uint i) public virtual { + value = 5; + } +} diff --git a/test/integration/projects/solc-6/test/test.js b/test/integration/projects/solc-6/test/test.js new file mode 100644 index 00000000..15b89e56 --- /dev/null +++ b/test/integration/projects/solc-6/test/test.js @@ -0,0 +1,27 @@ +const ContractA = artifacts.require("ContractA"); + +contract("contracta", function(accounts) { + let instance; + + before(async () => instance = await ContractA.new()) + + it('simpleSet (overridden method)', async function(){ + await instance.simpleSet(5); + }); + + it('simpleView (overridden modifier)', async function(){ + await instance.simpleView(5); + }); + + it('tryCatch', async function(){ + await instance.tryCatch(); + }); + + it('arraySlice', async function(){ + await instance.arraySlice(); + }); + + it('payableFn', async function(){ + await instance.payableFn(); + }) +}); diff --git a/test/integration/projects/solc-6/truffle-config.js b/test/integration/projects/solc-6/truffle-config.js new file mode 100644 index 00000000..88bd239a --- /dev/null +++ b/test/integration/projects/solc-6/truffle-config.js @@ -0,0 +1,9 @@ +module.exports = { + networks: {}, + mocha: {}, + compilers: { + solc: { + version: "0.6.0" + } + } +} diff --git a/yarn.lock b/yarn.lock index ea8b9587..5f2a0139 100644 --- a/yarn.lock +++ b/yarn.lock @@ -111,29 +111,28 @@ "@nodelib/fs.scandir" "2.1.2" fastq "^1.6.0" -"@nomiclabs/buidler-truffle5@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@nomiclabs/buidler-truffle5/-/buidler-truffle5-1.0.1.tgz#6545f52c6441dc8942f66a2f14ef9fdacc899088" - integrity sha512-4c36uf62mQz7hrBkKLvLv2+Z7u3VWMoJ7MStm69RMCtUA6iG5kd7Sd+cL3jCHr+eIAMSBGllPmvmAFDp7etFeQ== +"@nomiclabs/buidler-truffle5@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@nomiclabs/buidler-truffle5/-/buidler-truffle5-1.0.2.tgz#b3c7136cbcec6305d51ada6a018e4324459a5f11" + integrity sha512-j2icGUTkcUqPJau9YujAP7Y5TVH40RZZr6LAnJ/1nrjArv75Ywdtr7MQ6rSvMP7o+8XBnXyexW+DKVpun4ABpg== dependencies: - "@nomiclabs/truffle-contract" "^4.0.0" + "@nomiclabs/truffle-contract" "^4.1.2" "@types/chai" "^4.2.0" chai "^4.2.0" ethereumjs-util "^6.1.0" fs-extra "^7.0.1" -"@nomiclabs/buidler-web3@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@nomiclabs/buidler-web3/-/buidler-web3-1.0.1.tgz#8e7f42b62a52a9ed9e205b2ff941a686d8705513" - integrity sha512-dgMIabIqReVUzp2reN7pWUS4n0wdIZBsJ4pQFjbjpP91bpVtVAMSaGSU71gqUiXWbyqFY3TOT9Hr9Q8VsqFxEA== +"@nomiclabs/buidler-web3@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@nomiclabs/buidler-web3/-/buidler-web3-1.0.2.tgz#01420bb81b77ee3d17dc558372d1d3c98e2738d8" + integrity sha512-Nph7GkkU0ucpc1gOSfZB9Ar9Uj2+jtZdDk2pn5lpj6seEabKMAGLDYcXhjUphq2FErL2/HDnufzVr3U7uhmtdQ== -"@nomiclabs/buidler@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@nomiclabs/buidler/-/buidler-1.0.1.tgz#4ac100fa96cf4326a551bf7099922b4c61956a50" - integrity sha512-MpjKvp7iYbTCT8gf4/RTYl5LK98owGYkibjUsWZ+B8COtlNQgpt7Eoxrh77lls06oGP8GmseWtVFF+qt9oZczw== +"@nomiclabs/buidler@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@nomiclabs/buidler/-/buidler-1.0.2.tgz#383c6336d504253e5cbaa90d301af2159ab6698b" + integrity sha512-+S+/JK/TVNc22AQumTl3YtjgPVDsCjzDL9I3foDF7HRhB/a/i6oRLOTWQWhOLDOEA8az/mafLLnul/i7e7fN1Q== dependencies: - "@nomiclabs/eth-sig-util" "^2.4.4" - "@nomiclabs/ethereumjs-vm" "^4.1.0" + "@nomiclabs/ethereumjs-vm" "^4.1.1" "@types/bn.js" "^4.11.5" "@types/lru-cache" "^5.1.0" abort-controller "^3.0.0" @@ -145,6 +144,7 @@ deepmerge "^2.1.0" download "^7.1.0" enquirer "^2.3.0" + eth-sig-util "^2.5.2" ethereumjs-abi "^0.6.8" ethereumjs-account "^3.0.0" ethereumjs-block "^2.2.0" @@ -163,39 +163,27 @@ node-fetch "^2.6.0" qs "^6.7.0" semver "^6.3.0" - solc "0.5.11" + solc "0.5.15" solidity-parser-antlr "^0.4.2" source-map-support "^0.5.13" ts-essentials "^2.0.7" tsort "0.0.1" uuid "^3.3.2" -"@nomiclabs/eth-sig-util@^2.4.4": - version "2.4.4" - resolved "https://registry.yarnpkg.com/@nomiclabs/eth-sig-util/-/eth-sig-util-2.4.4.tgz#e3518a90027a7952af24204a81713c21b500d546" - integrity sha512-t6vqztYHLq9t0CTiULheO+zrNqp1c10EjFgfKNxQGSV+A8hoztJDgU8FRKpczWN6MgQv2qFFgGMRfymadjY4pA== - dependencies: - buffer "^5.2.1" - elliptic "^6.4.0" - ethereumjs-abi "0.6.5" - ethereumjs-util "^5.1.1" - tweetnacl "^1.0.0" - tweetnacl-util "^0.15.0" - -"@nomiclabs/ethereumjs-vm@^4.1.0": - version "4.1.0" - resolved "https://registry.yarnpkg.com/@nomiclabs/ethereumjs-vm/-/ethereumjs-vm-4.1.0.tgz#2767e5e779c9c1db4ce50adb789d87a683622710" - integrity sha512-2eordoieZBmNEMkspyOpn3X4jqUtIzKarahGlPUd3WRVPvOSfbf68wNgKN+IbcQ9xND6nvb64fpW3kgckXdclQ== +"@nomiclabs/ethereumjs-vm@^4.1.1": + version "4.1.1" + resolved "https://registry.yarnpkg.com/@nomiclabs/ethereumjs-vm/-/ethereumjs-vm-4.1.1.tgz#60f9133c38674a84881455fcd92279bd7410ca92" + integrity sha512-zQJBssmK7PyHonzng3VuFUvXQ6uugQeGAA7XvFVoMmEcY9KdWCqEQYh+XQ1jLZ8H9EISYB1BHF9HY6aFnflgcw== dependencies: async "^2.1.2" async-eventemitter "^0.2.2" core-js-pure "^3.0.1" ethereumjs-account "^3.0.0" - ethereumjs-block "~2.2.0" - ethereumjs-blockchain "^4.0.1" + ethereumjs-block "^2.2.1" + ethereumjs-blockchain "^4.0.2" ethereumjs-common "^1.3.2" ethereumjs-tx "^2.1.1" - ethereumjs-util "^6.1.0" + ethereumjs-util "~6.1.0" fake-merkle-patricia-tree "^1.0.1" functional-red-black-tree "^1.0.1" merkle-patricia-tree "^2.3.2" @@ -203,16 +191,17 @@ safe-buffer "^5.1.1" util.promisify "^1.0.0" -"@nomiclabs/truffle-contract@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@nomiclabs/truffle-contract/-/truffle-contract-4.0.0.tgz#14a1f6c880eaf6b0ff2b8a208419972c6e7b9b4a" - integrity sha512-CTehoNcdZO+PAvOcMlVu3XEdVkxugJLdVui46vrmBF+AJuuiLwMbA+unM0AJtVpwhqcNt5Zb4KyMixqlH7VEEQ== +"@nomiclabs/truffle-contract@^4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@nomiclabs/truffle-contract/-/truffle-contract-4.1.2.tgz#669f87482f3dcf81c5bed37e53bffe339d583374" + integrity sha512-6tmEmsv5mdH6W+PvJzczNdAD6DMUQNaPPLZdDmGvS5NZVgQl9W0ikf5s+5VPZjGNYv5akreOda6S7q3Hj/D91w== dependencies: - "@truffle/blockchain-utils" "^0.0.12" - "@truffle/contract-schema" "^3.0.16" - "@truffle/error" "^0.0.7" - "@truffle/interface-adapter" "^0.2.6" + "@truffle/blockchain-utils" "^0.0.17" + "@truffle/contract-schema" "^3.0.19" + "@truffle/error" "^0.0.8" + "@truffle/interface-adapter" "^0.4.1" bignumber.js "^7.2.1" + ethereum-ens "^0.7.7" ethers "^4.0.0-beta.1" web3 "1.2.1" web3-core-promievent "1.2.1" @@ -236,16 +225,16 @@ dependencies: defer-to-connect "^1.0.1" -"@truffle/blockchain-utils@^0.0.12": - version "0.0.12" - resolved "https://registry.yarnpkg.com/@truffle/blockchain-utils/-/blockchain-utils-0.0.12.tgz#ad75c7eb7ef65ee954850470745873de59392309" - integrity sha512-Khoc0zxksDL3xEHg4j0qpD7+4xyRdRS1Sa5ghwwBCa23I6ofQUmntEoQasZsXo7g6PDkErrJzxOWxTs8gpHQnA== - "@truffle/blockchain-utils@^0.0.13": version "0.0.13" resolved "https://registry.yarnpkg.com/@truffle/blockchain-utils/-/blockchain-utils-0.0.13.tgz#2b6302586248fe2068ba160be53855c3c923a4e2" integrity sha512-58PNluLrJ967BjoBymWmfa+j9tfDa2GpAjEOiKkQav94aVbrBecDwmd3jOTl3gAhJA21AB3UZxri50mKVHopKw== +"@truffle/blockchain-utils@^0.0.17": + version "0.0.17" + resolved "https://registry.yarnpkg.com/@truffle/blockchain-utils/-/blockchain-utils-0.0.17.tgz#a1ab0ec9a9c3cbc6ada769f606d6b07f8e515120" + integrity sha512-SqvkHCn65QbRFlNpA3M91tqcV8dVMSEfOu3lfXrPozKJyTTtFg/A8WMvMMs79/Q8SJlUuJARjsXwQmo5V3V78A== + "@truffle/contract-schema@^3.0.16": version "3.0.16" resolved "https://registry.yarnpkg.com/@truffle/contract-schema/-/contract-schema-3.0.16.tgz#0de8670b2b0dacba57b43b65911c5376dd00bbdf" @@ -255,6 +244,15 @@ crypto-js "^3.1.9-1" debug "^4.1.0" +"@truffle/contract-schema@^3.0.19": + version "3.0.20" + resolved "https://registry.yarnpkg.com/@truffle/contract-schema/-/contract-schema-3.0.20.tgz#487215aad795a4c589a521322b8f0bb505b8a25f" + integrity sha512-n4Q+EJWyovUdsd9+XCSzjsHilIXveozIMAJ127yqG2ihAfnqbFdLC98YFSkJiXg4SZZQNKZzZzLDEctz8Ik9Ag== + dependencies: + ajv "^6.10.0" + crypto-js "^3.1.9-1" + debug "^4.1.0" + "@truffle/contract@^4.0.36": version "4.0.36" resolved "https://registry.yarnpkg.com/@truffle/contract/-/contract-4.0.36.tgz#9c5d22034f034866f7566eb1ff6d46af0404090d" @@ -276,6 +274,11 @@ resolved "https://registry.yarnpkg.com/@truffle/error/-/error-0.0.7.tgz#e9db39885575647ef08bf624b0c13fe46d41a209" integrity sha512-UIfVKsXSXocKnn5+RNklUXNoGd/JVj7V8KmC48TQzmjU33HQI86PX0JDS7SpHMHasI3w9X//1q7Lu7nZtj3Zzg== +"@truffle/error@^0.0.8": + version "0.0.8" + resolved "https://registry.yarnpkg.com/@truffle/error/-/error-0.0.8.tgz#dc94ca36393403449d4b7461bf9452c241e53ec1" + integrity sha512-x55rtRuNfRO1azmZ30iR0pf0OJ6flQqbax1hJz+Avk1K5fdmOv5cr22s9qFnwTWnS6Bw0jvJEoR0ITsM7cPKtQ== + "@truffle/interface-adapter@^0.2.6": version "0.2.6" resolved "https://registry.yarnpkg.com/@truffle/interface-adapter/-/interface-adapter-0.2.6.tgz#41bdf5a1a120e8b76c441fa1a746bdc3c6d3fad2" @@ -296,6 +299,16 @@ lodash "^4.17.13" web3 "1.2.1" +"@truffle/interface-adapter@^0.4.1": + version "0.4.2" + resolved "https://registry.yarnpkg.com/@truffle/interface-adapter/-/interface-adapter-0.4.2.tgz#20343505240d4fdb4b071d30c2c46d894329eb56" + integrity sha512-NyHGq8DFWLJvxzz0EQlHw33hwmBIGJMN7R0dPmyVPTtVw3PfHeNJ/D4IRHAhgeV+LMZhwd8iLUpvHl6C6b4wUA== + dependencies: + bn.js "^4.11.8" + ethers "^4.0.32" + lodash "^4.17.13" + web3 "1.2.1" + "@truffle/provider@^0.1.17": version "0.1.17" resolved "https://registry.yarnpkg.com/@truffle/provider/-/provider-0.1.17.tgz#9b72a76a7ce18a054eabb3ebd21a55a33dc7d7b6" @@ -305,7 +318,14 @@ "@truffle/interface-adapter" "^0.2.6" web3 "1.2.1" -"@types/bn.js@^4.11.5": +"@types/bignumber.js@^5.0.0": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@types/bignumber.js/-/bignumber.js-5.0.0.tgz#d9f1a378509f3010a3255e9cc822ad0eeb4ab969" + integrity sha512-0DH7aPGCClywOFaxxjE6UwpN2kQYe9LwuDQMv+zYA97j5GkOMo8e66LYT+a8JYU7jfmUFRZLa9KycxHDsKXJCA== + dependencies: + bignumber.js "*" + +"@types/bn.js@^4.11.4", "@types/bn.js@^4.11.5": version "4.11.5" resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-4.11.5.tgz#40e36197433f78f807524ec623afcf0169ac81dc" integrity sha512-AEAZcIZga0JgVMHNtl1CprA/hXX7/wPt79AgR4XqaDt7jyj3QWYw6LPoOiznPtugDmlubUnAahMs2PFxGcQrng== @@ -356,11 +376,40 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-11.11.6.tgz#df929d1bb2eee5afdda598a41930fe50b43eaa6a" integrity sha512-Exw4yUWMBXM3X+8oqzJNRqZSwUAaS4+7NdvHqQuFi/d+synz++xmX3QIf+BFqneW8N31R8Ky+sikfZUXq07ggQ== +"@types/node@^10.12.18": + version "10.17.11" + resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.11.tgz#46ba035fb917b31c948280dbea22ab8838f386a4" + integrity sha512-dNd2pp8qTzzNLAs3O8nH3iU9DG9866KHq9L3ISPB7DOGERZN81nW/5/g/KzMJpCU8jrbCiMRBzV9/sCEdRosig== + "@types/node@^10.3.2": version "10.14.13" resolved "https://registry.yarnpkg.com/@types/node/-/node-10.14.13.tgz#ac786d623860adf39a3f51d629480aacd6a6eec7" integrity sha512-yN/FNNW1UYsRR1wwAoyOwqvDuLDtVXnaJTZ898XIw/Q5cCaeVAlVwvsmXLX5PuiScBYwZsZU4JYSHB3TvfdwvQ== +"@types/node@^12.6.1": + version "12.12.21" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.12.21.tgz#aa44a6363291c7037111c47e4661ad210aded23f" + integrity sha512-8sRGhbpU+ck1n0PGAUgVrWrWdjSW2aqNeyC15W88GRsMpSwzv6RJGlLhE7s2RhVSOdyDmxbqlWSeThq4/7xqlA== + +"@web3-js/scrypt-shim@^0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@web3-js/scrypt-shim/-/scrypt-shim-0.1.0.tgz#0bf7529ab6788311d3e07586f7d89107c3bea2cc" + integrity sha512-ZtZeWCc/s0nMcdx/+rZwY1EcuRdemOK9ag21ty9UsHkFxsNb/AaoucUz0iPuyGe0Ku+PFuRmWZG7Z7462p9xPw== + dependencies: + scryptsy "^2.1.0" + semver "^6.3.0" + +"@web3-js/websocket@^1.0.29": + version "1.0.30" + resolved "https://registry.yarnpkg.com/@web3-js/websocket/-/websocket-1.0.30.tgz#9ea15b7b582cf3bf3e8bc1f4d3d54c0731a87f87" + integrity sha512-fDwrD47MiDrzcJdSeTLF75aCcxVVt8B1N74rA+vh2XCAvFy4tEWJjtnUtj2QG7/zlQ6g9cQ88bZFBxwd9/FmtA== + dependencies: + debug "^2.2.0" + es5-ext "^0.10.50" + nan "^2.14.0" + typedarray-to-buffer "^3.1.5" + yaeti "^0.0.6" + JSONStream@^1.3.4: version "1.3.5" resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" @@ -1185,6 +1234,11 @@ bcrypt-pbkdf@^1.0.0: dependencies: tweetnacl "^0.14.3" +bignumber.js@*: + version "9.0.0" + resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.0.0.tgz#805880f84a329b5eac6e7cb6f8274b6d82bdf075" + integrity sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A== + bignumber.js@^7.2.1: version "7.2.1" resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-7.2.1.tgz#80c048759d826800807c4bfd521e50edbba57a5f" @@ -1258,6 +1312,11 @@ bluebird@^2.9.34: resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-2.11.0.tgz#534b9033c022c9579c56ba3b3e5a5caafbb650e1" integrity sha1-U0uQM8AiyVecVro7Plpcqvu2UOE= +bluebird@^3.4.7: + version "3.7.2" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== + bluebird@^3.5.0: version "3.5.5" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.5.tgz#a8d0afd73251effbbd5fe384a77d73003c17a71f" @@ -1754,16 +1813,16 @@ commander@2.15.1: resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f" integrity sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag== +commander@3.0.2, commander@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/commander/-/commander-3.0.2.tgz#6837c3fb677ad9933d1cfba42dd14d5117d6b39e" + integrity sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow== + commander@^2.8.1: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== -commander@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/commander/-/commander-3.0.2.tgz#6837c3fb677ad9933d1cfba42dd14d5117d6b39e" - integrity sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow== - commander@~2.20.0: version "2.20.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422" @@ -2541,7 +2600,7 @@ eth-block-tracker@^3.0.0: pify "^2.3.0" tape "^4.6.3" -eth-ens-namehash@2.0.8: +eth-ens-namehash@2.0.8, eth-ens-namehash@^2.0.0: version "2.0.8" resolved "https://registry.yarnpkg.com/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz#229ac46eca86d52e0c991e7cb2aef83ff0f68bcf" integrity sha1-IprEbsqG1S4MmR58sq74P/D2i88= @@ -2628,6 +2687,18 @@ eth-sig-util@^1.4.2: ethereumjs-abi "git+https://github.com/ethereumjs/ethereumjs-abi.git" ethereumjs-util "^5.1.1" +eth-sig-util@^2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/eth-sig-util/-/eth-sig-util-2.5.2.tgz#f30b94509786fa4fbf71adb3164b1701e15724a8" + integrity sha512-xvDojS/4reXsw8Pz/+p/qcM5rVB61FOdPbEtMZ8FQ0YHnPEzPy5F8zAAaZ+zj5ud0SwRLWPfor2Cacjm7EzMIw== + dependencies: + buffer "^5.2.1" + elliptic "^6.4.0" + ethereumjs-abi "0.6.5" + ethereumjs-util "^5.1.1" + tweetnacl "^1.0.0" + tweetnacl-util "^0.15.0" + eth-tx-summary@^3.1.2: version "3.2.4" resolved "https://registry.yarnpkg.com/eth-tx-summary/-/eth-tx-summary-3.2.4.tgz#e10eb95eb57cdfe549bf29f97f1e4f1db679035c" @@ -2654,6 +2725,13 @@ ethashjs@~0.0.7: ethereumjs-util "^4.0.1" miller-rabin "^4.0.0" +ethereum-bloom-filters@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.6.tgz#9cdebb3ec20de96ec4a434c6bad6ea5a513037aa" + integrity sha512-dE9CGNzgOOsdh7msZirvv8qjHtnHpvBlKe2647kM8v+yeF71IRso55jpojemvHV+jMjr48irPWxMRaHuOWzAFA== + dependencies: + js-sha3 "^0.8.0" + ethereum-common@0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/ethereum-common/-/ethereum-common-0.2.0.tgz#13bf966131cce1eeade62a1b434249bb4cb120ca" @@ -2664,6 +2742,18 @@ ethereum-common@^0.0.18: resolved "https://registry.yarnpkg.com/ethereum-common/-/ethereum-common-0.0.18.tgz#2fdc3576f232903358976eb39da783213ff9523f" integrity sha1-L9w1dvIykDNYl26znaeDIT/5Uj8= +ethereum-ens@^0.7.7: + version "0.7.8" + resolved "https://registry.yarnpkg.com/ethereum-ens/-/ethereum-ens-0.7.8.tgz#102874541801507774fef21c9a626fabb1ed0630" + integrity sha512-HJBDmF5/abP/IIM6N7rGHmmlQ4yCKIVK4kzT/Mu05+eZn0i5ZlR25LTAE47SVZ7oyTBvOkNJhxhSkWRvjh7srg== + dependencies: + bluebird "^3.4.7" + eth-ens-namehash "^2.0.0" + js-sha3 "^0.5.7" + pako "^1.0.4" + underscore "^1.8.3" + web3 "^1.0.0-beta.34" + ethereumjs-abi@0.6.5: version "0.6.5" resolved "https://registry.yarnpkg.com/ethereumjs-abi/-/ethereumjs-abi-0.6.5.tgz#5a637ef16ab43473fa72a29ad90871405b3f5241" @@ -2680,15 +2770,7 @@ ethereumjs-abi@0.6.7: bn.js "^4.11.8" ethereumjs-util "^6.0.0" -ethereumjs-abi@^0.6.8: - version "0.6.8" - resolved "https://registry.yarnpkg.com/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz#71bc152db099f70e62f108b7cdfca1b362c6fcae" - integrity sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA== - dependencies: - bn.js "^4.11.8" - ethereumjs-util "^6.0.0" - -"ethereumjs-abi@git+https://github.com/ethereumjs/ethereumjs-abi.git": +ethereumjs-abi@^0.6.8, "ethereumjs-abi@git+https://github.com/ethereumjs/ethereumjs-abi.git": version "0.6.8" resolved "git+https://github.com/ethereumjs/ethereumjs-abi.git#1cfbb13862f90f0b391d8a699544d5fe4dfb8c7b" dependencies: @@ -2735,6 +2817,17 @@ ethereumjs-block@^1.2.2, ethereumjs-block@^1.4.1, ethereumjs-block@^1.6.0: ethereumjs-util "^5.0.0" merkle-patricia-tree "^2.1.2" +ethereumjs-block@^2.2.1, ethereumjs-block@~2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz#c7654be7e22df489fda206139ecd63e2e9c04965" + integrity sha512-2p49ifhek3h2zeg/+da6XpdFR3GlqY3BIEiqxGF8j9aSRIgkb7M1Ky+yULBKJOu8PAZxfhsYA+HxUk2aCQp3vg== + dependencies: + async "^2.0.1" + ethereumjs-common "^1.5.0" + ethereumjs-tx "^2.1.1" + ethereumjs-util "^5.0.0" + merkle-patricia-tree "^2.1.2" + ethereumjs-blockchain@^3.4.0: version "3.4.0" resolved "https://registry.yarnpkg.com/ethereumjs-blockchain/-/ethereumjs-blockchain-3.4.0.tgz#92240da6ecd86b3d8d324df69510b381f26c966b" @@ -2751,15 +2844,15 @@ ethereumjs-blockchain@^3.4.0: safe-buffer "^5.1.2" semaphore "^1.1.0" -ethereumjs-blockchain@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/ethereumjs-blockchain/-/ethereumjs-blockchain-4.0.1.tgz#db113dfed4fcc5197d223391f10adbc5a1b3536b" - integrity sha512-twf2yeyzeBXzCgclLyF9wZEyCKbCweM2KZdZkTsnlqGgaffgnSgY44+z+9BHUIVoWY+gxMj+XsTlTgVcbha8rg== +ethereumjs-blockchain@^4.0.2: + version "4.0.3" + resolved "https://registry.yarnpkg.com/ethereumjs-blockchain/-/ethereumjs-blockchain-4.0.3.tgz#e013034633a30ad2006728e8e2b21956b267b773" + integrity sha512-0nJWbyA+Gu0ZKZr/cywMtB/77aS/4lOVsIKbgUN2sFQYscXO5rPbUfrEe7G2Zhjp86/a0VqLllemDSTHvx3vZA== dependencies: async "^2.6.1" ethashjs "~0.0.7" - ethereumjs-block "~2.2.0" - ethereumjs-common "^1.1.0" + ethereumjs-block "~2.2.2" + ethereumjs-common "^1.5.0" ethereumjs-util "~6.1.0" flow-stoplight "^1.0.0" level-mem "^3.0.1" @@ -2772,6 +2865,11 @@ ethereumjs-common@^1.1.0, ethereumjs-common@^1.3.1, ethereumjs-common@^1.3.2: resolved "https://registry.yarnpkg.com/ethereumjs-common/-/ethereumjs-common-1.3.2.tgz#5a20831e52199a31ff4b68ef361e34c05c976ed0" integrity sha512-GkltYRIqBLzaZLmF/K3E+g9lZ4O4FL+TtpisAlD3N+UVlR+mrtoG+TvxavqVa6PwOY4nKIEMe5pl6MrTio3Lww== +ethereumjs-common@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/ethereumjs-common/-/ethereumjs-common-1.5.0.tgz#d3e82fc7c47c0cef95047f431a99485abc9bb1cd" + integrity sha512-SZOjgK1356hIY7MRj3/ma5qtfr/4B5BL+G4rP/XSMYr2z1H5el4RX5GReYCKmQmYI/nSBmRnwrZ17IfHuG0viQ== + ethereumjs-tx@1.3.7, ethereumjs-tx@^1.1.1, ethereumjs-tx@^1.2.0, ethereumjs-tx@^1.2.2, ethereumjs-tx@^1.3.3: version "1.3.7" resolved "https://registry.yarnpkg.com/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz#88323a2d875b10549b8347e09f4862b546f3d89a" @@ -4317,7 +4415,7 @@ js-sha3@0.5.7, js-sha3@^0.5.7: resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.5.7.tgz#0d4ffd8002d5333aabaf4a23eed2f6374c9f28e7" integrity sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc= -js-sha3@0.8.0: +js-sha3@0.8.0, js-sha3@^0.8.0: version "0.8.0" resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840" integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q== @@ -5709,6 +5807,11 @@ pacote@^9.5.8: unique-filename "^1.1.1" which "^1.3.1" +pako@^1.0.4: + version "1.0.10" + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.10.tgz#4328badb5086a426aa90f541977d4955da5c9732" + integrity sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw== + parallel-transform@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc" @@ -6091,7 +6194,7 @@ query-string@^5.0.1: object-assign "^4.1.0" strict-uri-encode "^1.0.0" -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.0.6: +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.0.6, randombytes@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== @@ -6497,7 +6600,7 @@ scrypt@^6.0.2: dependencies: nan "^2.0.8" -scryptsy@2.1.0: +scryptsy@2.1.0, scryptsy@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/scryptsy/-/scryptsy-2.1.0.tgz#8d1e8d0c025b58fdd25b6fa9a0dc905ee8faa790" integrity sha512-1CdSqHQowJBnMAFyPEBRfqag/YP9OF394FV+4YREIJX4ljD7OxvQRDayyoyyCk+senRjSkP6VnUNQmVQqB6g7w== @@ -6733,19 +6836,19 @@ socks@~2.3.2: ip "^1.1.5" smart-buffer "4.0.2" -solc@0.5.11: - version "0.5.11" - resolved "https://registry.yarnpkg.com/solc/-/solc-0.5.11.tgz#5905261191d01befd78ef52610a006820022ee8f" - integrity sha512-F8avCCVDYnJzvIm/ITsU11GFNdFI4HaNsME+zw9lK5a3ojD3LZN2Op2cIfWg7w1HeRYRiMOU1dM77saX6jUIKw== +solc@0.5.15: + version "0.5.15" + resolved "https://registry.yarnpkg.com/solc/-/solc-0.5.15.tgz#f674ce93d4d04a86b65a4393657edf03b2f26028" + integrity sha512-uI+7XtBu/0CXRc8IMjzxbh0haLwaBF32VxAkkks06zEk+mVcsQbHdjvojXX6zQYtZVuXdVYPVccoIjEhvvqKnQ== dependencies: command-exists "^1.2.8" + commander "3.0.2" fs-extra "^0.30.0" js-sha3 "0.8.0" memorystream "^0.3.1" require-from-string "^2.0.0" semver "^5.5.0" tmp "0.0.33" - yargs "^13.2.0" solc@^0.5.10: version "0.5.10" @@ -7503,7 +7606,7 @@ underscore@1.8.3: resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.8.3.tgz#4f3fb53b106e6097fcf9cb4109f2a5e9bdfa5022" integrity sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI= -underscore@1.9.1: +underscore@1.9.1, underscore@^1.8.3: version "1.9.1" resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.9.1.tgz#06dce34a0e68a7babc29b365b8e74b8925203961" integrity sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg== @@ -7678,6 +7781,16 @@ web3-bzz@1.2.1: swarm-js "0.1.39" underscore "1.9.1" +web3-bzz@1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.2.4.tgz#a4adb7a8cba3d260de649bdb1f14ed359bfb3821" + integrity sha512-MqhAo/+0iQSMBtt3/QI1rU83uvF08sYq8r25+OUZ+4VtihnYsmkkca+rdU0QbRyrXY2/yGIpI46PFdh0khD53A== + dependencies: + "@types/node" "^10.12.18" + got "9.6.0" + swarm-js "0.1.39" + underscore "1.9.1" + web3-core-helpers@1.0.0-beta.35: version "1.0.0-beta.35" resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.0.0-beta.35.tgz#d681d218a0c6e3283ee1f99a078ab9d3eef037f1" @@ -7696,6 +7809,15 @@ web3-core-helpers@1.2.1: web3-eth-iban "1.2.1" web3-utils "1.2.1" +web3-core-helpers@1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.2.4.tgz#ffd425861f4d66b3f38df032afdb39ea0971fc0f" + integrity sha512-U7wbsK8IbZvF3B7S+QMSNP0tni/6VipnJkB0tZVEpHEIV2WWeBHYmZDnULWcsS/x/jn9yKhJlXIxWGsEAMkjiw== + dependencies: + underscore "1.9.1" + web3-eth-iban "1.2.4" + web3-utils "1.2.4" + web3-core-method@1.0.0-beta.35: version "1.0.0-beta.35" resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.0.0-beta.35.tgz#fc10e2d546cf4886038e6130bd5726b0952a4e5f" @@ -7718,6 +7840,17 @@ web3-core-method@1.2.1: web3-core-subscriptions "1.2.1" web3-utils "1.2.1" +web3-core-method@1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.2.4.tgz#a0fbc50b8ff5fd214021435cc2c6d1e115807aed" + integrity sha512-8p9kpL7di2qOVPWgcM08kb+yKom0rxRCMv6m/K+H+yLSxev9TgMbCgMSbPWAHlyiF3SJHw7APFKahK5Z+8XT5A== + dependencies: + underscore "1.9.1" + web3-core-helpers "1.2.4" + web3-core-promievent "1.2.4" + web3-core-subscriptions "1.2.4" + web3-utils "1.2.4" + web3-core-promievent@1.0.0-beta.35: version "1.0.0-beta.35" resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.0.0-beta.35.tgz#4f1b24737520fa423fee3afee110fbe82bcb8691" @@ -7734,6 +7867,14 @@ web3-core-promievent@1.2.1: any-promise "1.3.0" eventemitter3 "3.1.2" +web3-core-promievent@1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.2.4.tgz#75e5c0f2940028722cdd21ba503ebd65272df6cb" + integrity sha512-gEUlm27DewUsfUgC3T8AxkKi8Ecx+e+ZCaunB7X4Qk3i9F4C+5PSMGguolrShZ7Zb6717k79Y86f3A00O0VAZw== + dependencies: + any-promise "1.3.0" + eventemitter3 "3.1.2" + web3-core-requestmanager@1.0.0-beta.35: version "1.0.0-beta.35" resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.0.0-beta.35.tgz#2b77cbf6303720ad68899b39fa7f584dc03dbc8f" @@ -7756,6 +7897,17 @@ web3-core-requestmanager@1.2.1: web3-providers-ipc "1.2.1" web3-providers-ws "1.2.1" +web3-core-requestmanager@1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.2.4.tgz#0a7020a23fb91c6913c611dfd3d8c398d1e4b4a8" + integrity sha512-eZJDjyNTDtmSmzd3S488nR/SMJtNnn/GuwxnMh3AzYCqG3ZMfOylqTad2eYJPvc2PM5/Gj1wAMQcRpwOjjLuPg== + dependencies: + underscore "1.9.1" + web3-core-helpers "1.2.4" + web3-providers-http "1.2.4" + web3-providers-ipc "1.2.4" + web3-providers-ws "1.2.4" + web3-core-subscriptions@1.0.0-beta.35: version "1.0.0-beta.35" resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.0.0-beta.35.tgz#c1b76a2ad3c6e80f5d40b8ba560f01e0f4628758" @@ -7774,6 +7926,15 @@ web3-core-subscriptions@1.2.1: underscore "1.9.1" web3-core-helpers "1.2.1" +web3-core-subscriptions@1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.2.4.tgz#0dc095b5cfd82baa527a39796e3515a846b21b99" + integrity sha512-3D607J2M8ymY9V+/WZq4MLlBulwCkwEjjC2U+cXqgVO1rCyVqbxZNCmHyNYHjDDCxSEbks9Ju5xqJxDSxnyXEw== + dependencies: + eventemitter3 "3.1.2" + underscore "1.9.1" + web3-core-helpers "1.2.4" + web3-core@1.0.0-beta.35: version "1.0.0-beta.35" resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.0.0-beta.35.tgz#0c44d3c50d23219b0b1531d145607a9bc7cd4b4f" @@ -7794,6 +7955,19 @@ web3-core@1.2.1: web3-core-requestmanager "1.2.1" web3-utils "1.2.1" +web3-core@1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.2.4.tgz#2df13b978dcfc59c2abaa887d27f88f21ad9a9d6" + integrity sha512-CHc27sMuET2cs1IKrkz7xzmTdMfZpYswe7f0HcuyneTwS1yTlTnHyqjAaTy0ZygAb/x4iaVox+Gvr4oSAqSI+A== + dependencies: + "@types/bignumber.js" "^5.0.0" + "@types/bn.js" "^4.11.4" + "@types/node" "^12.6.1" + web3-core-helpers "1.2.4" + web3-core-method "1.2.4" + web3-core-requestmanager "1.2.4" + web3-utils "1.2.4" + web3-eth-abi@1.0.0-beta.35: version "1.0.0-beta.35" resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.0.0-beta.35.tgz#2eb9c1c7c7233db04010defcb192293e0db250e6" @@ -7813,6 +7987,15 @@ web3-eth-abi@1.2.1: underscore "1.9.1" web3-utils "1.2.1" +web3-eth-abi@1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.2.4.tgz#5b73e5ef70b03999227066d5d1310b168845e2b8" + integrity sha512-8eLIY4xZKoU3DSVu1pORluAw9Ru0/v4CGdw5so31nn+7fR8zgHMgwbFe0aOqWQ5VU42PzMMXeIJwt4AEi2buFg== + dependencies: + ethers "4.0.0-beta.3" + underscore "1.9.1" + web3-utils "1.2.4" + web3-eth-accounts@1.0.0-beta.35: version "1.0.0-beta.35" resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.0.0-beta.35.tgz#7d0e5a69f510dc93874471599eb7abfa9ddf3e63" @@ -7846,6 +8029,24 @@ web3-eth-accounts@1.2.1: web3-core-method "1.2.1" web3-utils "1.2.1" +web3-eth-accounts@1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.2.4.tgz#ada6edc49542354328a85cafab067acd7f88c288" + integrity sha512-04LzT/UtWmRFmi4hHRewP5Zz43fWhuHiK5XimP86sUQodk/ByOkXQ3RoXyGXFMNoRxdcAeRNxSfA2DpIBc9xUw== + dependencies: + "@web3-js/scrypt-shim" "^0.1.0" + any-promise "1.3.0" + crypto-browserify "3.12.0" + eth-lib "0.2.7" + ethereumjs-common "^1.3.2" + ethereumjs-tx "^2.1.1" + underscore "1.9.1" + uuid "3.3.2" + web3-core "1.2.4" + web3-core-helpers "1.2.4" + web3-core-method "1.2.4" + web3-utils "1.2.4" + web3-eth-contract@1.0.0-beta.35: version "1.0.0-beta.35" resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.0.0-beta.35.tgz#5276242d8a3358d9f1ce92b71575c74f9015935c" @@ -7874,6 +8075,21 @@ web3-eth-contract@1.2.1: web3-eth-abi "1.2.1" web3-utils "1.2.1" +web3-eth-contract@1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.2.4.tgz#68ef7cc633232779b0a2c506a810fbe903575886" + integrity sha512-b/9zC0qjVetEYnzRA1oZ8gF1OSSUkwSYi5LGr4GeckLkzXP7osEnp9lkO/AQcE4GpG+l+STnKPnASXJGZPgBRQ== + dependencies: + "@types/bn.js" "^4.11.4" + underscore "1.9.1" + web3-core "1.2.4" + web3-core-helpers "1.2.4" + web3-core-method "1.2.4" + web3-core-promievent "1.2.4" + web3-core-subscriptions "1.2.4" + web3-eth-abi "1.2.4" + web3-utils "1.2.4" + web3-eth-ens@1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.2.1.tgz#a0e52eee68c42a8b9865ceb04e5fb022c2d971d5" @@ -7888,6 +8104,20 @@ web3-eth-ens@1.2.1: web3-eth-contract "1.2.1" web3-utils "1.2.1" +web3-eth-ens@1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.2.4.tgz#b95b3aa99fb1e35c802b9e02a44c3046a3fa065e" + integrity sha512-g8+JxnZlhdsCzCS38Zm6R/ngXhXzvc3h7bXlxgKU4coTzLLoMpgOAEz71GxyIJinWTFbLXk/WjNY0dazi9NwVw== + dependencies: + eth-ens-namehash "2.0.8" + underscore "1.9.1" + web3-core "1.2.4" + web3-core-helpers "1.2.4" + web3-core-promievent "1.2.4" + web3-eth-abi "1.2.4" + web3-eth-contract "1.2.4" + web3-utils "1.2.4" + web3-eth-iban@1.0.0-beta.35: version "1.0.0-beta.35" resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.0.0-beta.35.tgz#5aa10327a9abb26bcfc4ba79d7bad18a002b332c" @@ -7904,6 +8134,14 @@ web3-eth-iban@1.2.1: bn.js "4.11.8" web3-utils "1.2.1" +web3-eth-iban@1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.2.4.tgz#8e0550fd3fd8e47a39357d87fe27dee9483ee476" + integrity sha512-D9HIyctru/FLRpXakRwmwdjb5bWU2O6UE/3AXvRm6DCOf2e+7Ve11qQrPtaubHfpdW3KWjDKvlxV9iaFv/oTMQ== + dependencies: + bn.js "4.11.8" + web3-utils "1.2.4" + web3-eth-personal@1.0.0-beta.35: version "1.0.0-beta.35" resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.0.0-beta.35.tgz#ecac95b7a53d04a567447062d5cae5f49879e89f" @@ -7926,6 +8164,18 @@ web3-eth-personal@1.2.1: web3-net "1.2.1" web3-utils "1.2.1" +web3-eth-personal@1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.2.4.tgz#3224cca6851c96347d9799b12c1b67b2a6eb232b" + integrity sha512-5Russ7ZECwHaZXcN3DLuLS7390Vzgrzepl4D87SD6Sn1DHsCZtvfdPIYwoTmKNp69LG3mORl7U23Ga5YxqkICw== + dependencies: + "@types/node" "^12.6.1" + web3-core "1.2.4" + web3-core-helpers "1.2.4" + web3-core-method "1.2.4" + web3-net "1.2.4" + web3-utils "1.2.4" + web3-eth@1.0.0-beta.35: version "1.0.0-beta.35" resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.0.0-beta.35.tgz#c52c804afb95e6624b6f5e72a9af90fbf5005b68" @@ -7963,6 +8213,25 @@ web3-eth@1.2.1: web3-net "1.2.1" web3-utils "1.2.1" +web3-eth@1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.2.4.tgz#24c3b1f1ac79351bbfb808b2ab5c585fa57cdd00" + integrity sha512-+j+kbfmZsbc3+KJpvHM16j1xRFHe2jBAniMo1BHKc3lho6A8Sn9Buyut6odubguX2AxoRArCdIDCkT9hjUERpA== + dependencies: + underscore "1.9.1" + web3-core "1.2.4" + web3-core-helpers "1.2.4" + web3-core-method "1.2.4" + web3-core-subscriptions "1.2.4" + web3-eth-abi "1.2.4" + web3-eth-accounts "1.2.4" + web3-eth-contract "1.2.4" + web3-eth-ens "1.2.4" + web3-eth-iban "1.2.4" + web3-eth-personal "1.2.4" + web3-net "1.2.4" + web3-utils "1.2.4" + web3-net@1.0.0-beta.35: version "1.0.0-beta.35" resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.0.0-beta.35.tgz#5c6688e0dea71fcd910ee9dc5437b94b7f6b3354" @@ -7981,6 +8250,15 @@ web3-net@1.2.1: web3-core-method "1.2.1" web3-utils "1.2.1" +web3-net@1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.2.4.tgz#1d246406d3aaffbf39c030e4e98bce0ca5f25458" + integrity sha512-wKOsqhyXWPSYTGbp7ofVvni17yfRptpqoUdp3SC8RAhDmGkX6irsiT9pON79m6b3HUHfLoBilFQyt/fTUZOf7A== + dependencies: + web3-core "1.2.4" + web3-core-method "1.2.4" + web3-utils "1.2.4" + web3-provider-engine@14.2.0: version "14.2.0" resolved "https://registry.yarnpkg.com/web3-provider-engine/-/web3-provider-engine-14.2.0.tgz#2efec157b2c429c5c674c079aea96b0a06de8b3d" @@ -8023,6 +8301,14 @@ web3-providers-http@1.2.1: web3-core-helpers "1.2.1" xhr2-cookies "1.1.0" +web3-providers-http@1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.2.4.tgz#514fcad71ae77832c2c15574296282fbbc5f4a67" + integrity sha512-dzVCkRrR/cqlIrcrWNiPt9gyt0AZTE0J+MfAu9rR6CyIgtnm1wFUVVGaxYRxuTGQRO4Dlo49gtoGwaGcyxqiTw== + dependencies: + web3-core-helpers "1.2.4" + xhr2-cookies "1.1.0" + web3-providers-ipc@1.0.0-beta.35: version "1.0.0-beta.35" resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.0.0-beta.35.tgz#031afeb10fade2ebb0ef2fb82f5e58c04be842d9" @@ -8041,6 +8327,15 @@ web3-providers-ipc@1.2.1: underscore "1.9.1" web3-core-helpers "1.2.1" +web3-providers-ipc@1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.2.4.tgz#9d6659f8d44943fb369b739f48df09092be459bd" + integrity sha512-8J3Dguffin51gckTaNrO3oMBo7g+j0UNk6hXmdmQMMNEtrYqw4ctT6t06YOf9GgtOMjSAc1YEh3LPrvgIsR7og== + dependencies: + oboe "2.1.4" + underscore "1.9.1" + web3-core-helpers "1.2.4" + web3-providers-ws@1.0.0-beta.35: version "1.0.0-beta.35" resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.0.0-beta.35.tgz#5d38603fd450243a26aae0ff7f680644e77fa240" @@ -8059,6 +8354,15 @@ web3-providers-ws@1.2.1: web3-core-helpers "1.2.1" websocket "github:web3-js/WebSocket-Node#polyfill/globalThis" +web3-providers-ws@1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.2.4.tgz#099ee271ee03f6ea4f5df9cfe969e83f4ce0e36f" + integrity sha512-F/vQpDzeK+++oeeNROl1IVTufFCwCR2hpWe5yRXN0ApLwHqXrMI7UwQNdJ9iyibcWjJf/ECbauEEQ8CHgE+MYQ== + dependencies: + "@web3-js/websocket" "^1.0.29" + underscore "1.9.1" + web3-core-helpers "1.2.4" + web3-shh@1.0.0-beta.35: version "1.0.0-beta.35" resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.0.0-beta.35.tgz#7e4a585f8beee0c1927390937c6537748a5d1a58" @@ -8079,6 +8383,16 @@ web3-shh@1.2.1: web3-core-subscriptions "1.2.1" web3-net "1.2.1" +web3-shh@1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.2.4.tgz#5c8ff5ab624a3b14f08af0d24d2b16c10e9f70dd" + integrity sha512-z+9SCw0dE+69Z/Hv8809XDbLj7lTfEv9Sgu8eKEIdGntZf4v7ewj5rzN5bZZSz8aCvfK7Y6ovz1PBAu4QzS4IQ== + dependencies: + web3-core "1.2.4" + web3-core-method "1.2.4" + web3-core-subscriptions "1.2.4" + web3-net "1.2.4" + web3-utils@1.0.0-beta.35: version "1.0.0-beta.35" resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.0.0-beta.35.tgz#ced9e1df47c65581c441c5f2af76b05a37a273d7" @@ -8105,6 +8419,20 @@ web3-utils@1.2.1: underscore "1.9.1" utf8 "3.0.0" +web3-utils@1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.2.4.tgz#96832a39a66b05bf8862a5b0bdad2799d709d951" + integrity sha512-+S86Ip+jqfIPQWvw2N/xBQq5JNqCO0dyvukGdJm8fEWHZbckT4WxSpHbx+9KLEWY4H4x9pUwnoRkK87pYyHfgQ== + dependencies: + bn.js "4.11.8" + eth-lib "0.2.7" + ethereum-bloom-filters "^1.0.6" + ethjs-unit "0.1.6" + number-to-bn "1.7.0" + randombytes "^2.1.0" + underscore "1.9.1" + utf8 "3.0.0" + web3-utils@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.2.0.tgz#1f11b05d173b757d3f5ba32cb90b375a487d3bf0" @@ -8144,6 +8472,20 @@ web3@1.2.1: web3-shh "1.2.1" web3-utils "1.2.1" +web3@^1.0.0-beta.34: + version "1.2.4" + resolved "https://registry.yarnpkg.com/web3/-/web3-1.2.4.tgz#6e7ab799eefc9b4648c2dab63003f704a1d5e7d9" + integrity sha512-xPXGe+w0x0t88Wj+s/dmAdASr3O9wmA9mpZRtixGZxmBexAF0MjfqYM+MS4tVl5s11hMTN3AZb8cDD4VLfC57A== + dependencies: + "@types/node" "^12.6.1" + web3-bzz "1.2.4" + web3-core "1.2.4" + web3-eth "1.2.4" + web3-eth-personal "1.2.4" + web3-net "1.2.4" + web3-shh "1.2.4" + web3-utils "1.2.4" + websocket@1.0.29, "websocket@github:web3-js/WebSocket-Node#polyfill/globalThis": version "1.0.29" resolved "https://codeload.github.com/web3-js/WebSocket-Node/tar.gz/b134a75541b5db59668df81c03e926cd5f325077" @@ -8385,7 +8727,7 @@ yargs@^11.0.0: y18n "^3.2.1" yargs-parser "^9.0.2" -yargs@^13.2.0, yargs@^13.2.2: +yargs@^13.2.2: version "13.3.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.0.tgz#4c657a55e07e5f2cf947f8a366567c04a0dedc83" integrity sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA== From 24d02c441bf1b7a562a40eb92abc02c7055d5ddc Mon Sep 17 00:00:00 2001 From: cgewecke Date: Sun, 22 Dec 2019 13:56:43 -0800 Subject: [PATCH 2/4] Use petersburg evmVersion for Buidler --- test/sources/js/wallet.js | 1 + test/units/buidler/standard.js | 2 +- test/util/integration.js | 3 +++ 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/test/sources/js/wallet.js b/test/sources/js/wallet.js index 144f3b71..b2dd9ac6 100644 --- a/test/sources/js/wallet.js +++ b/test/sources/js/wallet.js @@ -17,6 +17,7 @@ contract('Wallet', accounts => { from: accounts[0], }); + // Throws invalid opcode if compiled w/ solc >= 0.5.14 const balance = await walletB.getBalance(); assert.equal(balance.toNumber(), 100); }); diff --git a/test/units/buidler/standard.js b/test/units/buidler/standard.js index fcba2bf8..c914fe73 100644 --- a/test/units/buidler/standard.js +++ b/test/units/buidler/standard.js @@ -121,7 +121,7 @@ describe('Buidler Plugin: standard use cases', function() { ); }); - it('sends / transfers to instrumented fallback', async function(){ + it.only('sends / transfers to instrumented fallback', async function(){ mock.install('Wallet', 'wallet.js', solcoverConfig); mock.buidlerSetupEnv(this); diff --git a/test/util/integration.js b/test/util/integration.js index 99fc2f17..0900550c 100644 --- a/test/util/integration.js +++ b/test/util/integration.js @@ -152,6 +152,9 @@ function getDefaultBuidlerConfig() { url: "http://127.0.0.1:8545", } }, + solc: { + evmVersion: 'petersburg' + } } return vals; From 8b827294c5357176d10b5a8ce1275119c18b79a3 Mon Sep 17 00:00:00 2001 From: cgewecke Date: Sun, 22 Dec 2019 13:57:15 -0800 Subject: [PATCH 3/4] Remove .only --- test/units/buidler/standard.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/units/buidler/standard.js b/test/units/buidler/standard.js index c914fe73..fcba2bf8 100644 --- a/test/units/buidler/standard.js +++ b/test/units/buidler/standard.js @@ -121,7 +121,7 @@ describe('Buidler Plugin: standard use cases', function() { ); }); - it.only('sends / transfers to instrumented fallback', async function(){ + it('sends / transfers to instrumented fallback', async function(){ mock.install('Wallet', 'wallet.js', solcoverConfig); mock.buidlerSetupEnv(this); From 32de0c58588ceed88b29bc650dfc83ccf4ccc8db Mon Sep 17 00:00:00 2001 From: cgewecke Date: Sun, 22 Dec 2019 13:59:35 -0800 Subject: [PATCH 4/4] Remove solc-6 build folder --- .../solc-6/build/contracts/ContractA.json | 3351 ----------------- .../solc-6/build/contracts/ContractB.json | 657 ---- test/sources/js/wallet.js | 2 +- 3 files changed, 1 insertion(+), 4009 deletions(-) delete mode 100644 test/integration/projects/solc-6/build/contracts/ContractA.json delete mode 100644 test/integration/projects/solc-6/build/contracts/ContractB.json diff --git a/test/integration/projects/solc-6/build/contracts/ContractA.json b/test/integration/projects/solc-6/build/contracts/ContractA.json deleted file mode 100644 index 1b8959b7..00000000 --- a/test/integration/projects/solc-6/build/contracts/ContractA.json +++ /dev/null @@ -1,3351 +0,0 @@ -{ - "contractName": "ContractA", - "abi": [ - { - "inputs": [], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "i", - "type": "uint256" - } - ], - "name": "simpleSet", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "i", - "type": "uint256" - } - ], - "name": "simpleView", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "tryCatch", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "arraySlice", - "outputs": [], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "payableFn", - "outputs": [], - "stateMutability": "pure", - "type": "function" - } - ], - "metadata": "{\"compiler\":{\"version\":\"0.6.0+commit.26b70077\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"arraySlice\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"payableFn\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"i\",\"type\":\"uint256\"}],\"name\":\"simpleSet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"i\",\"type\":\"uint256\"}],\"name\":\"simpleView\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tryCatch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/cgewecke/code/sc-forks/new-master/solidity-coverage/test/integration/projects/solc-6/contracts/ContractA.sol\":\"ContractA\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/cgewecke/code/sc-forks/new-master/solidity-coverage/test/integration/projects/solc-6/contracts/ContractA.sol\":{\"keccak256\":\"0x9b6e7b6cc41348b9f5e5392b86e6aa701d550fea4e78dcca05f13af30cd9dfb8\",\"urls\":[\"bzz-raw://c30e9dbf7d631efeadff10706cd72cc801621d76ccf5e367d32dacdcbdc73eda\",\"dweb:/ipfs/QmQquC8fxdJxARRdoEB3BA651N5mxjd8SQq3Q9kHdyH2cP\"]},\"/Users/cgewecke/code/sc-forks/new-master/solidity-coverage/test/integration/projects/solc-6/contracts/ContractB.sol\":{\"keccak256\":\"0xccbf300f949b1b68c26ee6af298386638715dca51a1e2e9b0efc554c0503fe42\",\"urls\":[\"bzz-raw://8500ac51b5fb269af86de1aa5f050d937bc3a1dc7b459cbf2473a64cf6ba404e\",\"dweb:/ipfs/QmY2xsfwMNw7ZRjwTiPsT7DGMaVxKu6yBGxQJ9y1jFGmsp\"]}},\"version\":1}", - "bytecode": "0x608060405234801561001057600080fd5b506103ca806100206000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063531ba2f21461005c5780637c5a83e01461008a5780637ef135f5146100d75780639162736b146100e1578063eb9ef6d3146100eb575b600080fd5b6100886004803603602081101561007257600080fd5b8101908080359060200190929190505050610114565b005b6100b6600480360360208110156100a057600080fd5b8101908080359060200190929190505050610122565b60405180838152602001821515151581526020019250505060405180910390f35b6100df610140565b005b6100e961014a565b005b6100f36101a6565b60405180838152602001821515151581526020019250505060405180910390f35b806001540160018190555050565b600080600161013057600080fd5b8260015401600191509150915091565b6000808190505050565b6000366004818082111561015d57600080fd5b8281111561016a57600080fd5b600182028401935081810392505050604081101561018757600080fd5b8101908080359060200190929190803590602001909291905050505050565b6000803073ffffffffffffffffffffffffffffffffffffffff16637c5a83e060056040518263ffffffff1660e01b815260040180828152602001915050604080518083038186803b1580156101fa57600080fd5b505afa92505050801561023857506040513d604081101561021a57600080fd5b81019080805190602001909291908051906020019092919050505060015b6103825760006040519050600081526001156103015760443d10156102605760009050610301565b60046000803e60005160e01c6308c379a08114610281576000915050610301565b60043d036004833e81513d602482011167ffffffffffffffff821117156102ad57600092505050610301565b808301805167ffffffffffffffff8111156102cf576000945050505050610301565b8060208301013d86018111156102ed57600095505050505050610301565b601f19601f82011660405282955050505050505b8061030c575061032e565b6002600081548092919060010191905055506000808191509250925050610390565b3d806000811461035a576040519150601f19603f3d011682016040523d82523d6000602084013e61035f565b606091505b506002600081548092919060010191905055506000808191509250925050610390565b600260018191509350935050505b909156fea26469706673582212205c35c0df5637a0ba0ffef868ded38cf2a604466a405b073e6458fefd3f85e05064736f6c63430006000033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100575760003560e01c8063531ba2f21461005c5780637c5a83e01461008a5780637ef135f5146100d75780639162736b146100e1578063eb9ef6d3146100eb575b600080fd5b6100886004803603602081101561007257600080fd5b8101908080359060200190929190505050610114565b005b6100b6600480360360208110156100a057600080fd5b8101908080359060200190929190505050610122565b60405180838152602001821515151581526020019250505060405180910390f35b6100df610140565b005b6100e961014a565b005b6100f36101a6565b60405180838152602001821515151581526020019250505060405180910390f35b806001540160018190555050565b600080600161013057600080fd5b8260015401600191509150915091565b6000808190505050565b6000366004818082111561015d57600080fd5b8281111561016a57600080fd5b600182028401935081810392505050604081101561018757600080fd5b8101908080359060200190929190803590602001909291905050505050565b6000803073ffffffffffffffffffffffffffffffffffffffff16637c5a83e060056040518263ffffffff1660e01b815260040180828152602001915050604080518083038186803b1580156101fa57600080fd5b505afa92505050801561023857506040513d604081101561021a57600080fd5b81019080805190602001909291908051906020019092919050505060015b6103825760006040519050600081526001156103015760443d10156102605760009050610301565b60046000803e60005160e01c6308c379a08114610281576000915050610301565b60043d036004833e81513d602482011167ffffffffffffffff821117156102ad57600092505050610301565b808301805167ffffffffffffffff8111156102cf576000945050505050610301565b8060208301013d86018111156102ed57600095505050505050610301565b601f19601f82011660405282955050505050505b8061030c575061032e565b6002600081548092919060010191905055506000808191509250925050610390565b3d806000811461035a576040519150601f19603f3d011682016040523d82523d6000602084013e61035f565b606091505b506002600081548092919060010191905055506000808191509250925050610390565b600260018191509350935050505b909156fea26469706673582212205c35c0df5637a0ba0ffef868ded38cf2a604466a405b073e6458fefd3f85e05064736f6c63430006000033", - "sourceMap": "52:872:0:-:0;;;190:26;8:9:-1;5:2;;;30:1;27;20:12;5:2;190:26:0;52:872;;;;;;", - "deployedSourceMap": "52:872:0:-:0;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;52:872:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;220:96;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;220:96:0;;;;;;;;;;;;;;;;;:::i;:::-;;320:129;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;320:129:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;841:81;;;:::i;:::-;;754:83;;;:::i;:::-;;453:297;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;220:96;310:1;300:7;;:11;290:7;:21;;;;220:96;:::o;320:129::-;398:4;404;169;161:13;;;;;;436:1:::1;426:7;;:11;439:4;418:26;;;;320:129:::0;;;:::o;841:81::-;880:9;895;915:1;895:22;;841:81;;:::o;754:83::-;805:8;;814:1;805:12;25:8:-1;13:10;10:24;7:2;;;47:1;44;37:12;7:2;73:6;63:8;60:20;57:2;;;93:1;90;83:12;57:2;142:1;130:10;126:18;118:6;114:31;104:41;;175:10;165:8;161:25;151:35;;805:12:0;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;794:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;754:83::o;453:297::-;489:4;495;511;:15;;;527:1;511:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;511:18:0;;;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;511:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;507:239;;;20:4:-1;14:11;6:19;;43:1;37:4;30:15;57:1;50:730;;;93:4;75:16;72:26;69:2;;;109:1;101:9;;111:5;;69:2;145:1;142;139;124:23;179:1;173:8;168:3;164:18;206:10;201:3;198:19;188:2;;229:1;221:9;;231:5;;;188:2;290:1;272:16;268:24;265:1;259:4;244:49;319:4;313:11;403:16;396:4;388:6;384:17;381:39;354:18;346:6;343:30;333:94;330:2;;;444:1;436:9;;452:5;;;;330:2;491:6;485:4;481:17;524:3;518:10;548:18;540:6;537:30;534:2;;;578:1;570:9;;580:5;;;;;;534:2;624:6;617:4;612:3;608:14;604:27;658:16;652:4;648:27;643:3;640:36;637:2;;;687:1;679:9;;689:5;;;;;;;637:2;739:4;735:9;728:4;723:3;719:14;715:30;709:4;702:44;760:3;752:11;;769:5;;;;;50:730;507:239:0;;;;;;;622:10;;:12;;;;;;;;;;;;;652:1;655:5;644:17;;;;;;;;;;507:239;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;700:10:0;;:12;;;;;;;;;;;;;730:1;733:5;722:17;;;;;;;;;;507:239;569:1;572:4;561:16;;;;;;;;;453:297;;;:::o", - "source": "pragma solidity ^0.6.0;\n\nimport \"./ContractB.sol\";\n\ncontract ContractA is ContractB {\n uint counter;\n uint errorCount;\n\n modifier overridden() override {\n require(true);\n _;\n }\n\n constructor() public {\n }\n\n function simpleSet(uint i)\n public\n override(ContractB)\n {\n counter = counter + i;\n }\n\n function simpleView(uint i)\n view\n overridden\n external\n returns (uint, bool)\n {\n return (counter + i, true);\n }\n\n function tryCatch() public returns (uint, bool) {\n try this.simpleView(5) returns (uint, bool) {\n return (2, true);\n } catch Error(string memory) {\n errorCount++;\n return (0, false);\n } catch (bytes memory) {\n errorCount++;\n return (0, false);\n }\n }\n\n function arraySlice() public pure {\n abi.decode(msg.data[4:], (uint, uint));\n }\n\n function payableFn() public pure {\n address x;\n address y = payable(x);\n }\n}\n", - "sourcePath": "/Users/cgewecke/code/sc-forks/new-master/solidity-coverage/test/integration/projects/solc-6/contracts/ContractA.sol", - "ast": { - "absolutePath": "/Users/cgewecke/code/sc-forks/new-master/solidity-coverage/test/integration/projects/solc-6/contracts/ContractA.sol", - "exportedSymbols": { - "ContractA": [ - 134 - ] - }, - "id": 135, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1, - "literals": [ - "solidity", - "^", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:0" - }, - { - "absolutePath": "/Users/cgewecke/code/sc-forks/new-master/solidity-coverage/test/integration/projects/solc-6/contracts/ContractB.sol", - "file": "./ContractB.sol", - "id": 2, - "nodeType": "ImportDirective", - "scope": 135, - "sourceUnit": 162, - "src": "25:25:0", - "symbolAliases": [], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3, - "name": "ContractB", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 161, - "src": "74:9:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ContractB_$161", - "typeString": "contract ContractB" - } - }, - "id": 4, - "nodeType": "InheritanceSpecifier", - "src": "74:9:0" - } - ], - "contractDependencies": [ - 161 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 134, - "linearizedBaseContracts": [ - 134, - 161 - ], - "name": "ContractA", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 6, - "name": "counter", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 134, - "src": "88:12:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "88:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8, - "name": "errorCount", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 134, - "src": "104:15:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "104:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "baseModifiers": [ - 150 - ], - "body": { - "id": 16, - "nodeType": "Block", - "src": "155:31:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "74727565", - "id": 12, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "169:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 11, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 179, - 180 - ], - "referencedDeclaration": 179, - "src": "161:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 13, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "161:13:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 14, - "nodeType": "ExpressionStatement", - "src": "161:13:0" - }, - { - "id": 15, - "nodeType": "PlaceholderStatement", - "src": "180:1:0" - } - ] - }, - "documentation": null, - "id": 17, - "name": "overridden", - "nodeType": "ModifierDefinition", - "overrides": { - "id": 10, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "146:8:0" - }, - "parameters": { - "id": 9, - "nodeType": "ParameterList", - "parameters": [], - "src": "143:2:0" - }, - "src": "124:62:0", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 20, - "nodeType": "Block", - "src": "211:5:0", - "statements": [] - }, - "documentation": null, - "id": 21, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 18, - "nodeType": "ParameterList", - "parameters": [], - "src": "201:2:0" - }, - "returnParameters": { - "id": 19, - "nodeType": "ParameterList", - "parameters": [], - "src": "211:0:0" - }, - "scope": 134, - "src": "190:26:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "baseFunctions": [ - 160 - ], - "body": { - "id": 34, - "nodeType": "Block", - "src": "284:32:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 32, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 28, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6, - "src": "290:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 31, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 29, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6, - "src": "300:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 30, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23, - "src": "310:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "300:11:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "290:21:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 33, - "nodeType": "ExpressionStatement", - "src": "290:21:0" - } - ] - }, - "documentation": null, - "functionSelector": "531ba2f2", - "id": 35, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "simpleSet", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 26, - "nodeType": "OverrideSpecifier", - "overrides": [ - { - "contractScope": null, - "id": 25, - "name": "ContractB", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 161, - "src": "271:9:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ContractB_$161", - "typeString": "contract ContractB" - } - } - ], - "src": "262:19:0" - }, - "parameters": { - "id": 24, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 23, - "name": "i", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 35, - "src": "239:6:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 22, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "239:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "238:8:0" - }, - "returnParameters": { - "id": 27, - "nodeType": "ParameterList", - "parameters": [], - "src": "284:0:0" - }, - "scope": 134, - "src": "220:96:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 52, - "nodeType": "Block", - "src": "412:37:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 48, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 46, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6, - "src": "426:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 47, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37, - "src": "436:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "426:11:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "74727565", - "id": 49, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "439:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - } - ], - "id": 50, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "425:19:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", - "typeString": "tuple(uint256,bool)" - } - }, - "functionReturnParameters": 45, - "id": 51, - "nodeType": "Return", - "src": "418:26:0" - } - ] - }, - "documentation": null, - "functionSelector": "7c5a83e0", - "id": 53, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 40, - "modifierName": { - "argumentTypes": null, - "id": 39, - "name": "overridden", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17, - "src": "361:10:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "361:10:0" - } - ], - "name": "simpleView", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 38, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 37, - "name": "i", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 53, - "src": "340:6:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 36, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "340:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "339:8:0" - }, - "returnParameters": { - "id": 45, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 42, - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 53, - "src": "398:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 41, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "398:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 44, - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 53, - "src": "404:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 43, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "404:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "397:12:0" - }, - "scope": 134, - "src": "320:129:0", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 100, - "nodeType": "Block", - "src": "501:249:0", - "statements": [ - { - "clauses": [ - { - "block": { - "id": 73, - "nodeType": "Block", - "src": "551:33:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "hexValue": "32", - "id": 69, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "569:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - { - "argumentTypes": null, - "hexValue": "74727565", - "id": 70, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "572:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - } - ], - "id": 71, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "568:9:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_rational_2_by_1_$_t_bool_$", - "typeString": "tuple(int_const 2,bool)" - } - }, - "functionReturnParameters": 59, - "id": 72, - "nodeType": "Return", - "src": "561:16:0" - } - ] - }, - "errorName": "", - "id": 74, - "nodeType": "TryCatchClause", - "parameters": { - "id": 68, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 65, - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 74, - "src": "539:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 64, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "539:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 67, - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 74, - "src": "545:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 66, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "545:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "538:12:0" - }, - "src": "530:54:0" - }, - { - "block": { - "id": 85, - "nodeType": "Block", - "src": "612:56:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 79, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "622:12:0", - "subExpression": { - "argumentTypes": null, - "id": 78, - "name": "errorCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8, - "src": "622:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 80, - "nodeType": "ExpressionStatement", - "src": "622:12:0" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 81, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "652:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 82, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "655:5:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - } - ], - "id": 83, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "651:10:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_rational_0_by_1_$_t_bool_$", - "typeString": "tuple(int_const 0,bool)" - } - }, - "functionReturnParameters": 59, - "id": 84, - "nodeType": "Return", - "src": "644:17:0" - } - ] - }, - "errorName": "Error", - "id": 86, - "nodeType": "TryCatchClause", - "parameters": { - "id": 77, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 76, - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 86, - "src": "597:13:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 75, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "597:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "596:15:0" - }, - "src": "585:83:0" - }, - { - "block": { - "id": 97, - "nodeType": "Block", - "src": "690:56:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 91, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "700:12:0", - "subExpression": { - "argumentTypes": null, - "id": 90, - "name": "errorCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8, - "src": "700:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 92, - "nodeType": "ExpressionStatement", - "src": "700:12:0" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 93, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "730:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 94, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "733:5:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - } - ], - "id": 95, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "729:10:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_rational_0_by_1_$_t_bool_$", - "typeString": "tuple(int_const 0,bool)" - } - }, - "functionReturnParameters": 59, - "id": 96, - "nodeType": "Return", - "src": "722:17:0" - } - ] - }, - "errorName": "", - "id": 98, - "nodeType": "TryCatchClause", - "parameters": { - "id": 89, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 88, - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 98, - "src": "676:12:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 87, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "676:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "675:14:0" - }, - "src": "669:77:0" - } - ], - "externalCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "35", - "id": 62, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "527:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_5_by_1", - "typeString": "int_const 5" - }, - "value": "5" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_5_by_1", - "typeString": "int_const 5" - } - ], - "expression": { - "argumentTypes": null, - "id": 60, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "511:4:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ContractA_$134", - "typeString": "contract ContractA" - } - }, - "id": 61, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "simpleView", - "nodeType": "MemberAccess", - "referencedDeclaration": 53, - "src": "511:15:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint256_$_t_bool_$", - "typeString": "function (uint256) view external returns (uint256,bool)" - } - }, - "id": 63, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "511:18:0", - "tryCall": true, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", - "typeString": "tuple(uint256,bool)" - } - }, - "id": 99, - "nodeType": "TryStatement", - "src": "507:239:0" - } - ] - }, - "documentation": null, - "functionSelector": "eb9ef6d3", - "id": 101, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tryCatch", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 54, - "nodeType": "ParameterList", - "parameters": [], - "src": "470:2:0" - }, - "returnParameters": { - "id": 59, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 56, - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 101, - "src": "489:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 55, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "489:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 58, - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 101, - "src": "495:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 57, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "495:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "488:12:0" - }, - "scope": 134, - "src": "453:297:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 118, - "nodeType": "Block", - "src": "788:49:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 107, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 176, - "src": "805:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 108, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "data", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "805:8:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "endExpression": null, - "id": 110, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexRangeAccess", - "src": "805:12:0", - "startExpression": { - "argumentTypes": null, - "hexValue": "34", - "id": 109, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "814:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "value": "4" - }, - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr_slice", - "typeString": "bytes calldata slice" - } - }, - { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 112, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "820:4:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 111, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "820:4:0", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - { - "argumentTypes": null, - "id": 114, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "826:4:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 113, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "826:4:0", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - } - ], - "id": 115, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "819:12:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$", - "typeString": "tuple(type(uint256),type(uint256))" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr_slice", - "typeString": "bytes calldata slice" - }, - { - "typeIdentifier": "t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$", - "typeString": "tuple(type(uint256),type(uint256))" - } - ], - "expression": { - "argumentTypes": null, - "id": 104, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 163, - "src": "794:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 106, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "decode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "794:10:0", - "typeDescriptions": { - "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 116, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "794:38:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "id": 117, - "nodeType": "ExpressionStatement", - "src": "794:38:0" - } - ] - }, - "documentation": null, - "functionSelector": "9162736b", - "id": 119, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "arraySlice", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 102, - "nodeType": "ParameterList", - "parameters": [], - "src": "773:2:0" - }, - "returnParameters": { - "id": 103, - "nodeType": "ParameterList", - "parameters": [], - "src": "788:0:0" - }, - "scope": 134, - "src": "754:83:0", - "stateMutability": "pure", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 132, - "nodeType": "Block", - "src": "874:48:0", - "statements": [ - { - "assignments": [ - 123 - ], - "declarations": [ - { - "constant": false, - "id": 123, - "name": "x", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 132, - "src": "880:9:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 122, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "880:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 124, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "880:9:0" - }, - { - "assignments": [ - 126 - ], - "declarations": [ - { - "constant": false, - "id": 126, - "name": "y", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 132, - "src": "895:9:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 125, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "895:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 131, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 129, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 123, - "src": "915:1:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 128, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "907:8:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_payable_$", - "typeString": "type(address payable)" - }, - "typeName": { - "id": 127, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "907:8:0", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 130, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "907:10:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "895:22:0" - } - ] - }, - "documentation": null, - "functionSelector": "7ef135f5", - "id": 133, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "payableFn", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 120, - "nodeType": "ParameterList", - "parameters": [], - "src": "859:2:0" - }, - "returnParameters": { - "id": 121, - "nodeType": "ParameterList", - "parameters": [], - "src": "874:0:0" - }, - "scope": 134, - "src": "841:81:0", - "stateMutability": "pure", - "virtual": false, - "visibility": "public" - } - ], - "scope": 135, - "src": "52:872:0" - } - ], - "src": "0:925:0" - }, - "legacyAST": { - "absolutePath": "/Users/cgewecke/code/sc-forks/new-master/solidity-coverage/test/integration/projects/solc-6/contracts/ContractA.sol", - "exportedSymbols": { - "ContractA": [ - 134 - ] - }, - "id": 135, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1, - "literals": [ - "solidity", - "^", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:0" - }, - { - "absolutePath": "/Users/cgewecke/code/sc-forks/new-master/solidity-coverage/test/integration/projects/solc-6/contracts/ContractB.sol", - "file": "./ContractB.sol", - "id": 2, - "nodeType": "ImportDirective", - "scope": 135, - "sourceUnit": 162, - "src": "25:25:0", - "symbolAliases": [], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3, - "name": "ContractB", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 161, - "src": "74:9:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ContractB_$161", - "typeString": "contract ContractB" - } - }, - "id": 4, - "nodeType": "InheritanceSpecifier", - "src": "74:9:0" - } - ], - "contractDependencies": [ - 161 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 134, - "linearizedBaseContracts": [ - 134, - 161 - ], - "name": "ContractA", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 6, - "name": "counter", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 134, - "src": "88:12:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "88:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8, - "name": "errorCount", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 134, - "src": "104:15:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "104:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "baseModifiers": [ - 150 - ], - "body": { - "id": 16, - "nodeType": "Block", - "src": "155:31:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "74727565", - "id": 12, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "169:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 11, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 179, - 180 - ], - "referencedDeclaration": 179, - "src": "161:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 13, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "161:13:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 14, - "nodeType": "ExpressionStatement", - "src": "161:13:0" - }, - { - "id": 15, - "nodeType": "PlaceholderStatement", - "src": "180:1:0" - } - ] - }, - "documentation": null, - "id": 17, - "name": "overridden", - "nodeType": "ModifierDefinition", - "overrides": { - "id": 10, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "146:8:0" - }, - "parameters": { - "id": 9, - "nodeType": "ParameterList", - "parameters": [], - "src": "143:2:0" - }, - "src": "124:62:0", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 20, - "nodeType": "Block", - "src": "211:5:0", - "statements": [] - }, - "documentation": null, - "id": 21, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 18, - "nodeType": "ParameterList", - "parameters": [], - "src": "201:2:0" - }, - "returnParameters": { - "id": 19, - "nodeType": "ParameterList", - "parameters": [], - "src": "211:0:0" - }, - "scope": 134, - "src": "190:26:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "baseFunctions": [ - 160 - ], - "body": { - "id": 34, - "nodeType": "Block", - "src": "284:32:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 32, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 28, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6, - "src": "290:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 31, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 29, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6, - "src": "300:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 30, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23, - "src": "310:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "300:11:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "290:21:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 33, - "nodeType": "ExpressionStatement", - "src": "290:21:0" - } - ] - }, - "documentation": null, - "functionSelector": "531ba2f2", - "id": 35, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "simpleSet", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 26, - "nodeType": "OverrideSpecifier", - "overrides": [ - { - "contractScope": null, - "id": 25, - "name": "ContractB", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 161, - "src": "271:9:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ContractB_$161", - "typeString": "contract ContractB" - } - } - ], - "src": "262:19:0" - }, - "parameters": { - "id": 24, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 23, - "name": "i", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 35, - "src": "239:6:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 22, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "239:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "238:8:0" - }, - "returnParameters": { - "id": 27, - "nodeType": "ParameterList", - "parameters": [], - "src": "284:0:0" - }, - "scope": 134, - "src": "220:96:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 52, - "nodeType": "Block", - "src": "412:37:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 48, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 46, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6, - "src": "426:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 47, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37, - "src": "436:1:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "426:11:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "74727565", - "id": 49, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "439:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - } - ], - "id": 50, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "425:19:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", - "typeString": "tuple(uint256,bool)" - } - }, - "functionReturnParameters": 45, - "id": 51, - "nodeType": "Return", - "src": "418:26:0" - } - ] - }, - "documentation": null, - "functionSelector": "7c5a83e0", - "id": 53, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 40, - "modifierName": { - "argumentTypes": null, - "id": 39, - "name": "overridden", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17, - "src": "361:10:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "361:10:0" - } - ], - "name": "simpleView", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 38, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 37, - "name": "i", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 53, - "src": "340:6:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 36, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "340:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "339:8:0" - }, - "returnParameters": { - "id": 45, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 42, - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 53, - "src": "398:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 41, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "398:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 44, - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 53, - "src": "404:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 43, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "404:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "397:12:0" - }, - "scope": 134, - "src": "320:129:0", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 100, - "nodeType": "Block", - "src": "501:249:0", - "statements": [ - { - "clauses": [ - { - "block": { - "id": 73, - "nodeType": "Block", - "src": "551:33:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "hexValue": "32", - "id": 69, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "569:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - { - "argumentTypes": null, - "hexValue": "74727565", - "id": 70, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "572:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - } - ], - "id": 71, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "568:9:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_rational_2_by_1_$_t_bool_$", - "typeString": "tuple(int_const 2,bool)" - } - }, - "functionReturnParameters": 59, - "id": 72, - "nodeType": "Return", - "src": "561:16:0" - } - ] - }, - "errorName": "", - "id": 74, - "nodeType": "TryCatchClause", - "parameters": { - "id": 68, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 65, - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 74, - "src": "539:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 64, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "539:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 67, - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 74, - "src": "545:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 66, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "545:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "538:12:0" - }, - "src": "530:54:0" - }, - { - "block": { - "id": 85, - "nodeType": "Block", - "src": "612:56:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 79, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "622:12:0", - "subExpression": { - "argumentTypes": null, - "id": 78, - "name": "errorCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8, - "src": "622:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 80, - "nodeType": "ExpressionStatement", - "src": "622:12:0" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 81, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "652:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 82, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "655:5:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - } - ], - "id": 83, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "651:10:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_rational_0_by_1_$_t_bool_$", - "typeString": "tuple(int_const 0,bool)" - } - }, - "functionReturnParameters": 59, - "id": 84, - "nodeType": "Return", - "src": "644:17:0" - } - ] - }, - "errorName": "Error", - "id": 86, - "nodeType": "TryCatchClause", - "parameters": { - "id": 77, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 76, - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 86, - "src": "597:13:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 75, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "597:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "596:15:0" - }, - "src": "585:83:0" - }, - { - "block": { - "id": 97, - "nodeType": "Block", - "src": "690:56:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 91, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "700:12:0", - "subExpression": { - "argumentTypes": null, - "id": 90, - "name": "errorCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8, - "src": "700:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 92, - "nodeType": "ExpressionStatement", - "src": "700:12:0" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 93, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "730:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 94, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "733:5:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - } - ], - "id": 95, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "729:10:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_rational_0_by_1_$_t_bool_$", - "typeString": "tuple(int_const 0,bool)" - } - }, - "functionReturnParameters": 59, - "id": 96, - "nodeType": "Return", - "src": "722:17:0" - } - ] - }, - "errorName": "", - "id": 98, - "nodeType": "TryCatchClause", - "parameters": { - "id": 89, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 88, - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 98, - "src": "676:12:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 87, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "676:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "675:14:0" - }, - "src": "669:77:0" - } - ], - "externalCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "35", - "id": 62, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "527:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_5_by_1", - "typeString": "int_const 5" - }, - "value": "5" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_5_by_1", - "typeString": "int_const 5" - } - ], - "expression": { - "argumentTypes": null, - "id": 60, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "511:4:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ContractA_$134", - "typeString": "contract ContractA" - } - }, - "id": 61, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "simpleView", - "nodeType": "MemberAccess", - "referencedDeclaration": 53, - "src": "511:15:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint256_$_t_bool_$", - "typeString": "function (uint256) view external returns (uint256,bool)" - } - }, - "id": 63, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "511:18:0", - "tryCall": true, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", - "typeString": "tuple(uint256,bool)" - } - }, - "id": 99, - "nodeType": "TryStatement", - "src": "507:239:0" - } - ] - }, - "documentation": null, - "functionSelector": "eb9ef6d3", - "id": 101, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "tryCatch", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 54, - "nodeType": "ParameterList", - "parameters": [], - "src": "470:2:0" - }, - "returnParameters": { - "id": 59, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 56, - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 101, - "src": "489:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 55, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "489:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 58, - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 101, - "src": "495:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 57, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "495:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "488:12:0" - }, - "scope": 134, - "src": "453:297:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 118, - "nodeType": "Block", - "src": "788:49:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 107, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 176, - "src": "805:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 108, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "data", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "805:8:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "endExpression": null, - "id": 110, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexRangeAccess", - "src": "805:12:0", - "startExpression": { - "argumentTypes": null, - "hexValue": "34", - "id": 109, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "814:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "value": "4" - }, - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr_slice", - "typeString": "bytes calldata slice" - } - }, - { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 112, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "820:4:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 111, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "820:4:0", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - { - "argumentTypes": null, - "id": 114, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "826:4:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 113, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "826:4:0", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - } - ], - "id": 115, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "819:12:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$", - "typeString": "tuple(type(uint256),type(uint256))" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr_slice", - "typeString": "bytes calldata slice" - }, - { - "typeIdentifier": "t_tuple$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$", - "typeString": "tuple(type(uint256),type(uint256))" - } - ], - "expression": { - "argumentTypes": null, - "id": 104, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 163, - "src": "794:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 106, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "decode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "794:10:0", - "typeDescriptions": { - "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 116, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "794:38:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "id": 117, - "nodeType": "ExpressionStatement", - "src": "794:38:0" - } - ] - }, - "documentation": null, - "functionSelector": "9162736b", - "id": 119, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "arraySlice", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 102, - "nodeType": "ParameterList", - "parameters": [], - "src": "773:2:0" - }, - "returnParameters": { - "id": 103, - "nodeType": "ParameterList", - "parameters": [], - "src": "788:0:0" - }, - "scope": 134, - "src": "754:83:0", - "stateMutability": "pure", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 132, - "nodeType": "Block", - "src": "874:48:0", - "statements": [ - { - "assignments": [ - 123 - ], - "declarations": [ - { - "constant": false, - "id": 123, - "name": "x", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 132, - "src": "880:9:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 122, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "880:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 124, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "880:9:0" - }, - { - "assignments": [ - 126 - ], - "declarations": [ - { - "constant": false, - "id": 126, - "name": "y", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 132, - "src": "895:9:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 125, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "895:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 131, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 129, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 123, - "src": "915:1:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 128, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "907:8:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_payable_$", - "typeString": "type(address payable)" - }, - "typeName": { - "id": 127, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "907:8:0", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 130, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "907:10:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "895:22:0" - } - ] - }, - "documentation": null, - "functionSelector": "7ef135f5", - "id": 133, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "payableFn", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 120, - "nodeType": "ParameterList", - "parameters": [], - "src": "859:2:0" - }, - "returnParameters": { - "id": 121, - "nodeType": "ParameterList", - "parameters": [], - "src": "874:0:0" - }, - "scope": 134, - "src": "841:81:0", - "stateMutability": "pure", - "virtual": false, - "visibility": "public" - } - ], - "scope": 135, - "src": "52:872:0" - } - ], - "src": "0:925:0" - }, - "compiler": { - "name": "solc", - "version": "0.6.0+commit.26b70077.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.0.20", - "updatedAt": "2019-12-21T22:48:33.668Z", - "devdoc": { - "methods": {} - }, - "userdoc": { - "methods": {} - } -} \ No newline at end of file diff --git a/test/integration/projects/solc-6/build/contracts/ContractB.json b/test/integration/projects/solc-6/build/contracts/ContractB.json deleted file mode 100644 index 72489105..00000000 --- a/test/integration/projects/solc-6/build/contracts/ContractB.json +++ /dev/null @@ -1,657 +0,0 @@ -{ - "contractName": "ContractB", - "abi": [ - { - "inputs": [], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "i", - "type": "uint256" - } - ], - "name": "simpleSet", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "metadata": "{\"compiler\":{\"version\":\"0.6.0+commit.26b70077\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"i\",\"type\":\"uint256\"}],\"name\":\"simpleSet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/cgewecke/code/sc-forks/new-master/solidity-coverage/test/integration/projects/solc-6/contracts/ContractB.sol\":\"ContractB\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/cgewecke/code/sc-forks/new-master/solidity-coverage/test/integration/projects/solc-6/contracts/ContractB.sol\":{\"keccak256\":\"0xccbf300f949b1b68c26ee6af298386638715dca51a1e2e9b0efc554c0503fe42\",\"urls\":[\"bzz-raw://8500ac51b5fb269af86de1aa5f050d937bc3a1dc7b459cbf2473a64cf6ba404e\",\"dweb:/ipfs/QmY2xsfwMNw7ZRjwTiPsT7DGMaVxKu6yBGxQJ9y1jFGmsp\"]}},\"version\":1}", - "bytecode": "0x6080604052348015600f57600080fd5b5060998061001e6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c8063531ba2f214602d575b600080fd5b605660048036036020811015604157600080fd5b81019080803590602001909291905050506058565b005b60056000819055505056fea2646970667358221220b2e66acbf3344867ca3e8b853808686b9f20429f3292f397b3ae4a280c825fa964736f6c63430006000033", - "deployedBytecode": "0x6080604052348015600f57600080fd5b506004361060285760003560e01c8063531ba2f214602d575b600080fd5b605660048036036020811015604157600080fd5b81019080803590602001909291905050506058565b005b60056000819055505056fea2646970667358221220b2e66acbf3344867ca3e8b853808686b9f20429f3292f397b3ae4a280c825fa964736f6c63430006000033", - "sourceMap": "26:197:1:-:0;;;64:26;8:9:-1;5:2;;;30:1;27;20:12;5:2;64:26:1;26:197;;;;;;", - "deployedSourceMap": "26:197:1:-:0;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;26:197:1;;;;;;;;;;;;;;;;;;;159:62;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;159:62:1;;;;;;;;;;;;;;;;;:::i;:::-;;;215:1;207:5;:9;;;;159:62;:::o", - "source": "pragma solidity ^0.6.0;\n\n\ncontract ContractB {\n uint value;\n\n constructor() public {\n }\n\n modifier overridden() virtual {\n require(true);\n _;\n }\n\n function simpleSet(uint i) public virtual {\n value = 5;\n }\n}\n", - "sourcePath": "/Users/cgewecke/code/sc-forks/new-master/solidity-coverage/test/integration/projects/solc-6/contracts/ContractB.sol", - "ast": { - "absolutePath": "/Users/cgewecke/code/sc-forks/new-master/solidity-coverage/test/integration/projects/solc-6/contracts/ContractB.sol", - "exportedSymbols": { - "ContractB": [ - 165 - ] - }, - "id": 166, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 140, - "literals": [ - "solidity", - "^", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:1" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 165, - "linearizedBaseContracts": [ - 165 - ], - "name": "ContractB", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 142, - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 165, - "src": "49:10:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 141, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "49:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 145, - "nodeType": "Block", - "src": "85:5:1", - "statements": [] - }, - "documentation": null, - "id": 146, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 143, - "nodeType": "ParameterList", - "parameters": [], - "src": "75:2:1" - }, - "returnParameters": { - "id": 144, - "nodeType": "ParameterList", - "parameters": [], - "src": "85:0:1" - }, - "scope": 165, - "src": "64:26:1", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 153, - "nodeType": "Block", - "src": "124:31:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "74727565", - "id": 149, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "138:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 148, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 183, - 184 - ], - "referencedDeclaration": 183, - "src": "130:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 150, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "130:13:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 151, - "nodeType": "ExpressionStatement", - "src": "130:13:1" - }, - { - "id": 152, - "nodeType": "PlaceholderStatement", - "src": "149:1:1" - } - ] - }, - "documentation": null, - "id": 154, - "name": "overridden", - "nodeType": "ModifierDefinition", - "overrides": null, - "parameters": { - "id": 147, - "nodeType": "ParameterList", - "parameters": [], - "src": "113:2:1" - }, - "src": "94:61:1", - "virtual": true, - "visibility": "internal" - }, - { - "body": { - "id": 163, - "nodeType": "Block", - "src": "201:20:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 161, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 159, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 142, - "src": "207:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "35", - "id": 160, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "215:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_5_by_1", - "typeString": "int_const 5" - }, - "value": "5" - }, - "src": "207:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 162, - "nodeType": "ExpressionStatement", - "src": "207:9:1" - } - ] - }, - "documentation": null, - "functionSelector": "531ba2f2", - "id": 164, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "simpleSet", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 157, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 156, - "name": "i", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 164, - "src": "178:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 155, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "178:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "177:8:1" - }, - "returnParameters": { - "id": 158, - "nodeType": "ParameterList", - "parameters": [], - "src": "201:0:1" - }, - "scope": 165, - "src": "159:62:1", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "public" - } - ], - "scope": 166, - "src": "26:197:1" - } - ], - "src": "0:224:1" - }, - "legacyAST": { - "absolutePath": "/Users/cgewecke/code/sc-forks/new-master/solidity-coverage/test/integration/projects/solc-6/contracts/ContractB.sol", - "exportedSymbols": { - "ContractB": [ - 165 - ] - }, - "id": 166, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 140, - "literals": [ - "solidity", - "^", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:1" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 165, - "linearizedBaseContracts": [ - 165 - ], - "name": "ContractB", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 142, - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 165, - "src": "49:10:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 141, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "49:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 145, - "nodeType": "Block", - "src": "85:5:1", - "statements": [] - }, - "documentation": null, - "id": 146, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 143, - "nodeType": "ParameterList", - "parameters": [], - "src": "75:2:1" - }, - "returnParameters": { - "id": 144, - "nodeType": "ParameterList", - "parameters": [], - "src": "85:0:1" - }, - "scope": 165, - "src": "64:26:1", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 153, - "nodeType": "Block", - "src": "124:31:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "74727565", - "id": 149, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "138:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 148, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 183, - 184 - ], - "referencedDeclaration": 183, - "src": "130:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 150, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "130:13:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 151, - "nodeType": "ExpressionStatement", - "src": "130:13:1" - }, - { - "id": 152, - "nodeType": "PlaceholderStatement", - "src": "149:1:1" - } - ] - }, - "documentation": null, - "id": 154, - "name": "overridden", - "nodeType": "ModifierDefinition", - "overrides": null, - "parameters": { - "id": 147, - "nodeType": "ParameterList", - "parameters": [], - "src": "113:2:1" - }, - "src": "94:61:1", - "virtual": true, - "visibility": "internal" - }, - { - "body": { - "id": 163, - "nodeType": "Block", - "src": "201:20:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 161, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 159, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 142, - "src": "207:5:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "35", - "id": 160, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "215:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_5_by_1", - "typeString": "int_const 5" - }, - "value": "5" - }, - "src": "207:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 162, - "nodeType": "ExpressionStatement", - "src": "207:9:1" - } - ] - }, - "documentation": null, - "functionSelector": "531ba2f2", - "id": 164, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "simpleSet", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 157, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 156, - "name": "i", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 164, - "src": "178:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 155, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "178:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "177:8:1" - }, - "returnParameters": { - "id": 158, - "nodeType": "ParameterList", - "parameters": [], - "src": "201:0:1" - }, - "scope": 165, - "src": "159:62:1", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "public" - } - ], - "scope": 166, - "src": "26:197:1" - } - ], - "src": "0:224:1" - }, - "compiler": { - "name": "solc", - "version": "0.6.0+commit.26b70077.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.0.20", - "updatedAt": "2019-12-21T22:43:06.828Z", - "devdoc": { - "methods": {} - }, - "userdoc": { - "methods": {} - } -} \ No newline at end of file diff --git a/test/sources/js/wallet.js b/test/sources/js/wallet.js index b2dd9ac6..1e8dcc3a 100644 --- a/test/sources/js/wallet.js +++ b/test/sources/js/wallet.js @@ -17,7 +17,7 @@ contract('Wallet', accounts => { from: accounts[0], }); - // Throws invalid opcode if compiled w/ solc >= 0.5.14 + // Throws invalid opcode if compiled w/ solc >= 0.5.14 & default EVM version const balance = await walletB.getBalance(); assert.equal(balance.toNumber(), 100); });