Skip to content

Instantly share code, notes, and snippets.

@ASISBusiness
Created August 16, 2025 04:14
Show Gist options
  • Select an option

  • Save ASISBusiness/6da021b36bda61d01d257f7c80eb73ee to your computer and use it in GitHub Desktop.

Select an option

Save ASISBusiness/6da021b36bda61d01d257f7c80eb73ee to your computer and use it in GitHub Desktop.
Created using remix-ide: Realtime Ethereum Contract Compiler and Runtime. Load this file by pasting this gists URL or ID at https://remix.ethereum.org/#version=soljson-v0.5.17+commit.d19bba13.js&optimize=false&runs=200&gist=
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"goerli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"linkReferences": {},
"object": "60556023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a72315820a8d2914f2b4f840cfefe740a7e7dde049ae2ba4b269a8b48ef1c24cecd45c8e164736f6c63430005110032",
"opcodes": "PUSH1 0x55 PUSH1 0x23 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x16 JUMPI INVALID JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 0xA8 0xD2 SWAP2 0x4F 0x2B 0x4F DUP5 0xC INVALID INVALID PUSH21 0xA7E7DDE049AE2BA4B269A8B48EF1C24CECD45C8E1 PUSH5 0x736F6C6343 STOP SDIV GT STOP ORIGIN ",
"sourceMap": "2855:150:0:-;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24"
},
"deployedBytecode": {
"linkReferences": {},
"object": "73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a72315820a8d2914f2b4f840cfefe740a7e7dde049ae2ba4b269a8b48ef1c24cecd45c8e164736f6c63430005110032",
"opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 0xA8 0xD2 SWAP2 0x4F 0x2B 0x4F DUP5 0xC INVALID INVALID PUSH21 0xA7E7DDE049AE2BA4B269A8B48EF1C24CECD45C8E1 PUSH5 0x736F6C6343 STOP SDIV GT STOP ORIGIN ",
"sourceMap": "2855:150:0:-;;;;;;;;"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "17000",
"executionCost": "94",
"totalCost": "17094"
},
"internal": {
"makePayable(address)": "infinite"
}
},
"methodIdentifiers": {}
},
"abi": []
}
{
"compiler": {
"version": "0.5.17+commit.d19bba13"
},
"language": "Solidity",
"output": {
"abi": [],
"devdoc": {
"methods": {}
},
"userdoc": {
"methods": {}
}
},
"settings": {
"compilationTarget": {
"contract-2ae49825ba.sol": "AddressMakePayable"
},
"evmVersion": "istanbul",
"libraries": {},
"optimizer": {
"enabled": true,
"runs": 200
},
"remappings": []
},
"sources": {
"contract-2ae49825ba.sol": {
"keccak256": "0xc92105a99123e8d29896b45ce9b7ee07d28f8e83637b958ccf2806db73efe7d7",
"urls": [
"bzz-raw://7a5225a0ac9d2b053d1b9f070a4ef408afdad8c4b54d1aab7929ae494cafa22b",
"dweb:/ipfs/QmSHbAW3PTq4i231S84x1WFpChAVBGb2wmNfovkCfaa43J"
]
}
},
"version": 1
}
{
"id": "50042d6ff641d5536b48402374b7a357",
"_format": "hh-sol-build-info-1",
"solcVersion": "0.5.17",
"solcLongVersion": "0.5.17+commit.d19bba13",
"input": {
"language": "Solidity",
"settings": {
"optimizer": {
"enabled": true,
"runs": 200
},
"outputSelection": {
"*": {
"": [
"ast"
],
"*": [
"abi",
"metadata",
"devdoc",
"userdoc",
"storageLayout",
"evm.legacyAssembly",
"evm.bytecode",
"evm.deployedBytecode",
"evm.methodIdentifiers",
"evm.gasEstimates",
"evm.assembly"
]
}
},
"remappings": []
},
"sources": {
"contract-2ae49825ba.sol": {
"content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.5.0;\n// This will not compile after 0.6.0\n\ncontract OtherContract {\n uint x;\n function f(uint y) external {\n x = y;\n }\n function() payable external {}\n}\n\ncontract New {\n OtherContract other;\n uint myNumber;\n\n // Function mutability must be specified.\n function someInteger() internal pure returns (uint) { return 2; }\n\n // Function visibility must be specified.\n // Function mutability must be specified.\n function f(uint x) public returns (bytes memory) {\n // The type must now be explicitly given.\n uint z = someInteger();\n x += z;\n // Throw is now disallowed.\n require(x <= 100);\n int y = -3 >> 1;\n require(y == -2);\n do {\n x += 1;\n if (x > 10) continue;\n // 'Continue' jumps to the condition below.\n } while (x < 11);\n\n // Call returns (bool, bytes).\n // Data location must be specified.\n (bool success, bytes memory data) = address(other).call(\"f\");\n if (!success)\n revert();\n return data;\n }\n\n using AddressMakePayable for address;\n // Data location for 'arr' must be specified\n function g(uint[] memory /* arr */, bytes8 x, OtherContract otherContract, address unknownContract) public payable {\n // 'otherContract.transfer' is not provided.\n // Since the code of 'OtherContract' is known and has the fallback\n // function, address(otherContract) has type 'address payable'.\n address(otherContract).transfer(1 ether);\n\n // 'unknownContract.transfer' is not provided.\n // 'address(unknownContract).transfer' is not provided\n // since 'address(unknownContract)' is not 'address payable'.\n // If the function takes an 'address' which you want to send\n // funds to, you can convert it to 'address payable' via 'uint160'.\n // Note: This is not recommended and the explicit type\n // 'address payable' should be used whenever possible.\n // To increase clarity, we suggest the use of a library for\n // the conversion (provided after the contract in this example).\n address payable addr = unknownContract.makePayable();\n require(addr.send(1 ether));\n\n // Since uint32 (4 bytes) is smaller than bytes8 (8 bytes),\n // the conversion is not allowed.\n // We need to convert to a common size first:\n bytes4 x4 = bytes4(x); // Padding happens on the right\n uint32 y = uint32(x4); // Conversion is consistent\n // 'msg.value' cannot be used in a 'non-payable' function.\n // We need to make the function payable\n myNumber += y + msg.value;\n }\n}\n\n// We can define a library for explicitly converting ``address``\n// to ``address payable`` as a workaround.\nlibrary AddressMakePayable {\n function makePayable(address x) internal pure returns (address payable) {\n return address(uint160(x));\n }\n}"
}
}
},
"output": {
"contracts": {
"contract-2ae49825ba.sol": {
"AddressMakePayable": {
"abi": [],
"devdoc": {
"methods": {}
},
"evm": {
"assembly": " /* \"contract-2ae49825ba.sol\":2855:3005 library AddressMakePayable {... */\n dataSize(sub_0)\n dataOffset(sub_0)\n /* \"--CODEGEN--\":132:134 */\n 0x0b\n /* \"--CODEGEN--\":166:173 */\n dup3\n /* \"--CODEGEN--\":155:164 */\n dup3\n /* \"--CODEGEN--\":146:153 */\n dup3\n /* \"--CODEGEN--\":137:174 */\n codecopy\n /* \"--CODEGEN--\":255:262 */\n dup1\n /* \"--CODEGEN--\":249:263 */\n mload\n /* \"--CODEGEN--\":246:247 */\n 0x00\n /* \"--CODEGEN--\":241:264 */\n byte\n /* \"--CODEGEN--\":235:239 */\n 0x73\n /* \"--CODEGEN--\":232:265 */\n eq\n /* \"--CODEGEN--\":222:224 */\n tag_1\n jumpi\n /* \"--CODEGEN--\":269:278 */\n invalid\n /* \"--CODEGEN--\":222:224 */\ntag_1:\n /* \"--CODEGEN--\":293:302 */\n address\n /* \"--CODEGEN--\":290:291 */\n 0x00\n /* \"--CODEGEN--\":283:303 */\n mstore\n /* \"--CODEGEN--\":323:327 */\n 0x73\n /* \"--CODEGEN--\":314:321 */\n dup2\n /* \"--CODEGEN--\":306:328 */\n mstore8\n /* \"--CODEGEN--\":347:354 */\n dup3\n /* \"--CODEGEN--\":338:345 */\n dup2\n /* \"--CODEGEN--\":331:355 */\n return\nstop\n\nsub_0: assembly {\n /* \"contract-2ae49825ba.sol\":2855:3005 library AddressMakePayable {... */\n eq(address, deployTimeAddress())\n mstore(0x40, 0x80)\n 0x00\n dup1\n revert\n\n auxdata: 0xa265627a7a72315820a8d2914f2b4f840cfefe740a7e7dde049ae2ba4b269a8b48ef1c24cecd45c8e164736f6c63430005110032\n}\n",
"bytecode": {
"linkReferences": {},
"object": "60556023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a72315820a8d2914f2b4f840cfefe740a7e7dde049ae2ba4b269a8b48ef1c24cecd45c8e164736f6c63430005110032",
"opcodes": "PUSH1 0x55 PUSH1 0x23 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x16 JUMPI INVALID JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 0xA8 0xD2 SWAP2 0x4F 0x2B 0x4F DUP5 0xC INVALID INVALID PUSH21 0xA7E7DDE049AE2BA4B269A8B48EF1C24CECD45C8E1 PUSH5 0x736F6C6343 STOP SDIV GT STOP ORIGIN ",
"sourceMap": "2855:150:0:-;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24"
},
"deployedBytecode": {
"linkReferences": {},
"object": "73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a72315820a8d2914f2b4f840cfefe740a7e7dde049ae2ba4b269a8b48ef1c24cecd45c8e164736f6c63430005110032",
"opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 0xA8 0xD2 SWAP2 0x4F 0x2B 0x4F DUP5 0xC INVALID INVALID PUSH21 0xA7E7DDE049AE2BA4B269A8B48EF1C24CECD45C8E1 PUSH5 0x736F6C6343 STOP SDIV GT STOP ORIGIN ",
"sourceMap": "2855:150:0:-;;;;;;;;"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "17000",
"executionCost": "94",
"totalCost": "17094"
},
"internal": {
"makePayable(address)": "infinite"
}
},
"legacyAssembly": {
".code": [
{
"begin": 2855,
"end": 3005,
"name": "PUSH #[$]",
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 2855,
"end": 3005,
"name": "PUSH [$]",
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 132,
"end": 134,
"name": "PUSH",
"value": "B"
},
{
"begin": 166,
"end": 173,
"name": "DUP3"
},
{
"begin": 155,
"end": 164,
"name": "DUP3"
},
{
"begin": 146,
"end": 153,
"name": "DUP3"
},
{
"begin": 137,
"end": 174,
"name": "CODECOPY"
},
{
"begin": 255,
"end": 262,
"name": "DUP1"
},
{
"begin": 249,
"end": 263,
"name": "MLOAD"
},
{
"begin": 246,
"end": 247,
"name": "PUSH",
"value": "0"
},
{
"begin": 241,
"end": 264,
"name": "BYTE"
},
{
"begin": 235,
"end": 239,
"name": "PUSH",
"value": "73"
},
{
"begin": 232,
"end": 265,
"name": "EQ"
},
{
"begin": 222,
"end": 224,
"name": "PUSH [tag]",
"value": "1"
},
{
"begin": 222,
"end": 224,
"name": "JUMPI"
},
{
"begin": 269,
"end": 278,
"name": "INVALID"
},
{
"begin": 222,
"end": 224,
"name": "tag",
"value": "1"
},
{
"begin": 222,
"end": 224,
"name": "JUMPDEST"
},
{
"begin": 293,
"end": 302,
"name": "ADDRESS"
},
{
"begin": 290,
"end": 291,
"name": "PUSH",
"value": "0"
},
{
"begin": 283,
"end": 303,
"name": "MSTORE"
},
{
"begin": 323,
"end": 327,
"name": "PUSH",
"value": "73"
},
{
"begin": 314,
"end": 321,
"name": "DUP2"
},
{
"begin": 306,
"end": 328,
"name": "MSTORE8"
},
{
"begin": 347,
"end": 354,
"name": "DUP3"
},
{
"begin": 338,
"end": 345,
"name": "DUP2"
},
{
"begin": 331,
"end": 355,
"name": "RETURN"
}
],
".data": {
"0": {
".auxdata": "a265627a7a72315820a8d2914f2b4f840cfefe740a7e7dde049ae2ba4b269a8b48ef1c24cecd45c8e164736f6c63430005110032",
".code": [
{
"begin": 2855,
"end": 3005,
"name": "PUSHDEPLOYADDRESS"
},
{
"begin": 2855,
"end": 3005,
"name": "ADDRESS"
},
{
"begin": 2855,
"end": 3005,
"name": "EQ"
},
{
"begin": 2855,
"end": 3005,
"name": "PUSH",
"value": "80"
},
{
"begin": 2855,
"end": 3005,
"name": "PUSH",
"value": "40"
},
{
"begin": 2855,
"end": 3005,
"name": "MSTORE"
},
{
"begin": 2855,
"end": 3005,
"name": "PUSH",
"value": "0"
},
{
"begin": 2855,
"end": 3005,
"name": "DUP1"
},
{
"begin": 2855,
"end": 3005,
"name": "REVERT"
}
]
}
}
},
"methodIdentifiers": {}
},
"metadata": "{\"compiler\":{\"version\":\"0.5.17+commit.d19bba13\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contract-2ae49825ba.sol\":\"AddressMakePayable\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contract-2ae49825ba.sol\":{\"keccak256\":\"0xc92105a99123e8d29896b45ce9b7ee07d28f8e83637b958ccf2806db73efe7d7\",\"urls\":[\"bzz-raw://7a5225a0ac9d2b053d1b9f070a4ef408afdad8c4b54d1aab7929ae494cafa22b\",\"dweb:/ipfs/QmSHbAW3PTq4i231S84x1WFpChAVBGb2wmNfovkCfaa43J\"]}},\"version\":1}",
"storageLayout": {
"storage": [],
"types": null
},
"userdoc": {
"methods": {}
}
},
"New": {
"abi": [
{
"constant": false,
"inputs": [
{
"internalType": "uint256",
"name": "x",
"type": "uint256"
}
],
"name": "f",
"outputs": [
{
"internalType": "bytes",
"name": "",
"type": "bytes"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "uint256[]",
"name": "",
"type": "uint256[]"
},
{
"internalType": "bytes8",
"name": "x",
"type": "bytes8"
},
{
"internalType": "contract OtherContract",
"name": "otherContract",
"type": "address"
},
{
"internalType": "address",
"name": "unknownContract",
"type": "address"
}
],
"name": "g",
"outputs": [],
"payable": true,
"stateMutability": "payable",
"type": "function"
}
],
"devdoc": {
"methods": {}
},
"evm": {
"assembly": " /* \"contract-2ae49825ba.sol\":228:2745 contract New {... */\n mstore(0x40, 0x80)\n callvalue\n /* \"--CODEGEN--\":8:17 */\n dup1\n /* \"--CODEGEN--\":5:7 */\n iszero\n tag_1\n jumpi\n /* \"--CODEGEN--\":30:31 */\n 0x00\n /* \"--CODEGEN--\":27:28 */\n dup1\n /* \"--CODEGEN--\":20:32 */\n revert\n /* \"--CODEGEN--\":5:7 */\ntag_1:\n /* \"contract-2ae49825ba.sol\":228:2745 contract New {... */\n pop\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"contract-2ae49825ba.sol\":228:2745 contract New {... */\n mstore(0x40, 0x80)\n jumpi(tag_1, lt(calldatasize, 0x04))\n shr(0xe0, calldataload(0x00))\n dup1\n 0xb3de648b\n eq\n tag_2\n jumpi\n dup1\n 0xb4f2b3d9\n eq\n tag_3\n jumpi\n tag_1:\n 0x00\n dup1\n revert\n /* \"contract-2ae49825ba.sol\":501:1137 function f(uint x) public returns (bytes memory) {... */\n tag_2:\n callvalue\n /* \"--CODEGEN--\":8:17 */\n dup1\n /* \"--CODEGEN--\":5:7 */\n iszero\n tag_4\n jumpi\n /* \"--CODEGEN--\":30:31 */\n 0x00\n /* \"--CODEGEN--\":27:28 */\n dup1\n /* \"--CODEGEN--\":20:32 */\n revert\n /* \"--CODEGEN--\":5:7 */\n tag_4:\n /* \"contract-2ae49825ba.sol\":501:1137 function f(uint x) public returns (bytes memory) {... */\n pop\n tag_5\n 0x04\n dup1\n calldatasize\n sub\n /* \"--CODEGEN--\":13:15 */\n 0x20\n /* \"--CODEGEN--\":8:11 */\n dup2\n /* \"--CODEGEN--\":5:16 */\n lt\n /* \"--CODEGEN--\":2:4 */\n iszero\n tag_6\n jumpi\n /* \"--CODEGEN--\":29:30 */\n 0x00\n /* \"--CODEGEN--\":26:27 */\n dup1\n /* \"--CODEGEN--\":19:31 */\n revert\n /* \"--CODEGEN--\":2:4 */\n tag_6:\n pop\n /* \"contract-2ae49825ba.sol\":501:1137 function f(uint x) public returns (bytes memory) {... */\n calldataload\n tag_7\n jump\t// in\n tag_5:\n 0x40\n dup1\n mload\n 0x20\n dup1\n dup3\n mstore\n dup4\n mload\n dup2\n dup4\n add\n mstore\n dup4\n mload\n swap2\n swap3\n dup4\n swap3\n swap1\n dup4\n add\n swap2\n dup6\n add\n swap1\n dup1\n dup4\n dup4\n 0x00\n /* \"--CODEGEN--\":8:108 */\n tag_8:\n /* \"--CODEGEN--\":33:36 */\n dup4\n /* \"--CODEGEN--\":30:31 */\n dup2\n /* \"--CODEGEN--\":27:37 */\n lt\n /* \"--CODEGEN--\":8:108 */\n iszero\n tag_10\n jumpi\n /* \"--CODEGEN--\":90:101 */\n dup2\n dup2\n add\n /* \"--CODEGEN--\":84:102 */\n mload\n /* \"--CODEGEN--\":71:82 */\n dup4\n dup3\n add\n /* \"--CODEGEN--\":64:103 */\n mstore\n /* \"--CODEGEN--\":52:54 */\n 0x20\n /* \"--CODEGEN--\":45:55 */\n add\n /* \"--CODEGEN--\":8:108 */\n jump(tag_8)\n tag_10:\n /* \"--CODEGEN--\":12:26 */\n pop\n /* \"contract-2ae49825ba.sol\":501:1137 function f(uint x) public returns (bytes memory) {... */\n pop\n pop\n pop\n swap1\n pop\n swap1\n dup2\n add\n swap1\n 0x1f\n and\n dup1\n iszero\n tag_11\n jumpi\n dup1\n dup3\n sub\n dup1\n mload\n 0x01\n dup4\n 0x20\n sub\n 0x0100\n exp\n sub\n not\n and\n dup2\n mstore\n 0x20\n add\n swap2\n pop\n tag_11:\n pop\n swap3\n pop\n pop\n pop\n mload(0x40)\n dup1\n swap2\n sub\n swap1\n return\n /* \"contract-2ae49825ba.sol\":1234:2743 function g(uint[] memory /* arr */, bytes8 x, OtherContract otherContract, address unknownContract) public payable {... */\n tag_3:\n tag_12\n 0x04\n dup1\n calldatasize\n sub\n /* \"--CODEGEN--\":13:16 */\n 0x80\n /* \"--CODEGEN--\":8:11 */\n dup2\n /* \"--CODEGEN--\":5:17 */\n lt\n /* \"--CODEGEN--\":2:4 */\n iszero\n tag_13\n jumpi\n /* \"--CODEGEN--\":30:31 */\n 0x00\n /* \"--CODEGEN--\":27:28 */\n dup1\n /* \"--CODEGEN--\":20:32 */\n revert\n /* \"--CODEGEN--\":2:4 */\n tag_13:\n /* \"contract-2ae49825ba.sol\":1234:2743 function g(uint[] memory /* arr */, bytes8 x, OtherContract otherContract, address unknownContract) public payable {... */\n dup2\n add\n swap1\n 0x20\n dup2\n add\n dup2\n calldataload\n /* \"--CODEGEN--\":21:32 */\n 0x0100000000\n /* \"--CODEGEN--\":5:33 */\n dup2\n gt\n /* \"--CODEGEN--\":2:4 */\n iszero\n tag_14\n jumpi\n /* \"--CODEGEN--\":46:47 */\n 0x00\n /* \"--CODEGEN--\":43:44 */\n dup1\n /* \"--CODEGEN--\":36:48 */\n revert\n /* \"--CODEGEN--\":2:4 */\n tag_14:\n /* \"contract-2ae49825ba.sol\":1234:2743 function g(uint[] memory /* arr */, bytes8 x, OtherContract otherContract, address unknownContract) public payable {... */\n dup3\n add\n /* \"--CODEGEN--\":35:44 */\n dup4\n /* \"--CODEGEN--\":28:32 */\n 0x20\n /* \"--CODEGEN--\":12:26 */\n dup3\n /* \"--CODEGEN--\":8:33 */\n add\n /* \"--CODEGEN--\":5:45 */\n gt\n /* \"--CODEGEN--\":2:4 */\n iszero\n tag_15\n jumpi\n /* \"--CODEGEN--\":58:59 */\n 0x00\n /* \"--CODEGEN--\":55:56 */\n dup1\n /* \"--CODEGEN--\":48:60 */\n revert\n /* \"--CODEGEN--\":2:4 */\n tag_15:\n /* \"contract-2ae49825ba.sol\":1234:2743 function g(uint[] memory /* arr */, bytes8 x, OtherContract otherContract, address unknownContract) public payable {... */\n dup1\n calldataload\n swap1\n 0x20\n add\n swap2\n /* \"--CODEGEN--\":101:110 */\n dup5\n /* \"--CODEGEN--\":95:97 */\n 0x20\n /* \"--CODEGEN--\":81:93 */\n dup4\n /* \"--CODEGEN--\":77:98 */\n mul\n /* \"--CODEGEN--\":67:75 */\n dup5\n /* \"--CODEGEN--\":63:99 */\n add\n /* \"--CODEGEN--\":60:111 */\n gt\n /* \"--CODEGEN--\":39:50 */\n 0x0100000000\n /* \"--CODEGEN--\":25:37 */\n dup4\n /* \"--CODEGEN--\":22:51 */\n gt\n /* \"--CODEGEN--\":11:119 */\n or\n /* \"--CODEGEN--\":8:10 */\n iszero\n tag_16\n jumpi\n /* \"--CODEGEN--\":132:133 */\n 0x00\n /* \"--CODEGEN--\":129:130 */\n dup1\n /* \"--CODEGEN--\":122:134 */\n revert\n /* \"--CODEGEN--\":8:10 */\n tag_16:\n /* \"contract-2ae49825ba.sol\":1234:2743 function g(uint[] memory /* arr */, bytes8 x, OtherContract otherContract, address unknownContract) public payable {... */\n swap2\n swap1\n dup1\n dup1\n 0x20\n mul\n 0x20\n add\n mload(0x40)\n swap1\n dup2\n add\n 0x40\n mstore\n dup1\n swap4\n swap3\n swap2\n swap1\n dup2\n dup2\n mstore\n 0x20\n add\n dup4\n dup4\n 0x20\n mul\n /* \"--CODEGEN--\":30:33 */\n dup1\n /* \"--CODEGEN--\":22:28 */\n dup3\n /* \"--CODEGEN--\":14:20 */\n dup5\n /* \"--CODEGEN--\":1:34 */\n calldatacopy\n /* \"--CODEGEN--\":99:100 */\n 0x00\n /* \"--CODEGEN--\":81:97 */\n swap3\n add\n /* \"--CODEGEN--\":74:101 */\n swap2\n swap1\n swap2\n mstore\n pop\n /* \"contract-2ae49825ba.sol\":1234:2743 function g(uint[] memory /* arr */, bytes8 x, OtherContract otherContract, address unknownContract) public payable {... */\n swap3\n swap6\n pop\n pop\n not(sub(shl(0xc0, 0x01), 0x01))\n dup4\n calldataload\n and\n swap4\n pop\n pop\n sub(shl(0xa0, 0x01), 0x01)\n 0x20\n dup4\n add\n calldataload\n dup2\n and\n swap3\n 0x40\n add\n calldataload\n and\n swap1\n pop\n tag_17\n jump\t// in\n tag_12:\n stop\n /* \"contract-2ae49825ba.sol\":501:1137 function f(uint x) public returns (bytes memory) {... */\n tag_7:\n /* \"contract-2ae49825ba.sol\":536:548 bytes memory */\n 0x60\n /* \"contract-2ae49825ba.sol\":610:616 uint z */\n 0x00\n /* \"contract-2ae49825ba.sol\":619:632 someInteger() */\n tag_19\n /* \"contract-2ae49825ba.sol\":619:630 someInteger */\n tag_20\n /* \"contract-2ae49825ba.sol\":619:632 someInteger() */\n jump\t// in\n tag_19:\n /* \"contract-2ae49825ba.sol\":642:648 x += z */\n swap3\n dup4\n add\n swap3\n /* \"contract-2ae49825ba.sol\":610:632 uint z = someInteger() */\n swap1\n pop\n /* \"contract-2ae49825ba.sol\":707:710 100 */\n 0x64\n /* \"contract-2ae49825ba.sol\":702:710 x <= 100 */\n dup4\n gt\n iszero\n /* \"contract-2ae49825ba.sol\":694:711 require(x <= 100) */\n tag_21\n jumpi\n 0x00\n dup1\n revert\n tag_21:\n not(0x01)\n /* \"contract-2ae49825ba.sol\":746:762 require(y == -2) */\n tag_22:\n /* \"contract-2ae49825ba.sol\":794:795 1 */\n 0x01\n /* \"contract-2ae49825ba.sol\":789:795 x += 1 */\n dup5\n add\n swap4\n pop\n /* \"contract-2ae49825ba.sol\":908:910 11 */\n 0x0b\n /* \"contract-2ae49825ba.sol\":904:905 x */\n dup5\n /* \"contract-2ae49825ba.sol\":904:910 x < 11 */\n lt\n /* \"contract-2ae49825ba.sol\":772:912 do {... */\n tag_22\n jumpi\n /* \"contract-2ae49825ba.sol\":1006:1018 bool success */\n 0x00\n /* \"contract-2ae49825ba.sol\":1049:1054 other */\n dup1\n sload\n /* \"contract-2ae49825ba.sol\":1041:1065 address(other).call(\"f\") */\n 0x40\n dup1\n mload\n shl(0xf9, 0x33)\n dup2\n mstore\n swap1\n mload\n /* \"contract-2ae49825ba.sol\":1020:1037 bytes memory data */\n 0x60\n swap3\n sub(shl(0xa0, 0x01), 0x01)\n /* \"contract-2ae49825ba.sol\":1049:1054 other */\n and\n swap2\n 0x01\n /* \"contract-2ae49825ba.sol\":1041:1065 address(other).call(\"f\") */\n dup2\n dup2\n add\n swap3\n /* \"contract-2ae49825ba.sol\":1006:1018 bool success */\n dup7\n swap3\n /* \"contract-2ae49825ba.sol\":1041:1065 address(other).call(\"f\") */\n swap1\n swap2\n swap1\n dup3\n swap1\n sub\n add\n dup2\n /* \"contract-2ae49825ba.sol\":1006:1018 bool success */\n dup4\n /* \"contract-2ae49825ba.sol\":1049:1054 other */\n dup7\n /* \"contract-2ae49825ba.sol\":1041:1065 address(other).call(\"f\") */\n gas\n call\n swap2\n pop\n pop\n returndatasize\n /* \"--CODEGEN--\":14:15 */\n dup1\n /* \"--CODEGEN--\":21:22 */\n 0x00\n /* \"--CODEGEN--\":16:47 */\n dup2\n eq\n tag_28\n jumpi\n /* \"--CODEGEN--\":75:79 */\n 0x40\n /* \"--CODEGEN--\":69:80 */\n mload\n /* \"--CODEGEN--\":64:80 */\n swap2\n pop\n /* \"--CODEGEN--\":144:148 */\n 0x1f\n /* \"--CODEGEN--\":140:149 */\n not\n /* \"--CODEGEN--\":133:137 */\n 0x3f\n /* \"--CODEGEN--\":115:131 */\n returndatasize\n /* \"--CODEGEN--\":111:138 */\n add\n /* \"--CODEGEN--\":107:150 */\n and\n /* \"--CODEGEN--\":104:105 */\n dup3\n /* \"--CODEGEN--\":100:151 */\n add\n /* \"--CODEGEN--\":94:98 */\n 0x40\n /* \"--CODEGEN--\":87:152 */\n mstore\n /* \"--CODEGEN--\":169:185 */\n returndatasize\n /* \"--CODEGEN--\":166:167 */\n dup3\n /* \"--CODEGEN--\":159:186 */\n mstore\n /* \"--CODEGEN--\":225:241 */\n returndatasize\n /* \"--CODEGEN--\":222:223 */\n 0x00\n /* \"--CODEGEN--\":215:219 */\n 0x20\n /* \"--CODEGEN--\":212:213 */\n dup5\n /* \"--CODEGEN--\":208:220 */\n add\n /* \"--CODEGEN--\":193:242 */\n returndatacopy\n /* \"--CODEGEN--\":7:249 */\n jump(tag_27)\n /* \"--CODEGEN--\":16:47 */\n tag_28:\n /* \"--CODEGEN--\":36:40 */\n 0x60\n /* \"--CODEGEN--\":31:40 */\n swap2\n pop\n /* \"--CODEGEN--\":7:249 */\n tag_27:\n pop\n /* \"contract-2ae49825ba.sol\":1005:1065 (bool success, bytes memory data) = address(other).call(\"f\") */\n swap2\n pop\n swap2\n pop\n /* \"contract-2ae49825ba.sol\":1080:1087 success */\n dup2\n /* \"contract-2ae49825ba.sol\":1075:1109 if (!success)... */\n tag_29\n jumpi\n /* \"contract-2ae49825ba.sol\":1101:1109 revert() */\n 0x00\n dup1\n revert\n /* \"contract-2ae49825ba.sol\":1075:1109 if (!success)... */\n tag_29:\n /* \"contract-2ae49825ba.sol\":1126:1130 data */\n swap6\n /* \"contract-2ae49825ba.sol\":501:1137 function f(uint x) public returns (bytes memory) {... */\n swap5\n pop\n pop\n pop\n pop\n pop\n jump\t// out\n /* \"contract-2ae49825ba.sol\":1234:2743 function g(uint[] memory /* arr */, bytes8 x, OtherContract otherContract, address unknownContract) public payable {... */\n tag_17:\n /* \"contract-2ae49825ba.sol\":1559:1599 address(otherContract).transfer(1 ether) */\n mload(0x40)\n sub(shl(0xa0, 0x01), 0x01)\n /* \"contract-2ae49825ba.sol\":1559:1590 address(otherContract).transfer */\n dup4\n and\n swap1\n /* \"contract-2ae49825ba.sol\":1559:1599 address(otherContract).transfer(1 ether) */\n 0x00\n swap1\n /* \"contract-2ae49825ba.sol\":1591:1598 1 ether */\n 0x0de0b6b3a7640000\n swap1\n /* \"contract-2ae49825ba.sol\":1559:1599 address(otherContract).transfer(1 ether) */\n dup3\n dup2\n dup2\n dup2\n /* \"contract-2ae49825ba.sol\":1591:1598 1 ether */\n dup6\n /* \"contract-2ae49825ba.sol\":1559:1590 address(otherContract).transfer */\n dup9\n /* \"contract-2ae49825ba.sol\":1559:1599 address(otherContract).transfer(1 ether) */\n dup4\n call\n swap4\n pop\n pop\n pop\n pop\n iszero\n /* \"--CODEGEN--\":8:17 */\n dup1\n /* \"--CODEGEN--\":5:7 */\n iszero\n tag_31\n jumpi\n /* \"--CODEGEN--\":45:61 */\n returndatasize\n /* \"--CODEGEN--\":42:43 */\n 0x00\n /* \"--CODEGEN--\":39:40 */\n dup1\n /* \"--CODEGEN--\":24:62 */\n returndatacopy\n /* \"--CODEGEN--\":77:93 */\n returndatasize\n /* \"--CODEGEN--\":74:75 */\n 0x00\n /* \"--CODEGEN--\":67:94 */\n revert\n /* \"--CODEGEN--\":5:7 */\n tag_31:\n /* \"contract-2ae49825ba.sol\":1559:1599 address(otherContract).transfer(1 ether) */\n pop\n /* \"contract-2ae49825ba.sol\":2210:2230 address payable addr */\n 0x00\n /* \"contract-2ae49825ba.sol\":2233:2262 unknownContract.makePayable() */\n tag_32\n /* \"contract-2ae49825ba.sol\":2233:2248 unknownContract */\n dup3\n sub(shl(0xa0, 0x01), 0x01)\n /* \"contract-2ae49825ba.sol\":2233:2260 unknownContract.makePayable */\n and\n tag_33\n /* \"contract-2ae49825ba.sol\":2233:2262 unknownContract.makePayable() */\n jump\t// in\n tag_32:\n /* \"contract-2ae49825ba.sol\":2280:2298 addr.send(1 ether) */\n mload(0x40)\n /* \"contract-2ae49825ba.sol\":2210:2262 address payable addr = unknownContract.makePayable() */\n swap1\n swap2\n pop\n sub(shl(0xa0, 0x01), 0x01)\n /* \"contract-2ae49825ba.sol\":2280:2289 addr.send */\n dup3\n and\n swap1\n /* \"contract-2ae49825ba.sol\":2280:2298 addr.send(1 ether) */\n 0x00\n swap1\n /* \"contract-2ae49825ba.sol\":2290:2297 1 ether */\n 0x0de0b6b3a7640000\n swap1\n /* \"contract-2ae49825ba.sol\":2280:2298 addr.send(1 ether) */\n dup3\n dup2\n dup2\n dup2\n /* \"contract-2ae49825ba.sol\":2290:2297 1 ether */\n dup6\n /* \"contract-2ae49825ba.sol\":2280:2289 addr.send */\n dup9\n /* \"contract-2ae49825ba.sol\":2280:2298 addr.send(1 ether) */\n dup4\n call\n swap4\n pop\n pop\n pop\n pop\n /* \"contract-2ae49825ba.sol\":2272:2299 require(addr.send(1 ether)) */\n tag_34\n jumpi\n 0x00\n dup1\n revert\n tag_34:\n pop\n pop\n /* \"contract-2ae49825ba.sol\":2711:2719 myNumber */\n 0x01\n /* \"contract-2ae49825ba.sol\":2711:2736 myNumber += y + msg.value */\n dup1\n sload\n /* \"contract-2ae49825ba.sol\":2548:2558 uint32(x4) */\n 0xe0\n swap4\n swap1\n swap4\n shr\n /* \"contract-2ae49825ba.sol\":2727:2736 msg.value */\n callvalue\n /* \"contract-2ae49825ba.sol\":2723:2736 y + msg.value */\n add\n /* \"contract-2ae49825ba.sol\":2711:2736 myNumber += y + msg.value */\n swap1\n swap3\n add\n swap1\n swap2\n sstore\n pop\n pop\n /* \"contract-2ae49825ba.sol\":1234:2743 function g(uint[] memory /* arr */, bytes8 x, OtherContract otherContract, address unknownContract) public payable {... */\n jump\t// out\n /* \"contract-2ae49825ba.sol\":338:403 function someInteger() internal pure returns (uint) { return 2; } */\n tag_20:\n /* \"contract-2ae49825ba.sol\":399:400 2 */\n 0x02\n /* \"contract-2ae49825ba.sol\":338:403 function someInteger() internal pure returns (uint) { return 2; } */\n swap1\n jump\t// out\n /* \"contract-2ae49825ba.sol\":2888:3003 function makePayable(address x) internal pure returns (address payable) {... */\n tag_33:\n /* \"contract-2ae49825ba.sol\":2993:2994 x */\n swap1\n /* \"contract-2ae49825ba.sol\":2888:3003 function makePayable(address x) internal pure returns (address payable) {... */\n jump\t// out\n\n auxdata: 0xa265627a7a7231582014dcfbbad2b41d6530f2e238ff3c9273eb3ec3806df93ea3d910d5bdf006c85664736f6c63430005110032\n}\n",
"bytecode": {
"linkReferences": {},
"object": "608060405234801561001057600080fd5b5061031a806100206000396000f3fe6080604052600436106100295760003560e01c8063b3de648b1461002e578063b4f2b3d9146100cd575b600080fd5b34801561003a57600080fd5b506100586004803603602081101561005157600080fd5b5035610193565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561009257818101518382015260200161007a565b50505050905090810190601f1680156100bf5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610191600480360360808110156100e357600080fd5b8101906020810181356401000000008111156100fe57600080fd5b82018360208201111561011057600080fd5b8035906020019184602083028401116401000000008311171561013257600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550506001600160c01b03198335169350506001600160a01b03602083013581169260400135169050610243565b005b6060600061019f6102dd565b92830192905060648311156101b357600080fd5b6001195b600184019350600b84106101b7576000805460408051603360f91b815290516060926001600160a01b0316916001818101928692909190829003018183865af19150503d8060008114610226576040519150601f19603f3d011682016040523d82523d6000602084013e61022b565b606091505b50915091508161023a57600080fd5b95945050505050565b6040516001600160a01b03831690600090670de0b6b3a76400009082818181858883f1935050505015801561027c573d6000803e3d6000fd5b506000610291826001600160a01b03166102e2565b6040519091506001600160a01b03821690600090670de0b6b3a76400009082818181858883f193505050506102c557600080fd5b50506001805460e09390931c34019092019091555050565b600290565b9056fea265627a7a7231582014dcfbbad2b41d6530f2e238ff3c9273eb3ec3806df93ea3d910d5bdf006c85664736f6c63430005110032",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31A DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x29 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xB3DE648B EQ PUSH2 0x2E JUMPI DUP1 PUSH4 0xB4F2B3D9 EQ PUSH2 0xCD JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x58 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x51 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH2 0x193 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x92 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x7A JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0xBF JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x191 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x80 DUP2 LT ISZERO PUSH2 0xE3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 PUSH1 0x20 DUP2 ADD DUP2 CALLDATALOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0xFE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x110 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x132 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP SWAP3 SWAP6 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xC0 SHL SUB NOT DUP4 CALLDATALOAD AND SWAP4 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH1 0x20 DUP4 ADD CALLDATALOAD DUP2 AND SWAP3 PUSH1 0x40 ADD CALLDATALOAD AND SWAP1 POP PUSH2 0x243 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x19F PUSH2 0x2DD JUMP JUMPDEST SWAP3 DUP4 ADD SWAP3 SWAP1 POP PUSH1 0x64 DUP4 GT ISZERO PUSH2 0x1B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 NOT JUMPDEST PUSH1 0x1 DUP5 ADD SWAP4 POP PUSH1 0xB DUP5 LT PUSH2 0x1B7 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x33 PUSH1 0xF9 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x60 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH1 0x1 DUP2 DUP2 ADD SWAP3 DUP7 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x226 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x22B JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x23A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH1 0x0 SWAP1 PUSH8 0xDE0B6B3A7640000 SWAP1 DUP3 DUP2 DUP2 DUP2 DUP6 DUP9 DUP4 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x27C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x0 PUSH2 0x291 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x2E2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH1 0x0 SWAP1 PUSH8 0xDE0B6B3A7640000 SWAP1 DUP3 DUP2 DUP2 DUP2 DUP6 DUP9 DUP4 CALL SWAP4 POP POP POP POP PUSH2 0x2C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP PUSH1 0x1 DUP1 SLOAD PUSH1 0xE0 SWAP4 SWAP1 SWAP4 SHR CALLVALUE ADD SWAP1 SWAP3 ADD SWAP1 SWAP2 SSTORE POP POP JUMP JUMPDEST PUSH1 0x2 SWAP1 JUMP JUMPDEST SWAP1 JUMP INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 EQ 0xDC 0xFB 0xBA 0xD2 0xB4 SAR PUSH6 0x30F2E238FF3C SWAP3 PUSH20 0xEB3EC3806DF93EA3D910D5BDF006C85664736F6C PUSH4 0x43000511 STOP ORIGIN ",
"sourceMap": "228:2517:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;228:2517:0;;;;;;;"
},
"deployedBytecode": {
"linkReferences": {},
"object": "6080604052600436106100295760003560e01c8063b3de648b1461002e578063b4f2b3d9146100cd575b600080fd5b34801561003a57600080fd5b506100586004803603602081101561005157600080fd5b5035610193565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561009257818101518382015260200161007a565b50505050905090810190601f1680156100bf5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610191600480360360808110156100e357600080fd5b8101906020810181356401000000008111156100fe57600080fd5b82018360208201111561011057600080fd5b8035906020019184602083028401116401000000008311171561013257600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550506001600160c01b03198335169350506001600160a01b03602083013581169260400135169050610243565b005b6060600061019f6102dd565b92830192905060648311156101b357600080fd5b6001195b600184019350600b84106101b7576000805460408051603360f91b815290516060926001600160a01b0316916001818101928692909190829003018183865af19150503d8060008114610226576040519150601f19603f3d011682016040523d82523d6000602084013e61022b565b606091505b50915091508161023a57600080fd5b95945050505050565b6040516001600160a01b03831690600090670de0b6b3a76400009082818181858883f1935050505015801561027c573d6000803e3d6000fd5b506000610291826001600160a01b03166102e2565b6040519091506001600160a01b03821690600090670de0b6b3a76400009082818181858883f193505050506102c557600080fd5b50506001805460e09390931c34019092019091555050565b600290565b9056fea265627a7a7231582014dcfbbad2b41d6530f2e238ff3c9273eb3ec3806df93ea3d910d5bdf006c85664736f6c63430005110032",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x29 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xB3DE648B EQ PUSH2 0x2E JUMPI DUP1 PUSH4 0xB4F2B3D9 EQ PUSH2 0xCD JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x58 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x51 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH2 0x193 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x92 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x7A JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0xBF JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x191 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x80 DUP2 LT ISZERO PUSH2 0xE3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 PUSH1 0x20 DUP2 ADD DUP2 CALLDATALOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0xFE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x110 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x132 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP SWAP3 SWAP6 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xC0 SHL SUB NOT DUP4 CALLDATALOAD AND SWAP4 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH1 0x20 DUP4 ADD CALLDATALOAD DUP2 AND SWAP3 PUSH1 0x40 ADD CALLDATALOAD AND SWAP1 POP PUSH2 0x243 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x19F PUSH2 0x2DD JUMP JUMPDEST SWAP3 DUP4 ADD SWAP3 SWAP1 POP PUSH1 0x64 DUP4 GT ISZERO PUSH2 0x1B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 NOT JUMPDEST PUSH1 0x1 DUP5 ADD SWAP4 POP PUSH1 0xB DUP5 LT PUSH2 0x1B7 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x33 PUSH1 0xF9 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x60 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH1 0x1 DUP2 DUP2 ADD SWAP3 DUP7 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x226 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x22B JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x23A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH1 0x0 SWAP1 PUSH8 0xDE0B6B3A7640000 SWAP1 DUP3 DUP2 DUP2 DUP2 DUP6 DUP9 DUP4 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x27C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x0 PUSH2 0x291 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x2E2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH1 0x0 SWAP1 PUSH8 0xDE0B6B3A7640000 SWAP1 DUP3 DUP2 DUP2 DUP2 DUP6 DUP9 DUP4 CALL SWAP4 POP POP POP POP PUSH2 0x2C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP PUSH1 0x1 DUP1 SLOAD PUSH1 0xE0 SWAP4 SWAP1 SWAP4 SHR CALLVALUE ADD SWAP1 SWAP3 ADD SWAP1 SWAP2 SSTORE POP POP JUMP JUMPDEST PUSH1 0x2 SWAP1 JUMP JUMPDEST SWAP1 JUMP INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 EQ 0xDC 0xFB 0xBA 0xD2 0xB4 SAR PUSH6 0x30F2E238FF3C SWAP3 PUSH20 0xEB3EC3806DF93EA3D910D5BDF006C85664736F6C PUSH4 0x43000511 STOP ORIGIN ",
"sourceMap": "228:2517:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;501:636;;8:9:-1;5:2;;;30:1;27;20:12;5:2;501:636:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;501:636:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;501:636:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1234:1509;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;1234:1509:0;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;1234:1509:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1234:1509:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;1234:1509:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;1234:1509:0;;-1:-1:-1;;;;;;;;1234:1509:0;;;;-1:-1:-1;;;;;;;1234:1509:0;;;;;;;;;;;;-1:-1:-1;1234:1509:0;:::i;:::-;;501:636;536:12;610:6;619:13;:11;:13::i;:::-;642:6;;;;610:22;-1:-1:-1;707:3:0;702:8;;;694:17;;;;;;-1:-1:-1;;746:16:0;794:1;789:6;;;;908:2;904:1;:6;772:140;;1006:12;1049:5;;1041:24;;;-1:-1:-1;;;1041:24:0;;;;1020:17;;-1:-1:-1;;;;;1049:5:0;;;1041:24;;;;1006:12;;1041:24;;;;;;;;1006:12;1049:5;1041:24;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;1005:60:0;;;;1080:7;1075:34;;1101:8;;;1075:34;1126:4;501:636;-1:-1:-1;;;;;501:636:0:o;1234:1509::-;1559:40;;-1:-1:-1;;;;;1559:31:0;;;:40;;1591:7;;1559:40;;;;1591:7;1559:31;:40;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1559:40:0;2210:20;2233:29;:15;-1:-1:-1;;;;;2233:27:0;;:29::i;:::-;2280:18;;2210:52;;-1:-1:-1;;;;;;2280:9:0;;;:18;;2290:7;;2280:18;;;;2290:7;2280:9;:18;;;;;;;2272:27;;;;;;-1:-1:-1;;2711:8:0;:25;;2548:10;;;;;2727:9;2723:13;2711:25;;;;;;-1:-1:-1;;1234:1509:0:o;338:65::-;399:1;338:65;:::o;2888:115::-;2993:1;2888:115::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "158800",
"executionCost": "202",
"totalCost": "159002"
},
"external": {
"f(uint256)": "infinite",
"g(uint256[],bytes8,address,address)": "infinite"
},
"internal": {
"someInteger()": "15"
}
},
"legacyAssembly": {
".code": [
{
"begin": 228,
"end": 2745,
"name": "PUSH",
"value": "80"
},
{
"begin": 228,
"end": 2745,
"name": "PUSH",
"value": "40"
},
{
"begin": 228,
"end": 2745,
"name": "MSTORE"
},
{
"begin": 228,
"end": 2745,
"name": "CALLVALUE"
},
{
"begin": 8,
"end": 17,
"name": "DUP1"
},
{
"begin": 5,
"end": 7,
"name": "ISZERO"
},
{
"begin": 5,
"end": 7,
"name": "PUSH [tag]",
"value": "1"
},
{
"begin": 5,
"end": 7,
"name": "JUMPI"
},
{
"begin": 30,
"end": 31,
"name": "PUSH",
"value": "0"
},
{
"begin": 27,
"end": 28,
"name": "DUP1"
},
{
"begin": 20,
"end": 32,
"name": "REVERT"
},
{
"begin": 5,
"end": 7,
"name": "tag",
"value": "1"
},
{
"begin": 5,
"end": 7,
"name": "JUMPDEST"
},
{
"begin": 228,
"end": 2745,
"name": "POP"
},
{
"begin": 228,
"end": 2745,
"name": "PUSH #[$]",
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 228,
"end": 2745,
"name": "DUP1"
},
{
"begin": 228,
"end": 2745,
"name": "PUSH [$]",
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 228,
"end": 2745,
"name": "PUSH",
"value": "0"
},
{
"begin": 228,
"end": 2745,
"name": "CODECOPY"
},
{
"begin": 228,
"end": 2745,
"name": "PUSH",
"value": "0"
},
{
"begin": 228,
"end": 2745,
"name": "RETURN"
}
],
".data": {
"0": {
".auxdata": "a265627a7a7231582014dcfbbad2b41d6530f2e238ff3c9273eb3ec3806df93ea3d910d5bdf006c85664736f6c63430005110032",
".code": [
{
"begin": 228,
"end": 2745,
"name": "PUSH",
"value": "80"
},
{
"begin": 228,
"end": 2745,
"name": "PUSH",
"value": "40"
},
{
"begin": 228,
"end": 2745,
"name": "MSTORE"
},
{
"begin": 228,
"end": 2745,
"name": "PUSH",
"value": "4"
},
{
"begin": 228,
"end": 2745,
"name": "CALLDATASIZE"
},
{
"begin": 228,
"end": 2745,
"name": "LT"
},
{
"begin": 228,
"end": 2745,
"name": "PUSH [tag]",
"value": "1"
},
{
"begin": 228,
"end": 2745,
"name": "JUMPI"
},
{
"begin": 228,
"end": 2745,
"name": "PUSH",
"value": "0"
},
{
"begin": 228,
"end": 2745,
"name": "CALLDATALOAD"
},
{
"begin": 228,
"end": 2745,
"name": "PUSH",
"value": "E0"
},
{
"begin": 228,
"end": 2745,
"name": "SHR"
},
{
"begin": 228,
"end": 2745,
"name": "DUP1"
},
{
"begin": 228,
"end": 2745,
"name": "PUSH",
"value": "B3DE648B"
},
{
"begin": 228,
"end": 2745,
"name": "EQ"
},
{
"begin": 228,
"end": 2745,
"name": "PUSH [tag]",
"value": "2"
},
{
"begin": 228,
"end": 2745,
"name": "JUMPI"
},
{
"begin": 228,
"end": 2745,
"name": "DUP1"
},
{
"begin": 228,
"end": 2745,
"name": "PUSH",
"value": "B4F2B3D9"
},
{
"begin": 228,
"end": 2745,
"name": "EQ"
},
{
"begin": 228,
"end": 2745,
"name": "PUSH [tag]",
"value": "3"
},
{
"begin": 228,
"end": 2745,
"name": "JUMPI"
},
{
"begin": 228,
"end": 2745,
"name": "tag",
"value": "1"
},
{
"begin": 228,
"end": 2745,
"name": "JUMPDEST"
},
{
"begin": 228,
"end": 2745,
"name": "PUSH",
"value": "0"
},
{
"begin": 228,
"end": 2745,
"name": "DUP1"
},
{
"begin": 228,
"end": 2745,
"name": "REVERT"
},
{
"begin": 501,
"end": 1137,
"name": "tag",
"value": "2"
},
{
"begin": 501,
"end": 1137,
"name": "JUMPDEST"
},
{
"begin": 501,
"end": 1137,
"name": "CALLVALUE"
},
{
"begin": 8,
"end": 17,
"name": "DUP1"
},
{
"begin": 5,
"end": 7,
"name": "ISZERO"
},
{
"begin": 5,
"end": 7,
"name": "PUSH [tag]",
"value": "4"
},
{
"begin": 5,
"end": 7,
"name": "JUMPI"
},
{
"begin": 30,
"end": 31,
"name": "PUSH",
"value": "0"
},
{
"begin": 27,
"end": 28,
"name": "DUP1"
},
{
"begin": 20,
"end": 32,
"name": "REVERT"
},
{
"begin": 5,
"end": 7,
"name": "tag",
"value": "4"
},
{
"begin": 5,
"end": 7,
"name": "JUMPDEST"
},
{
"begin": 501,
"end": 1137,
"name": "POP"
},
{
"begin": 501,
"end": 1137,
"name": "PUSH [tag]",
"value": "5"
},
{
"begin": 501,
"end": 1137,
"name": "PUSH",
"value": "4"
},
{
"begin": 501,
"end": 1137,
"name": "DUP1"
},
{
"begin": 501,
"end": 1137,
"name": "CALLDATASIZE"
},
{
"begin": 501,
"end": 1137,
"name": "SUB"
},
{
"begin": 13,
"end": 15,
"name": "PUSH",
"value": "20"
},
{
"begin": 8,
"end": 11,
"name": "DUP2"
},
{
"begin": 5,
"end": 16,
"name": "LT"
},
{
"begin": 2,
"end": 4,
"name": "ISZERO"
},
{
"begin": 2,
"end": 4,
"name": "PUSH [tag]",
"value": "6"
},
{
"begin": 2,
"end": 4,
"name": "JUMPI"
},
{
"begin": 29,
"end": 30,
"name": "PUSH",
"value": "0"
},
{
"begin": 26,
"end": 27,
"name": "DUP1"
},
{
"begin": 19,
"end": 31,
"name": "REVERT"
},
{
"begin": 2,
"end": 4,
"name": "tag",
"value": "6"
},
{
"begin": 2,
"end": 4,
"name": "JUMPDEST"
},
{
"begin": -1,
"end": -1,
"name": "POP"
},
{
"begin": 501,
"end": 1137,
"name": "CALLDATALOAD"
},
{
"begin": 501,
"end": 1137,
"name": "PUSH [tag]",
"value": "7"
},
{
"begin": 501,
"end": 1137,
"name": "JUMP",
"value": "[in]"
},
{
"begin": 501,
"end": 1137,
"name": "tag",
"value": "5"
},
{
"begin": 501,
"end": 1137,
"name": "JUMPDEST"
},
{
"begin": 501,
"end": 1137,
"name": "PUSH",
"value": "40"
},
{
"begin": 501,
"end": 1137,
"name": "DUP1"
},
{
"begin": 501,
"end": 1137,
"name": "MLOAD"
},
{
"begin": 501,
"end": 1137,
"name": "PUSH",
"value": "20"
},
{
"begin": 501,
"end": 1137,
"name": "DUP1"
},
{
"begin": 501,
"end": 1137,
"name": "DUP3"
},
{
"begin": 501,
"end": 1137,
"name": "MSTORE"
},
{
"begin": 501,
"end": 1137,
"name": "DUP4"
},
{
"begin": 501,
"end": 1137,
"name": "MLOAD"
},
{
"begin": 501,
"end": 1137,
"name": "DUP2"
},
{
"begin": 501,
"end": 1137,
"name": "DUP4"
},
{
"begin": 501,
"end": 1137,
"name": "ADD"
},
{
"begin": 501,
"end": 1137,
"name": "MSTORE"
},
{
"begin": 501,
"end": 1137,
"name": "DUP4"
},
{
"begin": 501,
"end": 1137,
"name": "MLOAD"
},
{
"begin": 501,
"end": 1137,
"name": "SWAP2"
},
{
"begin": 501,
"end": 1137,
"name": "SWAP3"
},
{
"begin": 501,
"end": 1137,
"name": "DUP4"
},
{
"begin": 501,
"end": 1137,
"name": "SWAP3"
},
{
"begin": 501,
"end": 1137,
"name": "SWAP1"
},
{
"begin": 501,
"end": 1137,
"name": "DUP4"
},
{
"begin": 501,
"end": 1137,
"name": "ADD"
},
{
"begin": 501,
"end": 1137,
"name": "SWAP2"
},
{
"begin": 501,
"end": 1137,
"name": "DUP6"
},
{
"begin": 501,
"end": 1137,
"name": "ADD"
},
{
"begin": 501,
"end": 1137,
"name": "SWAP1"
},
{
"begin": 501,
"end": 1137,
"name": "DUP1"
},
{
"begin": 501,
"end": 1137,
"name": "DUP4"
},
{
"begin": 501,
"end": 1137,
"name": "DUP4"
},
{
"begin": 501,
"end": 1137,
"name": "PUSH",
"value": "0"
},
{
"begin": 8,
"end": 108,
"name": "tag",
"value": "8"
},
{
"begin": 8,
"end": 108,
"name": "JUMPDEST"
},
{
"begin": 33,
"end": 36,
"name": "DUP4"
},
{
"begin": 30,
"end": 31,
"name": "DUP2"
},
{
"begin": 27,
"end": 37,
"name": "LT"
},
{
"begin": 8,
"end": 108,
"name": "ISZERO"
},
{
"begin": 8,
"end": 108,
"name": "PUSH [tag]",
"value": "10"
},
{
"begin": 8,
"end": 108,
"name": "JUMPI"
},
{
"begin": 90,
"end": 101,
"name": "DUP2"
},
{
"begin": 90,
"end": 101,
"name": "DUP2"
},
{
"begin": 90,
"end": 101,
"name": "ADD"
},
{
"begin": 84,
"end": 102,
"name": "MLOAD"
},
{
"begin": 71,
"end": 82,
"name": "DUP4"
},
{
"begin": 71,
"end": 82,
"name": "DUP3"
},
{
"begin": 71,
"end": 82,
"name": "ADD"
},
{
"begin": 64,
"end": 103,
"name": "MSTORE"
},
{
"begin": 52,
"end": 54,
"name": "PUSH",
"value": "20"
},
{
"begin": 45,
"end": 55,
"name": "ADD"
},
{
"begin": 8,
"end": 108,
"name": "PUSH [tag]",
"value": "8"
},
{
"begin": 8,
"end": 108,
"name": "JUMP"
},
{
"begin": 8,
"end": 108,
"name": "tag",
"value": "10"
},
{
"begin": 8,
"end": 108,
"name": "JUMPDEST"
},
{
"begin": 12,
"end": 26,
"name": "POP"
},
{
"begin": 501,
"end": 1137,
"name": "POP"
},
{
"begin": 501,
"end": 1137,
"name": "POP"
},
{
"begin": 501,
"end": 1137,
"name": "POP"
},
{
"begin": 501,
"end": 1137,
"name": "SWAP1"
},
{
"begin": 501,
"end": 1137,
"name": "POP"
},
{
"begin": 501,
"end": 1137,
"name": "SWAP1"
},
{
"begin": 501,
"end": 1137,
"name": "DUP2"
},
{
"begin": 501,
"end": 1137,
"name": "ADD"
},
{
"begin": 501,
"end": 1137,
"name": "SWAP1"
},
{
"begin": 501,
"end": 1137,
"name": "PUSH",
"value": "1F"
},
{
"begin": 501,
"end": 1137,
"name": "AND"
},
{
"begin": 501,
"end": 1137,
"name": "DUP1"
},
{
"begin": 501,
"end": 1137,
"name": "ISZERO"
},
{
"begin": 501,
"end": 1137,
"name": "PUSH [tag]",
"value": "11"
},
{
"begin": 501,
"end": 1137,
"name": "JUMPI"
},
{
"begin": 501,
"end": 1137,
"name": "DUP1"
},
{
"begin": 501,
"end": 1137,
"name": "DUP3"
},
{
"begin": 501,
"end": 1137,
"name": "SUB"
},
{
"begin": 501,
"end": 1137,
"name": "DUP1"
},
{
"begin": 501,
"end": 1137,
"name": "MLOAD"
},
{
"begin": 501,
"end": 1137,
"name": "PUSH",
"value": "1"
},
{
"begin": 501,
"end": 1137,
"name": "DUP4"
},
{
"begin": 501,
"end": 1137,
"name": "PUSH",
"value": "20"
},
{
"begin": 501,
"end": 1137,
"name": "SUB"
},
{
"begin": 501,
"end": 1137,
"name": "PUSH",
"value": "100"
},
{
"begin": 501,
"end": 1137,
"name": "EXP"
},
{
"begin": 501,
"end": 1137,
"name": "SUB"
},
{
"begin": 501,
"end": 1137,
"name": "NOT"
},
{
"begin": 501,
"end": 1137,
"name": "AND"
},
{
"begin": 501,
"end": 1137,
"name": "DUP2"
},
{
"begin": 501,
"end": 1137,
"name": "MSTORE"
},
{
"begin": 501,
"end": 1137,
"name": "PUSH",
"value": "20"
},
{
"begin": 501,
"end": 1137,
"name": "ADD"
},
{
"begin": 501,
"end": 1137,
"name": "SWAP2"
},
{
"begin": 501,
"end": 1137,
"name": "POP"
},
{
"begin": 501,
"end": 1137,
"name": "tag",
"value": "11"
},
{
"begin": 501,
"end": 1137,
"name": "JUMPDEST"
},
{
"begin": 501,
"end": 1137,
"name": "POP"
},
{
"begin": 501,
"end": 1137,
"name": "SWAP3"
},
{
"begin": 501,
"end": 1137,
"name": "POP"
},
{
"begin": 501,
"end": 1137,
"name": "POP"
},
{
"begin": 501,
"end": 1137,
"name": "POP"
},
{
"begin": 501,
"end": 1137,
"name": "PUSH",
"value": "40"
},
{
"begin": 501,
"end": 1137,
"name": "MLOAD"
},
{
"begin": 501,
"end": 1137,
"name": "DUP1"
},
{
"begin": 501,
"end": 1137,
"name": "SWAP2"
},
{
"begin": 501,
"end": 1137,
"name": "SUB"
},
{
"begin": 501,
"end": 1137,
"name": "SWAP1"
},
{
"begin": 501,
"end": 1137,
"name": "RETURN"
},
{
"begin": 1234,
"end": 2743,
"name": "tag",
"value": "3"
},
{
"begin": 1234,
"end": 2743,
"name": "JUMPDEST"
},
{
"begin": 1234,
"end": 2743,
"name": "PUSH [tag]",
"value": "12"
},
{
"begin": 1234,
"end": 2743,
"name": "PUSH",
"value": "4"
},
{
"begin": 1234,
"end": 2743,
"name": "DUP1"
},
{
"begin": 1234,
"end": 2743,
"name": "CALLDATASIZE"
},
{
"begin": 1234,
"end": 2743,
"name": "SUB"
},
{
"begin": 13,
"end": 16,
"name": "PUSH",
"value": "80"
},
{
"begin": 8,
"end": 11,
"name": "DUP2"
},
{
"begin": 5,
"end": 17,
"name": "LT"
},
{
"begin": 2,
"end": 4,
"name": "ISZERO"
},
{
"begin": 2,
"end": 4,
"name": "PUSH [tag]",
"value": "13"
},
{
"begin": 2,
"end": 4,
"name": "JUMPI"
},
{
"begin": 30,
"end": 31,
"name": "PUSH",
"value": "0"
},
{
"begin": 27,
"end": 28,
"name": "DUP1"
},
{
"begin": 20,
"end": 32,
"name": "REVERT"
},
{
"begin": 2,
"end": 4,
"name": "tag",
"value": "13"
},
{
"begin": 2,
"end": 4,
"name": "JUMPDEST"
},
{
"begin": 1234,
"end": 2743,
"name": "DUP2"
},
{
"begin": 1234,
"end": 2743,
"name": "ADD"
},
{
"begin": 1234,
"end": 2743,
"name": "SWAP1"
},
{
"begin": 1234,
"end": 2743,
"name": "PUSH",
"value": "20"
},
{
"begin": 1234,
"end": 2743,
"name": "DUP2"
},
{
"begin": 1234,
"end": 2743,
"name": "ADD"
},
{
"begin": 1234,
"end": 2743,
"name": "DUP2"
},
{
"begin": 1234,
"end": 2743,
"name": "CALLDATALOAD"
},
{
"begin": 21,
"end": 32,
"name": "PUSH",
"value": "100000000"
},
{
"begin": 5,
"end": 33,
"name": "DUP2"
},
{
"begin": 5,
"end": 33,
"name": "GT"
},
{
"begin": 2,
"end": 4,
"name": "ISZERO"
},
{
"begin": 2,
"end": 4,
"name": "PUSH [tag]",
"value": "14"
},
{
"begin": 2,
"end": 4,
"name": "JUMPI"
},
{
"begin": 46,
"end": 47,
"name": "PUSH",
"value": "0"
},
{
"begin": 43,
"end": 44,
"name": "DUP1"
},
{
"begin": 36,
"end": 48,
"name": "REVERT"
},
{
"begin": 2,
"end": 4,
"name": "tag",
"value": "14"
},
{
"begin": 2,
"end": 4,
"name": "JUMPDEST"
},
{
"begin": 1234,
"end": 2743,
"name": "DUP3"
},
{
"begin": 1234,
"end": 2743,
"name": "ADD"
},
{
"begin": 35,
"end": 44,
"name": "DUP4"
},
{
"begin": 28,
"end": 32,
"name": "PUSH",
"value": "20"
},
{
"begin": 12,
"end": 26,
"name": "DUP3"
},
{
"begin": 8,
"end": 33,
"name": "ADD"
},
{
"begin": 5,
"end": 45,
"name": "GT"
},
{
"begin": 2,
"end": 4,
"name": "ISZERO"
},
{
"begin": 2,
"end": 4,
"name": "PUSH [tag]",
"value": "15"
},
{
"begin": 2,
"end": 4,
"name": "JUMPI"
},
{
"begin": 58,
"end": 59,
"name": "PUSH",
"value": "0"
},
{
"begin": 55,
"end": 56,
"name": "DUP1"
},
{
"begin": 48,
"end": 60,
"name": "REVERT"
},
{
"begin": 2,
"end": 4,
"name": "tag",
"value": "15"
},
{
"begin": 2,
"end": 4,
"name": "JUMPDEST"
},
{
"begin": 1234,
"end": 2743,
"name": "DUP1"
},
{
"begin": 1234,
"end": 2743,
"name": "CALLDATALOAD"
},
{
"begin": 1234,
"end": 2743,
"name": "SWAP1"
},
{
"begin": 1234,
"end": 2743,
"name": "PUSH",
"value": "20"
},
{
"begin": 1234,
"end": 2743,
"name": "ADD"
},
{
"begin": 1234,
"end": 2743,
"name": "SWAP2"
},
{
"begin": 101,
"end": 110,
"name": "DUP5"
},
{
"begin": 95,
"end": 97,
"name": "PUSH",
"value": "20"
},
{
"begin": 81,
"end": 93,
"name": "DUP4"
},
{
"begin": 77,
"end": 98,
"name": "MUL"
},
{
"begin": 67,
"end": 75,
"name": "DUP5"
},
{
"begin": 63,
"end": 99,
"name": "ADD"
},
{
"begin": 60,
"end": 111,
"name": "GT"
},
{
"begin": 39,
"end": 50,
"name": "PUSH",
"value": "100000000"
},
{
"begin": 25,
"end": 37,
"name": "DUP4"
},
{
"begin": 22,
"end": 51,
"name": "GT"
},
{
"begin": 11,
"end": 119,
"name": "OR"
},
{
"begin": 8,
"end": 10,
"name": "ISZERO"
},
{
"begin": 8,
"end": 10,
"name": "PUSH [tag]",
"value": "16"
},
{
"begin": 8,
"end": 10,
"name": "JUMPI"
},
{
"begin": 132,
"end": 133,
"name": "PUSH",
"value": "0"
},
{
"begin": 129,
"end": 130,
"name": "DUP1"
},
{
"begin": 122,
"end": 134,
"name": "REVERT"
},
{
"begin": 8,
"end": 10,
"name": "tag",
"value": "16"
},
{
"begin": 8,
"end": 10,
"name": "JUMPDEST"
},
{
"begin": 1234,
"end": 2743,
"name": "SWAP2"
},
{
"begin": 1234,
"end": 2743,
"name": "SWAP1"
},
{
"begin": 1234,
"end": 2743,
"name": "DUP1"
},
{
"begin": 1234,
"end": 2743,
"name": "DUP1"
},
{
"begin": 1234,
"end": 2743,
"name": "PUSH",
"value": "20"
},
{
"begin": 1234,
"end": 2743,
"name": "MUL"
},
{
"begin": 1234,
"end": 2743,
"name": "PUSH",
"value": "20"
},
{
"begin": 1234,
"end": 2743,
"name": "ADD"
},
{
"begin": 1234,
"end": 2743,
"name": "PUSH",
"value": "40"
},
{
"begin": 1234,
"end": 2743,
"name": "MLOAD"
},
{
"begin": 1234,
"end": 2743,
"name": "SWAP1"
},
{
"begin": 1234,
"end": 2743,
"name": "DUP2"
},
{
"begin": 1234,
"end": 2743,
"name": "ADD"
},
{
"begin": 1234,
"end": 2743,
"name": "PUSH",
"value": "40"
},
{
"begin": 1234,
"end": 2743,
"name": "MSTORE"
},
{
"begin": 1234,
"end": 2743,
"name": "DUP1"
},
{
"begin": 1234,
"end": 2743,
"name": "SWAP4"
},
{
"begin": 1234,
"end": 2743,
"name": "SWAP3"
},
{
"begin": 1234,
"end": 2743,
"name": "SWAP2"
},
{
"begin": 1234,
"end": 2743,
"name": "SWAP1"
},
{
"begin": 1234,
"end": 2743,
"name": "DUP2"
},
{
"begin": 1234,
"end": 2743,
"name": "DUP2"
},
{
"begin": 1234,
"end": 2743,
"name": "MSTORE"
},
{
"begin": 1234,
"end": 2743,
"name": "PUSH",
"value": "20"
},
{
"begin": 1234,
"end": 2743,
"name": "ADD"
},
{
"begin": 1234,
"end": 2743,
"name": "DUP4"
},
{
"begin": 1234,
"end": 2743,
"name": "DUP4"
},
{
"begin": 1234,
"end": 2743,
"name": "PUSH",
"value": "20"
},
{
"begin": 1234,
"end": 2743,
"name": "MUL"
},
{
"begin": 30,
"end": 33,
"name": "DUP1"
},
{
"begin": 22,
"end": 28,
"name": "DUP3"
},
{
"begin": 14,
"end": 20,
"name": "DUP5"
},
{
"begin": 1,
"end": 34,
"name": "CALLDATACOPY"
},
{
"begin": 99,
"end": 100,
"name": "PUSH",
"value": "0"
},
{
"begin": 81,
"end": 97,
"name": "SWAP3"
},
{
"begin": 81,
"end": 97,
"name": "ADD"
},
{
"begin": 74,
"end": 101,
"name": "SWAP2"
},
{
"begin": 74,
"end": 101,
"name": "SWAP1"
},
{
"begin": 74,
"end": 101,
"name": "SWAP2"
},
{
"begin": 74,
"end": 101,
"name": "MSTORE"
},
{
"begin": -1,
"end": -1,
"name": "POP"
},
{
"begin": 1234,
"end": 2743,
"name": "SWAP3"
},
{
"begin": 1234,
"end": 2743,
"name": "SWAP6"
},
{
"begin": -1,
"end": -1,
"name": "POP"
},
{
"begin": -1,
"end": -1,
"name": "POP"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "C0"
},
{
"begin": -1,
"end": -1,
"name": "SHL"
},
{
"begin": -1,
"end": -1,
"name": "SUB"
},
{
"begin": -1,
"end": -1,
"name": "NOT"
},
{
"begin": 1234,
"end": 2743,
"name": "DUP4"
},
{
"begin": 1234,
"end": 2743,
"name": "CALLDATALOAD"
},
{
"begin": 1234,
"end": 2743,
"name": "AND"
},
{
"begin": 1234,
"end": 2743,
"name": "SWAP4"
},
{
"begin": -1,
"end": -1,
"name": "POP"
},
{
"begin": -1,
"end": -1,
"name": "POP"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "A0"
},
{
"begin": -1,
"end": -1,
"name": "SHL"
},
{
"begin": -1,
"end": -1,
"name": "SUB"
},
{
"begin": 1234,
"end": 2743,
"name": "PUSH",
"value": "20"
},
{
"begin": 1234,
"end": 2743,
"name": "DUP4"
},
{
"begin": 1234,
"end": 2743,
"name": "ADD"
},
{
"begin": 1234,
"end": 2743,
"name": "CALLDATALOAD"
},
{
"begin": 1234,
"end": 2743,
"name": "DUP2"
},
{
"begin": 1234,
"end": 2743,
"name": "AND"
},
{
"begin": 1234,
"end": 2743,
"name": "SWAP3"
},
{
"begin": 1234,
"end": 2743,
"name": "PUSH",
"value": "40"
},
{
"begin": 1234,
"end": 2743,
"name": "ADD"
},
{
"begin": 1234,
"end": 2743,
"name": "CALLDATALOAD"
},
{
"begin": 1234,
"end": 2743,
"name": "AND"
},
{
"begin": 1234,
"end": 2743,
"name": "SWAP1"
},
{
"begin": -1,
"end": -1,
"name": "POP"
},
{
"begin": 1234,
"end": 2743,
"name": "PUSH [tag]",
"value": "17"
},
{
"begin": 1234,
"end": 2743,
"name": "JUMP",
"value": "[in]"
},
{
"begin": 1234,
"end": 2743,
"name": "tag",
"value": "12"
},
{
"begin": 1234,
"end": 2743,
"name": "JUMPDEST"
},
{
"begin": 1234,
"end": 2743,
"name": "STOP"
},
{
"begin": 501,
"end": 1137,
"name": "tag",
"value": "7"
},
{
"begin": 501,
"end": 1137,
"name": "JUMPDEST"
},
{
"begin": 536,
"end": 548,
"name": "PUSH",
"value": "60"
},
{
"begin": 610,
"end": 616,
"name": "PUSH",
"value": "0"
},
{
"begin": 619,
"end": 632,
"name": "PUSH [tag]",
"value": "19"
},
{
"begin": 619,
"end": 630,
"name": "PUSH [tag]",
"value": "20"
},
{
"begin": 619,
"end": 632,
"name": "JUMP",
"value": "[in]"
},
{
"begin": 619,
"end": 632,
"name": "tag",
"value": "19"
},
{
"begin": 619,
"end": 632,
"name": "JUMPDEST"
},
{
"begin": 642,
"end": 648,
"name": "SWAP3"
},
{
"begin": 642,
"end": 648,
"name": "DUP4"
},
{
"begin": 642,
"end": 648,
"name": "ADD"
},
{
"begin": 642,
"end": 648,
"name": "SWAP3"
},
{
"begin": 610,
"end": 632,
"name": "SWAP1"
},
{
"begin": -1,
"end": -1,
"name": "POP"
},
{
"begin": 707,
"end": 710,
"name": "PUSH",
"value": "64"
},
{
"begin": 702,
"end": 710,
"name": "DUP4"
},
{
"begin": 702,
"end": 710,
"name": "GT"
},
{
"begin": 702,
"end": 710,
"name": "ISZERO"
},
{
"begin": 694,
"end": 711,
"name": "PUSH [tag]",
"value": "21"
},
{
"begin": 694,
"end": 711,
"name": "JUMPI"
},
{
"begin": 694,
"end": 711,
"name": "PUSH",
"value": "0"
},
{
"begin": 694,
"end": 711,
"name": "DUP1"
},
{
"begin": 694,
"end": 711,
"name": "REVERT"
},
{
"begin": 694,
"end": 711,
"name": "tag",
"value": "21"
},
{
"begin": 694,
"end": 711,
"name": "JUMPDEST"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "NOT"
},
{
"begin": 746,
"end": 762,
"name": "tag",
"value": "22"
},
{
"begin": 746,
"end": 762,
"name": "JUMPDEST"
},
{
"begin": 794,
"end": 795,
"name": "PUSH",
"value": "1"
},
{
"begin": 789,
"end": 795,
"name": "DUP5"
},
{
"begin": 789,
"end": 795,
"name": "ADD"
},
{
"begin": 789,
"end": 795,
"name": "SWAP4"
},
{
"begin": 789,
"end": 795,
"name": "POP"
},
{
"begin": 908,
"end": 910,
"name": "PUSH",
"value": "B"
},
{
"begin": 904,
"end": 905,
"name": "DUP5"
},
{
"begin": 904,
"end": 910,
"name": "LT"
},
{
"begin": 772,
"end": 912,
"name": "PUSH [tag]",
"value": "22"
},
{
"begin": 772,
"end": 912,
"name": "JUMPI"
},
{
"begin": 1006,
"end": 1018,
"name": "PUSH",
"value": "0"
},
{
"begin": 1049,
"end": 1054,
"name": "DUP1"
},
{
"begin": 1049,
"end": 1054,
"name": "SLOAD"
},
{
"begin": 1041,
"end": 1065,
"name": "PUSH",
"value": "40"
},
{
"begin": 1041,
"end": 1065,
"name": "DUP1"
},
{
"begin": 1041,
"end": 1065,
"name": "MLOAD"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "33"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "F9"
},
{
"begin": -1,
"end": -1,
"name": "SHL"
},
{
"begin": 1041,
"end": 1065,
"name": "DUP2"
},
{
"begin": 1041,
"end": 1065,
"name": "MSTORE"
},
{
"begin": 1041,
"end": 1065,
"name": "SWAP1"
},
{
"begin": 1041,
"end": 1065,
"name": "MLOAD"
},
{
"begin": 1020,
"end": 1037,
"name": "PUSH",
"value": "60"
},
{
"begin": 1020,
"end": 1037,
"name": "SWAP3"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "A0"
},
{
"begin": -1,
"end": -1,
"name": "SHL"
},
{
"begin": -1,
"end": -1,
"name": "SUB"
},
{
"begin": 1049,
"end": 1054,
"name": "AND"
},
{
"begin": 1049,
"end": 1054,
"name": "SWAP2"
},
{
"begin": 1049,
"end": 1054,
"name": "PUSH",
"value": "1"
},
{
"begin": 1041,
"end": 1065,
"name": "DUP2"
},
{
"begin": 1041,
"end": 1065,
"name": "DUP2"
},
{
"begin": 1041,
"end": 1065,
"name": "ADD"
},
{
"begin": 1041,
"end": 1065,
"name": "SWAP3"
},
{
"begin": 1006,
"end": 1018,
"name": "DUP7"
},
{
"begin": 1006,
"end": 1018,
"name": "SWAP3"
},
{
"begin": 1041,
"end": 1065,
"name": "SWAP1"
},
{
"begin": 1041,
"end": 1065,
"name": "SWAP2"
},
{
"begin": 1041,
"end": 1065,
"name": "SWAP1"
},
{
"begin": 1041,
"end": 1065,
"name": "DUP3"
},
{
"begin": 1041,
"end": 1065,
"name": "SWAP1"
},
{
"begin": 1041,
"end": 1065,
"name": "SUB"
},
{
"begin": 1041,
"end": 1065,
"name": "ADD"
},
{
"begin": 1041,
"end": 1065,
"name": "DUP2"
},
{
"begin": 1006,
"end": 1018,
"name": "DUP4"
},
{
"begin": 1049,
"end": 1054,
"name": "DUP7"
},
{
"begin": 1041,
"end": 1065,
"name": "GAS"
},
{
"begin": 1041,
"end": 1065,
"name": "CALL"
},
{
"begin": 1041,
"end": 1065,
"name": "SWAP2"
},
{
"begin": 1041,
"end": 1065,
"name": "POP"
},
{
"begin": 1041,
"end": 1065,
"name": "POP"
},
{
"begin": 1041,
"end": 1065,
"name": "RETURNDATASIZE"
},
{
"begin": 14,
"end": 15,
"name": "DUP1"
},
{
"begin": 21,
"end": 22,
"name": "PUSH",
"value": "0"
},
{
"begin": 16,
"end": 47,
"name": "DUP2"
},
{
"begin": 16,
"end": 47,
"name": "EQ"
},
{
"begin": 16,
"end": 47,
"name": "PUSH [tag]",
"value": "28"
},
{
"begin": 16,
"end": 47,
"name": "JUMPI"
},
{
"begin": 75,
"end": 79,
"name": "PUSH",
"value": "40"
},
{
"begin": 69,
"end": 80,
"name": "MLOAD"
},
{
"begin": 64,
"end": 80,
"name": "SWAP2"
},
{
"begin": 64,
"end": 80,
"name": "POP"
},
{
"begin": 144,
"end": 148,
"name": "PUSH",
"value": "1F"
},
{
"begin": 140,
"end": 149,
"name": "NOT"
},
{
"begin": 133,
"end": 137,
"name": "PUSH",
"value": "3F"
},
{
"begin": 115,
"end": 131,
"name": "RETURNDATASIZE"
},
{
"begin": 111,
"end": 138,
"name": "ADD"
},
{
"begin": 107,
"end": 150,
"name": "AND"
},
{
"begin": 104,
"end": 105,
"name": "DUP3"
},
{
"begin": 100,
"end": 151,
"name": "ADD"
},
{
"begin": 94,
"end": 98,
"name": "PUSH",
"value": "40"
},
{
"begin": 87,
"end": 152,
"name": "MSTORE"
},
{
"begin": 169,
"end": 185,
"name": "RETURNDATASIZE"
},
{
"begin": 166,
"end": 167,
"name": "DUP3"
},
{
"begin": 159,
"end": 186,
"name": "MSTORE"
},
{
"begin": 225,
"end": 241,
"name": "RETURNDATASIZE"
},
{
"begin": 222,
"end": 223,
"name": "PUSH",
"value": "0"
},
{
"begin": 215,
"end": 219,
"name": "PUSH",
"value": "20"
},
{
"begin": 212,
"end": 213,
"name": "DUP5"
},
{
"begin": 208,
"end": 220,
"name": "ADD"
},
{
"begin": 193,
"end": 242,
"name": "RETURNDATACOPY"
},
{
"begin": 7,
"end": 249,
"name": "PUSH [tag]",
"value": "27"
},
{
"begin": 7,
"end": 249,
"name": "JUMP"
},
{
"begin": 16,
"end": 47,
"name": "tag",
"value": "28"
},
{
"begin": 16,
"end": 47,
"name": "JUMPDEST"
},
{
"begin": 36,
"end": 40,
"name": "PUSH",
"value": "60"
},
{
"begin": 31,
"end": 40,
"name": "SWAP2"
},
{
"begin": 31,
"end": 40,
"name": "POP"
},
{
"begin": 7,
"end": 249,
"name": "tag",
"value": "27"
},
{
"begin": 7,
"end": 249,
"name": "JUMPDEST"
},
{
"begin": 7,
"end": 249,
"name": "POP"
},
{
"begin": 1005,
"end": 1065,
"name": "SWAP2"
},
{
"begin": 1005,
"end": 1065,
"name": "POP"
},
{
"begin": 1005,
"end": 1065,
"name": "SWAP2"
},
{
"begin": 1005,
"end": 1065,
"name": "POP"
},
{
"begin": 1080,
"end": 1087,
"name": "DUP2"
},
{
"begin": 1075,
"end": 1109,
"name": "PUSH [tag]",
"value": "29"
},
{
"begin": 1075,
"end": 1109,
"name": "JUMPI"
},
{
"begin": 1101,
"end": 1109,
"name": "PUSH",
"value": "0"
},
{
"begin": 1101,
"end": 1109,
"name": "DUP1"
},
{
"begin": 1101,
"end": 1109,
"name": "REVERT"
},
{
"begin": 1075,
"end": 1109,
"name": "tag",
"value": "29"
},
{
"begin": 1075,
"end": 1109,
"name": "JUMPDEST"
},
{
"begin": 1126,
"end": 1130,
"name": "SWAP6"
},
{
"begin": 501,
"end": 1137,
"name": "SWAP5"
},
{
"begin": -1,
"end": -1,
"name": "POP"
},
{
"begin": -1,
"end": -1,
"name": "POP"
},
{
"begin": -1,
"end": -1,
"name": "POP"
},
{
"begin": -1,
"end": -1,
"name": "POP"
},
{
"begin": -1,
"end": -1,
"name": "POP"
},
{
"begin": 501,
"end": 1137,
"name": "JUMP",
"value": "[out]"
},
{
"begin": 1234,
"end": 2743,
"name": "tag",
"value": "17"
},
{
"begin": 1234,
"end": 2743,
"name": "JUMPDEST"
},
{
"begin": 1559,
"end": 1599,
"name": "PUSH",
"value": "40"
},
{
"begin": 1559,
"end": 1599,
"name": "MLOAD"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "A0"
},
{
"begin": -1,
"end": -1,
"name": "SHL"
},
{
"begin": -1,
"end": -1,
"name": "SUB"
},
{
"begin": 1559,
"end": 1590,
"name": "DUP4"
},
{
"begin": 1559,
"end": 1590,
"name": "AND"
},
{
"begin": 1559,
"end": 1590,
"name": "SWAP1"
},
{
"begin": 1559,
"end": 1599,
"name": "PUSH",
"value": "0"
},
{
"begin": 1559,
"end": 1599,
"name": "SWAP1"
},
{
"begin": 1591,
"end": 1598,
"name": "PUSH",
"value": "DE0B6B3A7640000"
},
{
"begin": 1591,
"end": 1598,
"name": "SWAP1"
},
{
"begin": 1559,
"end": 1599,
"name": "DUP3"
},
{
"begin": 1559,
"end": 1599,
"name": "DUP2"
},
{
"begin": 1559,
"end": 1599,
"name": "DUP2"
},
{
"begin": 1559,
"end": 1599,
"name": "DUP2"
},
{
"begin": 1591,
"end": 1598,
"name": "DUP6"
},
{
"begin": 1559,
"end": 1590,
"name": "DUP9"
},
{
"begin": 1559,
"end": 1599,
"name": "DUP4"
},
{
"begin": 1559,
"end": 1599,
"name": "CALL"
},
{
"begin": 1559,
"end": 1599,
"name": "SWAP4"
},
{
"begin": 1559,
"end": 1599,
"name": "POP"
},
{
"begin": 1559,
"end": 1599,
"name": "POP"
},
{
"begin": 1559,
"end": 1599,
"name": "POP"
},
{
"begin": 1559,
"end": 1599,
"name": "POP"
},
{
"begin": 1559,
"end": 1599,
"name": "ISZERO"
},
{
"begin": 8,
"end": 17,
"name": "DUP1"
},
{
"begin": 5,
"end": 7,
"name": "ISZERO"
},
{
"begin": 5,
"end": 7,
"name": "PUSH [tag]",
"value": "31"
},
{
"begin": 5,
"end": 7,
"name": "JUMPI"
},
{
"begin": 45,
"end": 61,
"name": "RETURNDATASIZE"
},
{
"begin": 42,
"end": 43,
"name": "PUSH",
"value": "0"
},
{
"begin": 39,
"end": 40,
"name": "DUP1"
},
{
"begin": 24,
"end": 62,
"name": "RETURNDATACOPY"
},
{
"begin": 77,
"end": 93,
"name": "RETURNDATASIZE"
},
{
"begin": 74,
"end": 75,
"name": "PUSH",
"value": "0"
},
{
"begin": 67,
"end": 94,
"name": "REVERT"
},
{
"begin": 5,
"end": 7,
"name": "tag",
"value": "31"
},
{
"begin": 5,
"end": 7,
"name": "JUMPDEST"
},
{
"begin": 1559,
"end": 1599,
"name": "POP"
},
{
"begin": 2210,
"end": 2230,
"name": "PUSH",
"value": "0"
},
{
"begin": 2233,
"end": 2262,
"name": "PUSH [tag]",
"value": "32"
},
{
"begin": 2233,
"end": 2248,
"name": "DUP3"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "A0"
},
{
"begin": -1,
"end": -1,
"name": "SHL"
},
{
"begin": -1,
"end": -1,
"name": "SUB"
},
{
"begin": 2233,
"end": 2260,
"name": "AND"
},
{
"begin": 2233,
"end": 2260,
"name": "PUSH [tag]",
"value": "33"
},
{
"begin": 2233,
"end": 2262,
"name": "JUMP",
"value": "[in]"
},
{
"begin": 2233,
"end": 2262,
"name": "tag",
"value": "32"
},
{
"begin": 2233,
"end": 2262,
"name": "JUMPDEST"
},
{
"begin": 2280,
"end": 2298,
"name": "PUSH",
"value": "40"
},
{
"begin": 2280,
"end": 2298,
"name": "MLOAD"
},
{
"begin": 2210,
"end": 2262,
"name": "SWAP1"
},
{
"begin": 2210,
"end": 2262,
"name": "SWAP2"
},
{
"begin": -1,
"end": -1,
"name": "POP"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "1"
},
{
"begin": -1,
"end": -1,
"name": "PUSH",
"value": "A0"
},
{
"begin": -1,
"end": -1,
"name": "SHL"
},
{
"begin": -1,
"end": -1,
"name": "SUB"
},
{
"begin": 2280,
"end": 2289,
"name": "DUP3"
},
{
"begin": 2280,
"end": 2289,
"name": "AND"
},
{
"begin": 2280,
"end": 2289,
"name": "SWAP1"
},
{
"begin": 2280,
"end": 2298,
"name": "PUSH",
"value": "0"
},
{
"begin": 2280,
"end": 2298,
"name": "SWAP1"
},
{
"begin": 2290,
"end": 2297,
"name": "PUSH",
"value": "DE0B6B3A7640000"
},
{
"begin": 2290,
"end": 2297,
"name": "SWAP1"
},
{
"begin": 2280,
"end": 2298,
"name": "DUP3"
},
{
"begin": 2280,
"end": 2298,
"name": "DUP2"
},
{
"begin": 2280,
"end": 2298,
"name": "DUP2"
},
{
"begin": 2280,
"end": 2298,
"name": "DUP2"
},
{
"begin": 2290,
"end": 2297,
"name": "DUP6"
},
{
"begin": 2280,
"end": 2289,
"name": "DUP9"
},
{
"begin": 2280,
"end": 2298,
"name": "DUP4"
},
{
"begin": 2280,
"end": 2298,
"name": "CALL"
},
{
"begin": 2280,
"end": 2298,
"name": "SWAP4"
},
{
"begin": 2280,
"end": 2298,
"name": "POP"
},
{
"begin": 2280,
"end": 2298,
"name": "POP"
},
{
"begin": 2280,
"end": 2298,
"name": "POP"
},
{
"begin": 2280,
"end": 2298,
"name": "POP"
},
{
"begin": 2272,
"end": 2299,
"name": "PUSH [tag]",
"value": "34"
},
{
"begin": 2272,
"end": 2299,
"name": "JUMPI"
},
{
"begin": 2272,
"end": 2299,
"name": "PUSH",
"value": "0"
},
{
"begin": 2272,
"end": 2299,
"name": "DUP1"
},
{
"begin": 2272,
"end": 2299,
"name": "REVERT"
},
{
"begin": 2272,
"end": 2299,
"name": "tag",
"value": "34"
},
{
"begin": 2272,
"end": 2299,
"name": "JUMPDEST"
},
{
"begin": -1,
"end": -1,
"name": "POP"
},
{
"begin": -1,
"end": -1,
"name": "POP"
},
{
"begin": 2711,
"end": 2719,
"name": "PUSH",
"value": "1"
},
{
"begin": 2711,
"end": 2736,
"name": "DUP1"
},
{
"begin": 2711,
"end": 2736,
"name": "SLOAD"
},
{
"begin": 2548,
"end": 2558,
"name": "PUSH",
"value": "E0"
},
{
"begin": 2548,
"end": 2558,
"name": "SWAP4"
},
{
"begin": 2548,
"end": 2558,
"name": "SWAP1"
},
{
"begin": 2548,
"end": 2558,
"name": "SWAP4"
},
{
"begin": 2548,
"end": 2558,
"name": "SHR"
},
{
"begin": 2727,
"end": 2736,
"name": "CALLVALUE"
},
{
"begin": 2723,
"end": 2736,
"name": "ADD"
},
{
"begin": 2711,
"end": 2736,
"name": "SWAP1"
},
{
"begin": 2711,
"end": 2736,
"name": "SWAP3"
},
{
"begin": 2711,
"end": 2736,
"name": "ADD"
},
{
"begin": 2711,
"end": 2736,
"name": "SWAP1"
},
{
"begin": 2711,
"end": 2736,
"name": "SWAP2"
},
{
"begin": 2711,
"end": 2736,
"name": "SSTORE"
},
{
"begin": -1,
"end": -1,
"name": "POP"
},
{
"begin": -1,
"end": -1,
"name": "POP"
},
{
"begin": 1234,
"end": 2743,
"name": "JUMP",
"value": "[out]"
},
{
"begin": 338,
"end": 403,
"name": "tag",
"value": "20"
},
{
"begin": 338,
"end": 403,
"name": "JUMPDEST"
},
{
"begin": 399,
"end": 400,
"name": "PUSH",
"value": "2"
},
{
"begin": 338,
"end": 403,
"name": "SWAP1"
},
{
"begin": 338,
"end": 403,
"name": "JUMP",
"value": "[out]"
},
{
"begin": 2888,
"end": 3003,
"name": "tag",
"value": "33"
},
{
"begin": 2888,
"end": 3003,
"name": "JUMPDEST"
},
{
"begin": 2993,
"end": 2994,
"name": "SWAP1"
},
{
"begin": 2888,
"end": 3003,
"name": "JUMP",
"value": "[out]"
}
]
}
}
},
"methodIdentifiers": {
"f(uint256)": "b3de648b",
"g(uint256[],bytes8,address,address)": "b4f2b3d9"
}
},
"metadata": "{\"compiler\":{\"version\":\"0.5.17+commit.d19bba13\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"}],\"name\":\"f\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes8\",\"name\":\"x\",\"type\":\"bytes8\"},{\"internalType\":\"contract OtherContract\",\"name\":\"otherContract\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"unknownContract\",\"type\":\"address\"}],\"name\":\"g\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contract-2ae49825ba.sol\":\"New\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contract-2ae49825ba.sol\":{\"keccak256\":\"0xc92105a99123e8d29896b45ce9b7ee07d28f8e83637b958ccf2806db73efe7d7\",\"urls\":[\"bzz-raw://7a5225a0ac9d2b053d1b9f070a4ef408afdad8c4b54d1aab7929ae494cafa22b\",\"dweb:/ipfs/QmSHbAW3PTq4i231S84x1WFpChAVBGb2wmNfovkCfaa43J\"]}},\"version\":1}",
"storageLayout": {
"storage": [
{
"astId": 20,
"contract": "contract-2ae49825ba.sol:New",
"label": "other",
"offset": 0,
"slot": "0",
"type": "t_contract(OtherContract)18"
},
{
"astId": 22,
"contract": "contract-2ae49825ba.sol:New",
"label": "myNumber",
"offset": 0,
"slot": "1",
"type": "t_uint256"
}
],
"types": {
"t_contract(OtherContract)18": {
"encoding": "inplace",
"label": "contract OtherContract",
"numberOfBytes": "20"
},
"t_uint256": {
"encoding": "inplace",
"label": "uint256",
"numberOfBytes": "32"
}
}
},
"userdoc": {
"methods": {}
}
},
"OtherContract": {
"abi": [
{
"payable": true,
"stateMutability": "payable",
"type": "fallback"
},
{
"constant": false,
"inputs": [
{
"internalType": "uint256",
"name": "y",
"type": "uint256"
}
],
"name": "f",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"methods": {}
},
"evm": {
"assembly": " /* \"contract-2ae49825ba.sol\":98:226 contract OtherContract {... */\n mstore(0x40, 0x80)\n callvalue\n /* \"--CODEGEN--\":8:17 */\n dup1\n /* \"--CODEGEN--\":5:7 */\n iszero\n tag_1\n jumpi\n /* \"--CODEGEN--\":30:31 */\n 0x00\n /* \"--CODEGEN--\":27:28 */\n dup1\n /* \"--CODEGEN--\":20:32 */\n revert\n /* \"--CODEGEN--\":5:7 */\ntag_1:\n /* \"contract-2ae49825ba.sol\":98:226 contract OtherContract {... */\n pop\n dataSize(sub_0)\n dup1\n dataOffset(sub_0)\n 0x00\n codecopy\n 0x00\n return\nstop\n\nsub_0: assembly {\n /* \"contract-2ae49825ba.sol\":98:226 contract OtherContract {... */\n mstore(0x40, 0x80)\n jumpi(tag_1, lt(calldatasize, 0x04))\n shr(0xe0, calldataload(0x00))\n dup1\n 0xb3de648b\n eq\n tag_2\n jumpi\n tag_1:\n stop\n /* \"contract-2ae49825ba.sol\":139:189 function f(uint y) external {... */\n tag_2:\n callvalue\n /* \"--CODEGEN--\":8:17 */\n dup1\n /* \"--CODEGEN--\":5:7 */\n iszero\n tag_5\n jumpi\n /* \"--CODEGEN--\":30:31 */\n 0x00\n /* \"--CODEGEN--\":27:28 */\n dup1\n /* \"--CODEGEN--\":20:32 */\n revert\n /* \"--CODEGEN--\":5:7 */\n tag_5:\n /* \"contract-2ae49825ba.sol\":139:189 function f(uint y) external {... */\n pop\n tag_1\n 0x04\n dup1\n calldatasize\n sub\n /* \"--CODEGEN--\":13:15 */\n 0x20\n /* \"--CODEGEN--\":8:11 */\n dup2\n /* \"--CODEGEN--\":5:16 */\n lt\n /* \"--CODEGEN--\":2:4 */\n iszero\n tag_7\n jumpi\n /* \"--CODEGEN--\":29:30 */\n 0x00\n /* \"--CODEGEN--\":26:27 */\n dup1\n /* \"--CODEGEN--\":19:31 */\n revert\n /* \"--CODEGEN--\":2:4 */\n tag_7:\n pop\n /* \"contract-2ae49825ba.sol\":139:189 function f(uint y) external {... */\n calldataload\n /* \"contract-2ae49825ba.sol\":177:178 x */\n 0x00\n /* \"contract-2ae49825ba.sol\":177:182 x = y */\n sstore\n /* \"contract-2ae49825ba.sol\":139:189 function f(uint y) external {... */\n jump\t// out\n\n auxdata: 0xa265627a7a723158206abed810bba59707b8bb58669d6736327c466f35f7322adc056d86b99558e76e64736f6c63430005110032\n}\n",
"bytecode": {
"linkReferences": {},
"object": "6080604052348015600f57600080fd5b50607a8061001e6000396000f3fe608060405260043610601c5760003560e01c8063b3de648b14601e575b005b348015602957600080fd5b50601c60048036036020811015603e57600080fd5b503560005556fea265627a7a723158206abed810bba59707b8bb58669d6736327c466f35f7322adc056d86b99558e76e64736f6c63430005110032",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x7A DUP1 PUSH2 0x1E PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x1C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xB3DE648B EQ PUSH1 0x1E JUMPI JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x29 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1C PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH1 0x3E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH1 0x0 SSTORE JUMP INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 PUSH11 0xBED810BBA59707B8BB5866 SWAP14 PUSH8 0x36327C466F35F732 0x2A 0xDC SDIV PUSH14 0x86B99558E76E64736F6C63430005 GT STOP ORIGIN ",
"sourceMap": "98:128:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;98:128:0;;;;;;;"
},
"deployedBytecode": {
"linkReferences": {},
"object": "608060405260043610601c5760003560e01c8063b3de648b14601e575b005b348015602957600080fd5b50601c60048036036020811015603e57600080fd5b503560005556fea265627a7a723158206abed810bba59707b8bb58669d6736327c466f35f7322adc056d86b99558e76e64736f6c63430005110032",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x1C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xB3DE648B EQ PUSH1 0x1E JUMPI JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x29 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1C PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH1 0x3E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH1 0x0 SSTORE JUMP INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 PUSH11 0xBED810BBA59707B8BB5866 SWAP14 PUSH8 0x36327C466F35F732 0x2A 0xDC SDIV PUSH14 0x86B99558E76E64736F6C63430005 GT STOP ORIGIN ",
"sourceMap": "98:128:0:-;;;;;;;;;;;;;;;;;;;139:50;;8:9:-1;5:2;;;30:1;27;20:12;5:2;139:50:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;139:50:0;177:1;:5;139:50::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "24400",
"executionCost": "75",
"totalCost": "24475"
},
"external": {
"": "74",
"f(uint256)": "20155"
}
},
"legacyAssembly": {
".code": [
{
"begin": 98,
"end": 226,
"name": "PUSH",
"value": "80"
},
{
"begin": 98,
"end": 226,
"name": "PUSH",
"value": "40"
},
{
"begin": 98,
"end": 226,
"name": "MSTORE"
},
{
"begin": 98,
"end": 226,
"name": "CALLVALUE"
},
{
"begin": 8,
"end": 17,
"name": "DUP1"
},
{
"begin": 5,
"end": 7,
"name": "ISZERO"
},
{
"begin": 5,
"end": 7,
"name": "PUSH [tag]",
"value": "1"
},
{
"begin": 5,
"end": 7,
"name": "JUMPI"
},
{
"begin": 30,
"end": 31,
"name": "PUSH",
"value": "0"
},
{
"begin": 27,
"end": 28,
"name": "DUP1"
},
{
"begin": 20,
"end": 32,
"name": "REVERT"
},
{
"begin": 5,
"end": 7,
"name": "tag",
"value": "1"
},
{
"begin": 5,
"end": 7,
"name": "JUMPDEST"
},
{
"begin": 98,
"end": 226,
"name": "POP"
},
{
"begin": 98,
"end": 226,
"name": "PUSH #[$]",
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 98,
"end": 226,
"name": "DUP1"
},
{
"begin": 98,
"end": 226,
"name": "PUSH [$]",
"value": "0000000000000000000000000000000000000000000000000000000000000000"
},
{
"begin": 98,
"end": 226,
"name": "PUSH",
"value": "0"
},
{
"begin": 98,
"end": 226,
"name": "CODECOPY"
},
{
"begin": 98,
"end": 226,
"name": "PUSH",
"value": "0"
},
{
"begin": 98,
"end": 226,
"name": "RETURN"
}
],
".data": {
"0": {
".auxdata": "a265627a7a723158206abed810bba59707b8bb58669d6736327c466f35f7322adc056d86b99558e76e64736f6c63430005110032",
".code": [
{
"begin": 98,
"end": 226,
"name": "PUSH",
"value": "80"
},
{
"begin": 98,
"end": 226,
"name": "PUSH",
"value": "40"
},
{
"begin": 98,
"end": 226,
"name": "MSTORE"
},
{
"begin": 98,
"end": 226,
"name": "PUSH",
"value": "4"
},
{
"begin": 98,
"end": 226,
"name": "CALLDATASIZE"
},
{
"begin": 98,
"end": 226,
"name": "LT"
},
{
"begin": 98,
"end": 226,
"name": "PUSH [tag]",
"value": "1"
},
{
"begin": 98,
"end": 226,
"name": "JUMPI"
},
{
"begin": 98,
"end": 226,
"name": "PUSH",
"value": "0"
},
{
"begin": 98,
"end": 226,
"name": "CALLDATALOAD"
},
{
"begin": 98,
"end": 226,
"name": "PUSH",
"value": "E0"
},
{
"begin": 98,
"end": 226,
"name": "SHR"
},
{
"begin": 98,
"end": 226,
"name": "DUP1"
},
{
"begin": 98,
"end": 226,
"name": "PUSH",
"value": "B3DE648B"
},
{
"begin": 98,
"end": 226,
"name": "EQ"
},
{
"begin": 98,
"end": 226,
"name": "PUSH [tag]",
"value": "2"
},
{
"begin": 98,
"end": 226,
"name": "JUMPI"
},
{
"begin": 98,
"end": 226,
"name": "tag",
"value": "1"
},
{
"begin": 98,
"end": 226,
"name": "JUMPDEST"
},
{
"begin": 98,
"end": 226,
"name": "STOP"
},
{
"begin": 139,
"end": 189,
"name": "tag",
"value": "2"
},
{
"begin": 139,
"end": 189,
"name": "JUMPDEST"
},
{
"begin": 139,
"end": 189,
"name": "CALLVALUE"
},
{
"begin": 8,
"end": 17,
"name": "DUP1"
},
{
"begin": 5,
"end": 7,
"name": "ISZERO"
},
{
"begin": 5,
"end": 7,
"name": "PUSH [tag]",
"value": "5"
},
{
"begin": 5,
"end": 7,
"name": "JUMPI"
},
{
"begin": 30,
"end": 31,
"name": "PUSH",
"value": "0"
},
{
"begin": 27,
"end": 28,
"name": "DUP1"
},
{
"begin": 20,
"end": 32,
"name": "REVERT"
},
{
"begin": 5,
"end": 7,
"name": "tag",
"value": "5"
},
{
"begin": 5,
"end": 7,
"name": "JUMPDEST"
},
{
"begin": 139,
"end": 189,
"name": "POP"
},
{
"begin": 139,
"end": 189,
"name": "PUSH [tag]",
"value": "1"
},
{
"begin": 139,
"end": 189,
"name": "PUSH",
"value": "4"
},
{
"begin": 139,
"end": 189,
"name": "DUP1"
},
{
"begin": 139,
"end": 189,
"name": "CALLDATASIZE"
},
{
"begin": 139,
"end": 189,
"name": "SUB"
},
{
"begin": 13,
"end": 15,
"name": "PUSH",
"value": "20"
},
{
"begin": 8,
"end": 11,
"name": "DUP2"
},
{
"begin": 5,
"end": 16,
"name": "LT"
},
{
"begin": 2,
"end": 4,
"name": "ISZERO"
},
{
"begin": 2,
"end": 4,
"name": "PUSH [tag]",
"value": "7"
},
{
"begin": 2,
"end": 4,
"name": "JUMPI"
},
{
"begin": 29,
"end": 30,
"name": "PUSH",
"value": "0"
},
{
"begin": 26,
"end": 27,
"name": "DUP1"
},
{
"begin": 19,
"end": 31,
"name": "REVERT"
},
{
"begin": 2,
"end": 4,
"name": "tag",
"value": "7"
},
{
"begin": 2,
"end": 4,
"name": "JUMPDEST"
},
{
"begin": -1,
"end": -1,
"name": "POP"
},
{
"begin": 139,
"end": 189,
"name": "CALLDATALOAD"
},
{
"begin": 177,
"end": 178,
"name": "PUSH",
"value": "0"
},
{
"begin": 177,
"end": 182,
"name": "SSTORE"
},
{
"begin": 139,
"end": 189,
"name": "JUMP",
"value": "[out]"
}
]
}
}
},
"methodIdentifiers": {
"f(uint256)": "b3de648b"
}
},
"metadata": "{\"compiler\":{\"version\":\"0.5.17+commit.d19bba13\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"}],\"name\":\"f\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"contract-2ae49825ba.sol\":\"OtherContract\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contract-2ae49825ba.sol\":{\"keccak256\":\"0xc92105a99123e8d29896b45ce9b7ee07d28f8e83637b958ccf2806db73efe7d7\",\"urls\":[\"bzz-raw://7a5225a0ac9d2b053d1b9f070a4ef408afdad8c4b54d1aab7929ae494cafa22b\",\"dweb:/ipfs/QmSHbAW3PTq4i231S84x1WFpChAVBGb2wmNfovkCfaa43J\"]}},\"version\":1}",
"storageLayout": {
"storage": [
{
"astId": 3,
"contract": "contract-2ae49825ba.sol:OtherContract",
"label": "x",
"offset": 0,
"slot": "0",
"type": "t_uint256"
}
],
"types": {
"t_uint256": {
"encoding": "inplace",
"label": "uint256",
"numberOfBytes": "32"
}
}
},
"userdoc": {
"methods": {}
}
}
}
},
"sources": {
"contract-2ae49825ba.sol": {
"ast": {
"absolutePath": "contract-2ae49825ba.sol",
"exportedSymbols": {
"AddressMakePayable": [
171
],
"New": [
156
],
"OtherContract": [
18
]
},
"id": 172,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 1,
"literals": [
"solidity",
"^",
"0.5",
".0"
],
"nodeType": "PragmaDirective",
"src": "36:23:0"
},
{
"baseContracts": [],
"contractDependencies": [],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": true,
"id": 18,
"linearizedBaseContracts": [
18
],
"name": "OtherContract",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"id": 3,
"name": "x",
"nodeType": "VariableDeclaration",
"scope": 18,
"src": "127:6:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "127:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"body": {
"id": 12,
"nodeType": "Block",
"src": "167:22:0",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 10,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 8,
"name": "x",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3,
"src": "177:1:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 9,
"name": "y",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 5,
"src": "181:1:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "177:5:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 11,
"nodeType": "ExpressionStatement",
"src": "177:5:0"
}
]
},
"documentation": null,
"id": 13,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "f",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 6,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 5,
"name": "y",
"nodeType": "VariableDeclaration",
"scope": 13,
"src": "150:6:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 4,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "150:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "149:8:0"
},
"returnParameters": {
"id": 7,
"nodeType": "ParameterList",
"parameters": [],
"src": "167:0:0"
},
"scope": 18,
"src": "139:50:0",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "external"
},
{
"body": {
"id": 16,
"nodeType": "Block",
"src": "222:2:0",
"statements": []
},
"documentation": null,
"id": 17,
"implemented": true,
"kind": "fallback",
"modifiers": [],
"name": "",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 14,
"nodeType": "ParameterList",
"parameters": [],
"src": "202:2:0"
},
"returnParameters": {
"id": 15,
"nodeType": "ParameterList",
"parameters": [],
"src": "222:0:0"
},
"scope": 18,
"src": "194:30:0",
"stateMutability": "payable",
"superFunction": null,
"visibility": "external"
}
],
"scope": 172,
"src": "98:128:0"
},
{
"baseContracts": [],
"contractDependencies": [],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": true,
"id": 156,
"linearizedBaseContracts": [
156
],
"name": "New",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"id": 20,
"name": "other",
"nodeType": "VariableDeclaration",
"scope": 156,
"src": "247:19:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_contract$_OtherContract_$18",
"typeString": "contract OtherContract"
},
"typeName": {
"contractScope": null,
"id": 19,
"name": "OtherContract",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 18,
"src": "247:13:0",
"typeDescriptions": {
"typeIdentifier": "t_contract$_OtherContract_$18",
"typeString": "contract OtherContract"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 22,
"name": "myNumber",
"nodeType": "VariableDeclaration",
"scope": 156,
"src": "272:13:0",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 21,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "272:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"body": {
"id": 29,
"nodeType": "Block",
"src": "390:13:0",
"statements": [
{
"expression": {
"argumentTypes": null,
"hexValue": "32",
"id": 27,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "399:1:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_2_by_1",
"typeString": "int_const 2"
},
"value": "2"
},
"functionReturnParameters": 26,
"id": 28,
"nodeType": "Return",
"src": "392:8:0"
}
]
},
"documentation": null,
"id": 30,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "someInteger",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 23,
"nodeType": "ParameterList",
"parameters": [],
"src": "358:2:0"
},
"returnParameters": {
"id": 26,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 25,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 30,
"src": "384:4:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 24,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "384:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "383:6:0"
},
"scope": 156,
"src": "338:65:0",
"stateMutability": "pure",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 99,
"nodeType": "Block",
"src": "550:587:0",
"statements": [
{
"assignments": [
38
],
"declarations": [
{
"constant": false,
"id": 38,
"name": "z",
"nodeType": "VariableDeclaration",
"scope": 99,
"src": "610:6:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 37,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "610:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 41,
"initialValue": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 39,
"name": "someInteger",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 30,
"src": "619:11:0",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$__$returns$_t_uint256_$",
"typeString": "function () pure returns (uint256)"
}
},
"id": 40,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "619:13:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "610:22:0"
},
{
"expression": {
"argumentTypes": null,
"id": 44,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 42,
"name": "x",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 32,
"src": "642:1:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "+=",
"rightHandSide": {
"argumentTypes": null,
"id": 43,
"name": "z",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 38,
"src": "647:1:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "642:6:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 45,
"nodeType": "ExpressionStatement",
"src": "642:6:0"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 49,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 47,
"name": "x",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 32,
"src": "702:1:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<=",
"rightExpression": {
"argumentTypes": null,
"hexValue": "313030",
"id": 48,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "707:3:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_100_by_1",
"typeString": "int_const 100"
},
"value": "100"
},
"src": "702:8:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"id": 46,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
189,
190
],
"referencedDeclaration": 189,
"src": "694:7:0",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
"typeString": "function (bool) pure"
}
},
"id": 50,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "694:17:0",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 51,
"nodeType": "ExpressionStatement",
"src": "694:17:0"
},
{
"assignments": [
53
],
"declarations": [
{
"constant": false,
"id": 53,
"name": "y",
"nodeType": "VariableDeclaration",
"scope": 99,
"src": "721:5:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
},
"typeName": {
"id": 52,
"name": "int",
"nodeType": "ElementaryTypeName",
"src": "721:3:0",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 58,
"initialValue": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_rational_minus_2_by_1",
"typeString": "int_const -2"
},
"id": 57,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 55,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "-",
"prefix": true,
"src": "729:2:0",
"subExpression": {
"argumentTypes": null,
"hexValue": "33",
"id": 54,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "730:1:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_3_by_1",
"typeString": "int_const 3"
},
"value": "3"
},
"typeDescriptions": {
"typeIdentifier": "t_rational_minus_3_by_1",
"typeString": "int_const -3"
}
},
"nodeType": "BinaryOperation",
"operator": ">>",
"rightExpression": {
"argumentTypes": null,
"hexValue": "31",
"id": 56,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "735:1:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"src": "729:7:0",
"typeDescriptions": {
"typeIdentifier": "t_rational_minus_2_by_1",
"typeString": "int_const -2"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "721:15:0"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_int256",
"typeString": "int256"
},
"id": 63,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 60,
"name": "y",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 53,
"src": "754:1:0",
"typeDescriptions": {
"typeIdentifier": "t_int256",
"typeString": "int256"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"id": 62,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "-",
"prefix": true,
"src": "759:2:0",
"subExpression": {
"argumentTypes": null,
"hexValue": "32",
"id": 61,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "760:1:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_2_by_1",
"typeString": "int_const 2"
},
"value": "2"
},
"typeDescriptions": {
"typeIdentifier": "t_rational_minus_2_by_1",
"typeString": "int_const -2"
}
},
"src": "754:7:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"id": 59,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
189,
190
],
"referencedDeclaration": 189,
"src": "746:7:0",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
"typeString": "function (bool) pure"
}
},
"id": 64,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "746:16:0",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 65,
"nodeType": "ExpressionStatement",
"src": "746:16:0"
},
{
"body": {
"id": 75,
"nodeType": "Block",
"src": "775:121:0",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 68,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 66,
"name": "x",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 32,
"src": "789:1:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "+=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "31",
"id": 67,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "794:1:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"src": "789:6:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 69,
"nodeType": "ExpressionStatement",
"src": "789:6:0"
},
{
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 72,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 70,
"name": "x",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 32,
"src": "813:1:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">",
"rightExpression": {
"argumentTypes": null,
"hexValue": "3130",
"id": 71,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "817:2:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_10_by_1",
"typeString": "int_const 10"
},
"value": "10"
},
"src": "813:6:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
"id": 74,
"nodeType": "IfStatement",
"src": "809:20:0",
"trueBody": {
"id": 73,
"nodeType": "Continue",
"src": "821:8:0"
}
}
]
},
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 78,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 76,
"name": "x",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 32,
"src": "904:1:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<",
"rightExpression": {
"argumentTypes": null,
"hexValue": "3131",
"id": 77,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "908:2:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_11_by_1",
"typeString": "int_const 11"
},
"value": "11"
},
"src": "904:6:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 79,
"nodeType": "DoWhileStatement",
"src": "772:140:0"
},
{
"assignments": [
81,
83
],
"declarations": [
{
"constant": false,
"id": 81,
"name": "success",
"nodeType": "VariableDeclaration",
"scope": 99,
"src": "1006:12:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 80,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "1006:4:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 83,
"name": "data",
"nodeType": "VariableDeclaration",
"scope": 99,
"src": "1020:17:0",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 82,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "1020:5:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 90,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "66",
"id": 88,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1061:3:0",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_d1e8aeb79500496ef3dc2e57ba746a8315d048b7a664a2bf948db4fa91960483",
"typeString": "literal_string \"f\""
},
"value": "f"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_d1e8aeb79500496ef3dc2e57ba746a8315d048b7a664a2bf948db4fa91960483",
"typeString": "literal_string \"f\""
}
],
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 85,
"name": "other",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 20,
"src": "1049:5:0",
"typeDescriptions": {
"typeIdentifier": "t_contract$_OtherContract_$18",
"typeString": "contract OtherContract"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_contract$_OtherContract_$18",
"typeString": "contract OtherContract"
}
],
"id": 84,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "1041:7:0",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": "address"
},
"id": 86,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1041:14:0",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"id": 87,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "call",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "1041:19:0",
"typeDescriptions": {
"typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$",
"typeString": "function (bytes memory) payable returns (bool,bytes memory)"
}
},
"id": 89,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1041:24:0",
"typeDescriptions": {
"typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$",
"typeString": "tuple(bool,bytes memory)"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "1005:60:0"
},
{
"condition": {
"argumentTypes": null,
"id": 92,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "!",
"prefix": true,
"src": "1079:8:0",
"subExpression": {
"argumentTypes": null,
"id": 91,
"name": "success",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 81,
"src": "1080:7:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
"id": 96,
"nodeType": "IfStatement",
"src": "1075:34:0",
"trueBody": {
"expression": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 93,
"name": "revert",
"nodeType": "Identifier",
"overloadedDeclarations": [
191,
192
],
"referencedDeclaration": 191,
"src": "1101:6:0",
"typeDescriptions": {
"typeIdentifier": "t_function_revert_pure$__$returns$__$",
"typeString": "function () pure"
}
},
"id": 94,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1101:8:0",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 95,
"nodeType": "ExpressionStatement",
"src": "1101:8:0"
}
},
{
"expression": {
"argumentTypes": null,
"id": 97,
"name": "data",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 83,
"src": "1126:4:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"functionReturnParameters": 36,
"id": 98,
"nodeType": "Return",
"src": "1119:11:0"
}
]
},
"documentation": null,
"id": 100,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "f",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 33,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 32,
"name": "x",
"nodeType": "VariableDeclaration",
"scope": 100,
"src": "512:6:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 31,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "512:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "511:8:0"
},
"returnParameters": {
"id": 36,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 35,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 100,
"src": "536:12:0",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 34,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "536:5:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "535:14:0"
},
"scope": 156,
"src": "501:636:0",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
},
{
"id": 103,
"libraryName": {
"contractScope": null,
"id": 101,
"name": "AddressMakePayable",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 171,
"src": "1149:18:0",
"typeDescriptions": {
"typeIdentifier": "t_contract$_AddressMakePayable_$171",
"typeString": "library AddressMakePayable"
}
},
"nodeType": "UsingForDirective",
"src": "1143:37:0",
"typeName": {
"id": 102,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1172:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
},
{
"body": {
"id": 154,
"nodeType": "Block",
"src": "1349:1394:0",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "31",
"id": 119,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1591:7:0",
"subdenomination": "ether",
"typeDescriptions": {
"typeIdentifier": "t_rational_1000000000000000000_by_1",
"typeString": "int_const 1000000000000000000"
},
"value": "1"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_rational_1000000000000000000_by_1",
"typeString": "int_const 1000000000000000000"
}
],
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 116,
"name": "otherContract",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 110,
"src": "1567:13:0",
"typeDescriptions": {
"typeIdentifier": "t_contract$_OtherContract_$18",
"typeString": "contract OtherContract"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_contract$_OtherContract_$18",
"typeString": "contract OtherContract"
}
],
"id": 115,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "1559:7:0",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": "address"
},
"id": 117,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1559:22:0",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"id": 118,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "transfer",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "1559:31:0",
"typeDescriptions": {
"typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
"typeString": "function (uint256)"
}
},
"id": 120,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1559:40:0",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 121,
"nodeType": "ExpressionStatement",
"src": "1559:40:0"
},
{
"assignments": [
123
],
"declarations": [
{
"constant": false,
"id": 123,
"name": "addr",
"nodeType": "VariableDeclaration",
"scope": 154,
"src": "2210:20:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
},
"typeName": {
"id": 122,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2210:15:0",
"stateMutability": "payable",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 127,
"initialValue": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"expression": {
"argumentTypes": null,
"id": 124,
"name": "unknownContract",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 112,
"src": "2233:15:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 125,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "makePayable",
"nodeType": "MemberAccess",
"referencedDeclaration": 170,
"src": "2233:27:0",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_address_payable_$bound_to$_t_address_$",
"typeString": "function (address) pure returns (address payable)"
}
},
"id": 126,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2233:29:0",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "2210:52:0"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "31",
"id": 131,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2290:7:0",
"subdenomination": "ether",
"typeDescriptions": {
"typeIdentifier": "t_rational_1000000000000000000_by_1",
"typeString": "int_const 1000000000000000000"
},
"value": "1"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_rational_1000000000000000000_by_1",
"typeString": "int_const 1000000000000000000"
}
],
"expression": {
"argumentTypes": null,
"id": 129,
"name": "addr",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 123,
"src": "2280:4:0",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"id": 130,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "send",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "2280:9:0",
"typeDescriptions": {
"typeIdentifier": "t_function_send_nonpayable$_t_uint256_$returns$_t_bool_$",
"typeString": "function (uint256) returns (bool)"
}
},
"id": 132,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2280:18:0",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"id": 128,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
189,
190
],
"referencedDeclaration": 189,
"src": "2272:7:0",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
"typeString": "function (bool) pure"
}
},
"id": 133,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2272:27:0",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 134,
"nodeType": "ExpressionStatement",
"src": "2272:27:0"
},
{
"assignments": [
136
],
"declarations": [
{
"constant": false,
"id": 136,
"name": "x4",
"nodeType": "VariableDeclaration",
"scope": 154,
"src": "2474:9:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 135,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "2474:6:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 140,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 138,
"name": "x",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 108,
"src": "2493:1:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes8",
"typeString": "bytes8"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes8",
"typeString": "bytes8"
}
],
"id": 137,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "2486:6:0",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes4_$",
"typeString": "type(bytes4)"
},
"typeName": "bytes4"
},
"id": 139,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2486:9:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "2474:21:0"
},
{
"assignments": [
142
],
"declarations": [
{
"constant": false,
"id": 142,
"name": "y",
"nodeType": "VariableDeclaration",
"scope": 154,
"src": "2537:8:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
},
"typeName": {
"id": 141,
"name": "uint32",
"nodeType": "ElementaryTypeName",
"src": "2537:6:0",
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 146,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 144,
"name": "x4",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 136,
"src": "2555:2:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
],
"id": 143,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "2548:6:0",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint32_$",
"typeString": "type(uint32)"
},
"typeName": "uint32"
},
"id": 145,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2548:10:0",
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "2537:21:0"
},
{
"expression": {
"argumentTypes": null,
"id": 152,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 147,
"name": "myNumber",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 22,
"src": "2711:8:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "+=",
"rightHandSide": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 151,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 148,
"name": "y",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 142,
"src": "2723:1:0",
"typeDescriptions": {
"typeIdentifier": "t_uint32",
"typeString": "uint32"
}
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 149,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 186,
"src": "2727:3:0",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 150,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "value",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "2727:9:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "2723:13:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "2711:25:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 153,
"nodeType": "ExpressionStatement",
"src": "2711:25:0"
}
]
},
"documentation": null,
"id": 155,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "g",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 113,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 106,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 155,
"src": "1245:13:0",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
"typeString": "uint256[]"
},
"typeName": {
"baseType": {
"id": 104,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "1245:4:0",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 105,
"length": null,
"nodeType": "ArrayTypeName",
"src": "1245:6:0",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[]"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 108,
"name": "x",
"nodeType": "VariableDeclaration",
"scope": 155,
"src": "1270:8:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes8",
"typeString": "bytes8"
},
"typeName": {
"id": 107,
"name": "bytes8",
"nodeType": "ElementaryTypeName",
"src": "1270:6:0",
"typeDescriptions": {
"typeIdentifier": "t_bytes8",
"typeString": "bytes8"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 110,
"name": "otherContract",
"nodeType": "VariableDeclaration",
"scope": 155,
"src": "1280:27:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_contract$_OtherContract_$18",
"typeString": "contract OtherContract"
},
"typeName": {
"contractScope": null,
"id": 109,
"name": "OtherContract",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 18,
"src": "1280:13:0",
"typeDescriptions": {
"typeIdentifier": "t_contract$_OtherContract_$18",
"typeString": "contract OtherContract"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 112,
"name": "unknownContract",
"nodeType": "VariableDeclaration",
"scope": 155,
"src": "1309:23:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 111,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1309:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1244:89:0"
},
"returnParameters": {
"id": 114,
"nodeType": "ParameterList",
"parameters": [],
"src": "1349:0:0"
},
"scope": 156,
"src": "1234:1509:0",
"stateMutability": "payable",
"superFunction": null,
"visibility": "public"
}
],
"scope": 172,
"src": "228:2517:0"
},
{
"baseContracts": [],
"contractDependencies": [],
"contractKind": "library",
"documentation": null,
"fullyImplemented": true,
"id": 171,
"linearizedBaseContracts": [
171
],
"name": "AddressMakePayable",
"nodeType": "ContractDefinition",
"nodes": [
{
"body": {
"id": 169,
"nodeType": "Block",
"src": "2960:43:0",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 165,
"name": "x",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 158,
"src": "2993:1:0",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 164,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "2985:7:0",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint160_$",
"typeString": "type(uint160)"
},
"typeName": "uint160"
},
"id": 166,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2985:10:0",
"typeDescriptions": {
"typeIdentifier": "t_uint160",
"typeString": "uint160"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint160",
"typeString": "uint160"
}
],
"id": 163,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "2977:7:0",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": "address"
},
"id": 167,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2977:19:0",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"functionReturnParameters": 162,
"id": 168,
"nodeType": "Return",
"src": "2970:26:0"
}
]
},
"documentation": null,
"id": 170,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "makePayable",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 159,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 158,
"name": "x",
"nodeType": "VariableDeclaration",
"scope": 170,
"src": "2909:9:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 157,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2909:7:0",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2908:11:0"
},
"returnParameters": {
"id": 162,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 161,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 170,
"src": "2943:15:0",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
},
"typeName": {
"id": 160,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2943:15:0",
"stateMutability": "payable",
"typeDescriptions": {
"typeIdentifier": "t_address_payable",
"typeString": "address payable"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2942:17:0"
},
"scope": 171,
"src": "2888:115:0",
"stateMutability": "pure",
"superFunction": null,
"visibility": "internal"
}
],
"scope": 172,
"src": "2855:150:0"
}
],
"src": "36:2969:0"
},
"id": 0
}
}
}
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"goerli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"linkReferences": {},
"object": "608060405234801561001057600080fd5b5061031a806100206000396000f3fe6080604052600436106100295760003560e01c8063b3de648b1461002e578063b4f2b3d9146100cd575b600080fd5b34801561003a57600080fd5b506100586004803603602081101561005157600080fd5b5035610193565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561009257818101518382015260200161007a565b50505050905090810190601f1680156100bf5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610191600480360360808110156100e357600080fd5b8101906020810181356401000000008111156100fe57600080fd5b82018360208201111561011057600080fd5b8035906020019184602083028401116401000000008311171561013257600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550506001600160c01b03198335169350506001600160a01b03602083013581169260400135169050610243565b005b6060600061019f6102dd565b92830192905060648311156101b357600080fd5b6001195b600184019350600b84106101b7576000805460408051603360f91b815290516060926001600160a01b0316916001818101928692909190829003018183865af19150503d8060008114610226576040519150601f19603f3d011682016040523d82523d6000602084013e61022b565b606091505b50915091508161023a57600080fd5b95945050505050565b6040516001600160a01b03831690600090670de0b6b3a76400009082818181858883f1935050505015801561027c573d6000803e3d6000fd5b506000610291826001600160a01b03166102e2565b6040519091506001600160a01b03821690600090670de0b6b3a76400009082818181858883f193505050506102c557600080fd5b50506001805460e09390931c34019092019091555050565b600290565b9056fea265627a7a7231582014dcfbbad2b41d6530f2e238ff3c9273eb3ec3806df93ea3d910d5bdf006c85664736f6c63430005110032",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x31A DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x29 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xB3DE648B EQ PUSH2 0x2E JUMPI DUP1 PUSH4 0xB4F2B3D9 EQ PUSH2 0xCD JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x58 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x51 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH2 0x193 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x92 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x7A JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0xBF JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x191 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x80 DUP2 LT ISZERO PUSH2 0xE3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 PUSH1 0x20 DUP2 ADD DUP2 CALLDATALOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0xFE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x110 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x132 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP SWAP3 SWAP6 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xC0 SHL SUB NOT DUP4 CALLDATALOAD AND SWAP4 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH1 0x20 DUP4 ADD CALLDATALOAD DUP2 AND SWAP3 PUSH1 0x40 ADD CALLDATALOAD AND SWAP1 POP PUSH2 0x243 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x19F PUSH2 0x2DD JUMP JUMPDEST SWAP3 DUP4 ADD SWAP3 SWAP1 POP PUSH1 0x64 DUP4 GT ISZERO PUSH2 0x1B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 NOT JUMPDEST PUSH1 0x1 DUP5 ADD SWAP4 POP PUSH1 0xB DUP5 LT PUSH2 0x1B7 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x33 PUSH1 0xF9 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x60 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH1 0x1 DUP2 DUP2 ADD SWAP3 DUP7 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x226 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x22B JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x23A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH1 0x0 SWAP1 PUSH8 0xDE0B6B3A7640000 SWAP1 DUP3 DUP2 DUP2 DUP2 DUP6 DUP9 DUP4 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x27C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x0 PUSH2 0x291 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x2E2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH1 0x0 SWAP1 PUSH8 0xDE0B6B3A7640000 SWAP1 DUP3 DUP2 DUP2 DUP2 DUP6 DUP9 DUP4 CALL SWAP4 POP POP POP POP PUSH2 0x2C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP PUSH1 0x1 DUP1 SLOAD PUSH1 0xE0 SWAP4 SWAP1 SWAP4 SHR CALLVALUE ADD SWAP1 SWAP3 ADD SWAP1 SWAP2 SSTORE POP POP JUMP JUMPDEST PUSH1 0x2 SWAP1 JUMP JUMPDEST SWAP1 JUMP INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 EQ 0xDC 0xFB 0xBA 0xD2 0xB4 SAR PUSH6 0x30F2E238FF3C SWAP3 PUSH20 0xEB3EC3806DF93EA3D910D5BDF006C85664736F6C PUSH4 0x43000511 STOP ORIGIN ",
"sourceMap": "228:2517:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;228:2517:0;;;;;;;"
},
"deployedBytecode": {
"linkReferences": {},
"object": "6080604052600436106100295760003560e01c8063b3de648b1461002e578063b4f2b3d9146100cd575b600080fd5b34801561003a57600080fd5b506100586004803603602081101561005157600080fd5b5035610193565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561009257818101518382015260200161007a565b50505050905090810190601f1680156100bf5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610191600480360360808110156100e357600080fd5b8101906020810181356401000000008111156100fe57600080fd5b82018360208201111561011057600080fd5b8035906020019184602083028401116401000000008311171561013257600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550506001600160c01b03198335169350506001600160a01b03602083013581169260400135169050610243565b005b6060600061019f6102dd565b92830192905060648311156101b357600080fd5b6001195b600184019350600b84106101b7576000805460408051603360f91b815290516060926001600160a01b0316916001818101928692909190829003018183865af19150503d8060008114610226576040519150601f19603f3d011682016040523d82523d6000602084013e61022b565b606091505b50915091508161023a57600080fd5b95945050505050565b6040516001600160a01b03831690600090670de0b6b3a76400009082818181858883f1935050505015801561027c573d6000803e3d6000fd5b506000610291826001600160a01b03166102e2565b6040519091506001600160a01b03821690600090670de0b6b3a76400009082818181858883f193505050506102c557600080fd5b50506001805460e09390931c34019092019091555050565b600290565b9056fea265627a7a7231582014dcfbbad2b41d6530f2e238ff3c9273eb3ec3806df93ea3d910d5bdf006c85664736f6c63430005110032",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x29 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xB3DE648B EQ PUSH2 0x2E JUMPI DUP1 PUSH4 0xB4F2B3D9 EQ PUSH2 0xCD JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x58 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH2 0x51 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH2 0x193 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP4 MLOAD DUP2 DUP4 ADD MSTORE DUP4 MLOAD SWAP2 SWAP3 DUP4 SWAP3 SWAP1 DUP4 ADD SWAP2 DUP6 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x92 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x7A JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 DUP2 ADD SWAP1 PUSH1 0x1F AND DUP1 ISZERO PUSH2 0xBF JUMPI DUP1 DUP3 SUB DUP1 MLOAD PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB NOT AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP JUMPDEST POP SWAP3 POP POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x191 PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x80 DUP2 LT ISZERO PUSH2 0xE3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 ADD SWAP1 PUSH1 0x20 DUP2 ADD DUP2 CALLDATALOAD PUSH5 0x100000000 DUP2 GT ISZERO PUSH2 0xFE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP4 PUSH1 0x20 DUP3 ADD GT ISZERO PUSH2 0x110 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD SWAP1 PUSH1 0x20 ADD SWAP2 DUP5 PUSH1 0x20 DUP4 MUL DUP5 ADD GT PUSH5 0x100000000 DUP4 GT OR ISZERO PUSH2 0x132 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 DUP1 DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 PUSH1 0x20 MUL DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP SWAP3 SWAP6 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xC0 SHL SUB NOT DUP4 CALLDATALOAD AND SWAP4 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB PUSH1 0x20 DUP4 ADD CALLDATALOAD DUP2 AND SWAP3 PUSH1 0x40 ADD CALLDATALOAD AND SWAP1 POP PUSH2 0x243 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x19F PUSH2 0x2DD JUMP JUMPDEST SWAP3 DUP4 ADD SWAP3 SWAP1 POP PUSH1 0x64 DUP4 GT ISZERO PUSH2 0x1B3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 NOT JUMPDEST PUSH1 0x1 DUP5 ADD SWAP4 POP PUSH1 0xB DUP5 LT PUSH2 0x1B7 JUMPI PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x33 PUSH1 0xF9 SHL DUP2 MSTORE SWAP1 MLOAD PUSH1 0x60 SWAP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP2 PUSH1 0x1 DUP2 DUP2 ADD SWAP3 DUP7 SWAP3 SWAP1 SWAP2 SWAP1 DUP3 SWAP1 SUB ADD DUP2 DUP4 DUP7 GAS CALL SWAP2 POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x226 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x22B JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP2 PUSH2 0x23A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 PUSH1 0x0 SWAP1 PUSH8 0xDE0B6B3A7640000 SWAP1 DUP3 DUP2 DUP2 DUP2 DUP6 DUP9 DUP4 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x27C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x0 PUSH2 0x291 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH2 0x2E2 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH1 0x0 SWAP1 PUSH8 0xDE0B6B3A7640000 SWAP1 DUP3 DUP2 DUP2 DUP2 DUP6 DUP9 DUP4 CALL SWAP4 POP POP POP POP PUSH2 0x2C5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP PUSH1 0x1 DUP1 SLOAD PUSH1 0xE0 SWAP4 SWAP1 SWAP4 SHR CALLVALUE ADD SWAP1 SWAP3 ADD SWAP1 SWAP2 SSTORE POP POP JUMP JUMPDEST PUSH1 0x2 SWAP1 JUMP JUMPDEST SWAP1 JUMP INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 EQ 0xDC 0xFB 0xBA 0xD2 0xB4 SAR PUSH6 0x30F2E238FF3C SWAP3 PUSH20 0xEB3EC3806DF93EA3D910D5BDF006C85664736F6C PUSH4 0x43000511 STOP ORIGIN ",
"sourceMap": "228:2517:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;501:636;;8:9:-1;5:2;;;30:1;27;20:12;5:2;501:636:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;501:636:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;501:636:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1234:1509;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;1234:1509:0;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;1234:1509:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1234:1509:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;1234:1509:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;1234:1509:0;;-1:-1:-1;;;;;;;;1234:1509:0;;;;-1:-1:-1;;;;;;;1234:1509:0;;;;;;;;;;;;-1:-1:-1;1234:1509:0;:::i;:::-;;501:636;536:12;610:6;619:13;:11;:13::i;:::-;642:6;;;;610:22;-1:-1:-1;707:3:0;702:8;;;694:17;;;;;;-1:-1:-1;;746:16:0;794:1;789:6;;;;908:2;904:1;:6;772:140;;1006:12;1049:5;;1041:24;;;-1:-1:-1;;;1041:24:0;;;;1020:17;;-1:-1:-1;;;;;1049:5:0;;;1041:24;;;;1006:12;;1041:24;;;;;;;;1006:12;1049:5;1041:24;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;1005:60:0;;;;1080:7;1075:34;;1101:8;;;1075:34;1126:4;501:636;-1:-1:-1;;;;;501:636:0:o;1234:1509::-;1559:40;;-1:-1:-1;;;;;1559:31:0;;;:40;;1591:7;;1559:40;;;;1591:7;1559:31;:40;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1559:40:0;2210:20;2233:29;:15;-1:-1:-1;;;;;2233:27:0;;:29::i;:::-;2280:18;;2210:52;;-1:-1:-1;;;;;;2280:9:0;;;:18;;2290:7;;2280:18;;;;2290:7;2280:9;:18;;;;;;;2272:27;;;;;;-1:-1:-1;;2711:8:0;:25;;2548:10;;;;;2727:9;2723:13;2711:25;;;;;;-1:-1:-1;;1234:1509:0:o;338:65::-;399:1;338:65;:::o;2888:115::-;2993:1;2888:115::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "158800",
"executionCost": "202",
"totalCost": "159002"
},
"external": {
"f(uint256)": "infinite",
"g(uint256[],bytes8,address,address)": "infinite"
},
"internal": {
"someInteger()": "15"
}
},
"methodIdentifiers": {
"f(uint256)": "b3de648b",
"g(uint256[],bytes8,address,address)": "b4f2b3d9"
}
},
"abi": [
{
"constant": false,
"inputs": [
{
"internalType": "uint256",
"name": "x",
"type": "uint256"
}
],
"name": "f",
"outputs": [
{
"internalType": "bytes",
"name": "",
"type": "bytes"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "uint256[]",
"name": "",
"type": "uint256[]"
},
{
"internalType": "bytes8",
"name": "x",
"type": "bytes8"
},
{
"internalType": "contract OtherContract",
"name": "otherContract",
"type": "address"
},
{
"internalType": "address",
"name": "unknownContract",
"type": "address"
}
],
"name": "g",
"outputs": [],
"payable": true,
"stateMutability": "payable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.5.17+commit.d19bba13"
},
"language": "Solidity",
"output": {
"abi": [
{
"constant": false,
"inputs": [
{
"internalType": "uint256",
"name": "x",
"type": "uint256"
}
],
"name": "f",
"outputs": [
{
"internalType": "bytes",
"name": "",
"type": "bytes"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "uint256[]",
"name": "",
"type": "uint256[]"
},
{
"internalType": "bytes8",
"name": "x",
"type": "bytes8"
},
{
"internalType": "contract OtherContract",
"name": "otherContract",
"type": "address"
},
{
"internalType": "address",
"name": "unknownContract",
"type": "address"
}
],
"name": "g",
"outputs": [],
"payable": true,
"stateMutability": "payable",
"type": "function"
}
],
"devdoc": {
"methods": {}
},
"userdoc": {
"methods": {}
}
},
"settings": {
"compilationTarget": {
"contract-2ae49825ba.sol": "New"
},
"evmVersion": "istanbul",
"libraries": {},
"optimizer": {
"enabled": true,
"runs": 200
},
"remappings": []
},
"sources": {
"contract-2ae49825ba.sol": {
"keccak256": "0xc92105a99123e8d29896b45ce9b7ee07d28f8e83637b958ccf2806db73efe7d7",
"urls": [
"bzz-raw://7a5225a0ac9d2b053d1b9f070a4ef408afdad8c4b54d1aab7929ae494cafa22b",
"dweb:/ipfs/QmSHbAW3PTq4i231S84x1WFpChAVBGb2wmNfovkCfaa43J"
]
}
},
"version": 1
}
{
"deploy": {
"VM:-": {
"linkReferences": {},
"autoDeployLib": true
},
"main:1": {
"linkReferences": {},
"autoDeployLib": true
},
"ropsten:3": {
"linkReferences": {},
"autoDeployLib": true
},
"rinkeby:4": {
"linkReferences": {},
"autoDeployLib": true
},
"kovan:42": {
"linkReferences": {},
"autoDeployLib": true
},
"goerli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"linkReferences": {},
"object": "6080604052348015600f57600080fd5b50607a8061001e6000396000f3fe608060405260043610601c5760003560e01c8063b3de648b14601e575b005b348015602957600080fd5b50601c60048036036020811015603e57600080fd5b503560005556fea265627a7a723158206abed810bba59707b8bb58669d6736327c466f35f7322adc056d86b99558e76e64736f6c63430005110032",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x7A DUP1 PUSH2 0x1E PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x1C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xB3DE648B EQ PUSH1 0x1E JUMPI JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x29 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1C PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH1 0x3E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH1 0x0 SSTORE JUMP INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 PUSH11 0xBED810BBA59707B8BB5866 SWAP14 PUSH8 0x36327C466F35F732 0x2A 0xDC SDIV PUSH14 0x86B99558E76E64736F6C63430005 GT STOP ORIGIN ",
"sourceMap": "98:128:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;98:128:0;;;;;;;"
},
"deployedBytecode": {
"linkReferences": {},
"object": "608060405260043610601c5760003560e01c8063b3de648b14601e575b005b348015602957600080fd5b50601c60048036036020811015603e57600080fd5b503560005556fea265627a7a723158206abed810bba59707b8bb58669d6736327c466f35f7322adc056d86b99558e76e64736f6c63430005110032",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x1C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xB3DE648B EQ PUSH1 0x1E JUMPI JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH1 0x29 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x1C PUSH1 0x4 DUP1 CALLDATASIZE SUB PUSH1 0x20 DUP2 LT ISZERO PUSH1 0x3E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD PUSH1 0x0 SSTORE JUMP INVALID LOG2 PUSH6 0x627A7A723158 KECCAK256 PUSH11 0xBED810BBA59707B8BB5866 SWAP14 PUSH8 0x36327C466F35F732 0x2A 0xDC SDIV PUSH14 0x86B99558E76E64736F6C63430005 GT STOP ORIGIN ",
"sourceMap": "98:128:0:-;;;;;;;;;;;;;;;;;;;139:50;;8:9:-1;5:2;;;30:1;27;20:12;5:2;139:50:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;139:50:0;177:1;:5;139:50::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "24400",
"executionCost": "75",
"totalCost": "24475"
},
"external": {
"": "74",
"f(uint256)": "20155"
}
},
"methodIdentifiers": {
"f(uint256)": "b3de648b"
}
},
"abi": [
{
"payable": true,
"stateMutability": "payable",
"type": "fallback"
},
{
"constant": false,
"inputs": [
{
"internalType": "uint256",
"name": "y",
"type": "uint256"
}
],
"name": "f",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.5.17+commit.d19bba13"
},
"language": "Solidity",
"output": {
"abi": [
{
"payable": true,
"stateMutability": "payable",
"type": "fallback"
},
{
"constant": false,
"inputs": [
{
"internalType": "uint256",
"name": "y",
"type": "uint256"
}
],
"name": "f",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"methods": {}
},
"userdoc": {
"methods": {}
}
},
"settings": {
"compilationTarget": {
"contract-2ae49825ba.sol": "OtherContract"
},
"evmVersion": "istanbul",
"libraries": {},
"optimizer": {
"enabled": true,
"runs": 200
},
"remappings": []
},
"sources": {
"contract-2ae49825ba.sol": {
"keccak256": "0xc92105a99123e8d29896b45ce9b7ee07d28f8e83637b958ccf2806db73efe7d7",
"urls": [
"bzz-raw://7a5225a0ac9d2b053d1b9f070a4ef408afdad8c4b54d1aab7929ae494cafa22b",
"dweb:/ipfs/QmSHbAW3PTq4i231S84x1WFpChAVBGb2wmNfovkCfaa43J"
]
}
},
"version": 1
}
{
"language": "Solidity",
"settings": {
"optimizer": {
"enabled": true,
"runs": 200
},
"outputSelection": {
"*": {
"": ["ast"],
"*": ["abi", "metadata", "devdoc", "userdoc", "storageLayout", "evm.legacyAssembly", "evm.bytecode", "evm.deployedBytecode", "evm.methodIdentifiers", "evm.gasEstimates", "evm.assembly"]
}
}
}
}
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.5.0;
// This will not compile after 0.6.0
contract OtherContract {
uint x;
function f(uint y) external {
x = y;
}
function() payable external {}
}
contract New {
OtherContract other;
uint myNumber;
// Function mutability must be specified.
function someInteger() internal pure returns (uint) { return 2; }
// Function visibility must be specified.
// Function mutability must be specified.
function f(uint x) public returns (bytes memory) {
// The type must now be explicitly given.
uint z = someInteger();
x += z;
// Throw is now disallowed.
require(x <= 100);
int y = -3 >> 1;
require(y == -2);
do {
x += 1;
if (x > 10) continue;
// 'Continue' jumps to the condition below.
} while (x < 11);
// Call returns (bool, bytes).
// Data location must be specified.
(bool success, bytes memory data) = address(other).call("f");
if (!success)
revert();
return data;
}
using AddressMakePayable for address;
// Data location for 'arr' must be specified
function g(uint[] memory /* arr */, bytes8 x, OtherContract otherContract, address unknownContract) public payable {
// 'otherContract.transfer' is not provided.
// Since the code of 'OtherContract' is known and has the fallback
// function, address(otherContract) has type 'address payable'.
address(otherContract).transfer(1 ether);
// 'unknownContract.transfer' is not provided.
// 'address(unknownContract).transfer' is not provided
// since 'address(unknownContract)' is not 'address payable'.
// If the function takes an 'address' which you want to send
// funds to, you can convert it to 'address payable' via 'uint160'.
// Note: This is not recommended and the explicit type
// 'address payable' should be used whenever possible.
// To increase clarity, we suggest the use of a library for
// the conversion (provided after the contract in this example).
address payable addr = unknownContract.makePayable();
require(addr.send(1 ether));
// Since uint32 (4 bytes) is smaller than bytes8 (8 bytes),
// the conversion is not allowed.
// We need to convert to a common size first:
bytes4 x4 = bytes4(x); // Padding happens on the right
uint32 y = uint32(x4); // Conversion is consistent
// 'msg.value' cannot be used in a 'non-payable' function.
// We need to make the function payable
myNumber += y + msg.value;
}
}
// We can define a library for explicitly converting ``address``
// to ``address payable`` as a workaround.
library AddressMakePayable {
function makePayable(address x) internal pure returns (address payable) {
return address(uint160(x));
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment