Skip to content

Instantly share code, notes, and snippets.

@aviexk
Created July 24, 2021 10:01
Show Gist options
  • Save aviexk/8eee7e21f53e0deae15132a94f809b61 to your computer and use it in GitHub Desktop.
Save aviexk/8eee7e21f53e0deae15132a94f809b61 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.8.6+commit.11564f7e.js&optimize=false&runs=200&gist=
REMIX EXAMPLE PROJECT
Remix example project is present when Remix loads very first time or there are no files existing in the File Explorer.
It contains 3 directories:
1. 'contracts': Holds three contracts with different complexity level, denoted with number prefix in file name.
2. 'scripts': Holds two scripts to deploy a contract. It is explained below.
3. 'tests': Contains one test file for 'Ballot' contract with unit tests in Solidity.
SCRIPTS
The 'scripts' folder contains example async/await scripts for deploying the 'Storage' contract.
For the deployment of any other contract, 'contractName' and 'constructorArgs' should be updated (along with other code if required).
Scripts have full access to the web3.js and ethers.js libraries.
To run a script, right click on file name in the file explorer and click 'Run'. Remember, Solidity file must already be compiled.
Output from script will appear in remix terminal.
// SPDX-License-Identifier: GPL-3.0
pragma solidity 0.8.1;
contract AddressExample {
address public myAddress;
function setAddress(address _myAddress) public {
myAddress = _myAddress;
}
function getBalanceOfAccount() public view returns(uint) {
return myAddress.balance;
}
}
{
"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
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"generatedSources": [],
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50610260806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806326b85ee114610046578063dee6060714610064578063e30081a014610082575b600080fd5b61004e61009e565b60405161005b91906101a1565b60405180910390f35b61006c6100c2565b60405161007991906101bc565b60405180910390f35b61009c6004803603810190610097919061015a565b610102565b005b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1631905090565b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008135905061015481610213565b92915050565b60006020828403121561016c57600080fd5b600061017a84828501610145565b91505092915050565b61018c816101d7565b82525050565b61019b81610209565b82525050565b60006020820190506101b66000830184610183565b92915050565b60006020820190506101d16000830184610192565b92915050565b60006101e2826101e9565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b61021c816101d7565b811461022757600080fd5b5056fea26469706673582212202a00e3fd2c8e01457a9c548fc763cab2a27d854cf4cdbfd1b978487c98235ca564736f6c63430008010033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x260 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x26B85EE1 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0xDEE60607 EQ PUSH2 0x64 JUMPI DUP1 PUSH4 0xE30081A0 EQ PUSH2 0x82 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x9E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x1A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x6C PUSH2 0xC2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x79 SWAP2 SWAP1 PUSH2 0x1BC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x9C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x97 SWAP2 SWAP1 PUSH2 0x15A JUMP JUMPDEST PUSH2 0x102 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND BALANCE SWAP1 POP SWAP1 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x154 DUP2 PUSH2 0x213 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x17A DUP5 DUP3 DUP6 ADD PUSH2 0x145 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x18C DUP2 PUSH2 0x1D7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x19B DUP2 PUSH2 0x209 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1B6 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x183 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1D1 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x192 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E2 DUP3 PUSH2 0x1E9 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x21C DUP2 PUSH2 0x1D7 JUMP JUMPDEST DUP2 EQ PUSH2 0x227 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2A STOP 0xE3 REVERT 0x2C DUP15 ADD GASLIMIT PUSH27 0x9C548FC763CAB2A27D854CF4CDBFD1B978487C98235CA564736F6C PUSH4 0x43000801 STOP CALLER ",
"sourceMap": "60:261:0:-:0;;;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:1566:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "59:87:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "69:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "91:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "78:12:1"
},
"nodeType": "YulFunctionCall",
"src": "78:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "69:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "134:5:1"
}
],
"functionName": {
"name": "validator_revert_t_address",
"nodeType": "YulIdentifier",
"src": "107:26:1"
},
"nodeType": "YulFunctionCall",
"src": "107:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "107:33:1"
}
]
},
"name": "abi_decode_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "37:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "45:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "53:5:1",
"type": ""
}
],
"src": "7:139:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "218:196:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "264:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "273:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "276:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "266:6:1"
},
"nodeType": "YulFunctionCall",
"src": "266:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "266:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "239:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "248:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "235:3:1"
},
"nodeType": "YulFunctionCall",
"src": "235:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "260:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "231:3:1"
},
"nodeType": "YulFunctionCall",
"src": "231:32:1"
},
"nodeType": "YulIf",
"src": "228:2:1"
},
{
"nodeType": "YulBlock",
"src": "290:117:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "305:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "319:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "309:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "334:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "369:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "380:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "365:3:1"
},
"nodeType": "YulFunctionCall",
"src": "365:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "389:7:1"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "344:20:1"
},
"nodeType": "YulFunctionCall",
"src": "344:53:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "334:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "188:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "199:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "211:6:1",
"type": ""
}
],
"src": "152:262:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "485:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "502:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "525:5:1"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "507:17:1"
},
"nodeType": "YulFunctionCall",
"src": "507:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "495:6:1"
},
"nodeType": "YulFunctionCall",
"src": "495:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "495:37:1"
}
]
},
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "473:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "480:3:1",
"type": ""
}
],
"src": "420:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "609:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "626:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "649:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "631:17:1"
},
"nodeType": "YulFunctionCall",
"src": "631:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "619:6:1"
},
"nodeType": "YulFunctionCall",
"src": "619:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "619:37:1"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "597:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "604:3:1",
"type": ""
}
],
"src": "544:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "766:124:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "776:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "788:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "799:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "784:3:1"
},
"nodeType": "YulFunctionCall",
"src": "784:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "776:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "856:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "869:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "880:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "865:3:1"
},
"nodeType": "YulFunctionCall",
"src": "865:17:1"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "812:43:1"
},
"nodeType": "YulFunctionCall",
"src": "812:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "812:71:1"
}
]
},
"name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "738:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "750:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "761:4:1",
"type": ""
}
],
"src": "668:222:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "994:124:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1004:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1016:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1027:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1012:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1012:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1004:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1084:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1097:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1108:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1093:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1093:17:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "1040:43:1"
},
"nodeType": "YulFunctionCall",
"src": "1040:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "1040:71:1"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "966:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "978:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "989:4:1",
"type": ""
}
],
"src": "896:222:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1169:51:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1179:35:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1208:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "1190:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1190:24:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "1179:7:1"
}
]
}
]
},
"name": "cleanup_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1151:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "1161:7:1",
"type": ""
}
],
"src": "1124:96:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1271:81:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1281:65:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1296:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1303:42:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "1292:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1292:54:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "1281:7:1"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1253:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "1263:7:1",
"type": ""
}
],
"src": "1226:126:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1403:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1413:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "1424:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "1413:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1385:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "1395:7:1",
"type": ""
}
],
"src": "1358:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1484:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1541:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1550:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1553:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1543:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1543:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "1543:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1507:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1532:5:1"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "1514:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1514:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "1504:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1504:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "1497:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1497:43:1"
},
"nodeType": "YulIf",
"src": "1494:2:1"
}
]
},
"name": "validator_revert_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1477:5:1",
"type": ""
}
],
"src": "1441:122:1"
}
]
},
"contents": "{\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50600436106100415760003560e01c806326b85ee114610046578063dee6060714610064578063e30081a014610082575b600080fd5b61004e61009e565b60405161005b91906101a1565b60405180910390f35b61006c6100c2565b60405161007991906101bc565b60405180910390f35b61009c6004803603810190610097919061015a565b610102565b005b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1631905090565b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008135905061015481610213565b92915050565b60006020828403121561016c57600080fd5b600061017a84828501610145565b91505092915050565b61018c816101d7565b82525050565b61019b81610209565b82525050565b60006020820190506101b66000830184610183565b92915050565b60006020820190506101d16000830184610192565b92915050565b60006101e2826101e9565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b61021c816101d7565b811461022757600080fd5b5056fea26469706673582212202a00e3fd2c8e01457a9c548fc763cab2a27d854cf4cdbfd1b978487c98235ca564736f6c63430008010033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x26B85EE1 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0xDEE60607 EQ PUSH2 0x64 JUMPI DUP1 PUSH4 0xE30081A0 EQ PUSH2 0x82 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x9E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x1A1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x6C PUSH2 0xC2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x79 SWAP2 SWAP1 PUSH2 0x1BC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x9C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x97 SWAP2 SWAP1 PUSH2 0x15A JUMP JUMPDEST PUSH2 0x102 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND BALANCE SWAP1 POP SWAP1 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x154 DUP2 PUSH2 0x213 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x16C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x17A DUP5 DUP3 DUP6 ADD PUSH2 0x145 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x18C DUP2 PUSH2 0x1D7 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x19B DUP2 PUSH2 0x209 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1B6 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x183 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1D1 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x192 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E2 DUP3 PUSH2 0x1E9 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x21C DUP2 PUSH2 0x1D7 JUMP JUMPDEST DUP2 EQ PUSH2 0x227 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2A STOP 0xE3 REVERT 0x2C DUP15 ADD GASLIMIT PUSH27 0x9C548FC763CAB2A27D854CF4CDBFD1B978487C98235CA564736F6C PUSH4 0x43000801 STOP CALLER ",
"sourceMap": "60:261:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;90:24;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;221:98;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;125:86;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;90:24;;;;;;;;;;;;:::o;221:98::-;272:4;295:9;;;;;;;;;;;:17;;;288:24;;221:98;:::o;125:86::-;194:10;182:9;;:22;;;;;;;;;;;;;;;;;;125:86;:::o;7:139:1:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:262::-;;260:2;248:9;239:7;235:23;231:32;228:2;;;276:1;273;266:12;228:2;319:1;344:53;389:7;380:6;369:9;365:22;344:53;:::i;:::-;334:63;;290:117;218:196;;;;:::o;420:118::-;507:24;525:5;507:24;:::i;:::-;502:3;495:37;485:53;;:::o;544:118::-;631:24;649:5;631:24;:::i;:::-;626:3;619:37;609:53;;:::o;668:222::-;;799:2;788:9;784:18;776:26;;812:71;880:1;869:9;865:17;856:6;812:71;:::i;:::-;766:124;;;;:::o;896:222::-;;1027:2;1016:9;1012:18;1004:26;;1040:71;1108:1;1097:9;1093:17;1084:6;1040:71;:::i;:::-;994:124;;;;:::o;1124:96::-;;1190:24;1208:5;1190:24;:::i;:::-;1179:35;;1169:51;;;:::o;1226:126::-;;1303:42;1296:5;1292:54;1281:65;;1271:81;;;:::o;1358:77::-;;1424:5;1413:16;;1403:32;;;:::o;1441:122::-;1514:24;1532:5;1514:24;:::i;:::-;1507:5;1504:35;1494:2;;1553:1;1550;1543:12;1494:2;1484:79;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "121600",
"executionCost": "165",
"totalCost": "121765"
},
"external": {
"getBalanceOfAccount()": "1879",
"myAddress()": "1189",
"setAddress(address)": "21344"
}
},
"methodIdentifiers": {
"getBalanceOfAccount()": "dee60607",
"myAddress()": "26b85ee1",
"setAddress(address)": "e30081a0"
}
},
"abi": [
{
"inputs": [],
"name": "getBalanceOfAccount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "myAddress",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_myAddress",
"type": "address"
}
],
"name": "setAddress",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.1+commit.df193b15"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"name": "getBalanceOfAccount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "myAddress",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_myAddress",
"type": "address"
}
],
"name": "setAddress",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"AddressExample.sol": "AddressExample"
},
"evmVersion": "istanbul",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"AddressExample.sol": {
"keccak256": "0x0503c6f97a16bcd7604695bddf6a8dba6679c4e1a6cca1ba33218e28a28470b8",
"license": "GPL-3.0",
"urls": [
"bzz-raw://b09bdb5ffb8e23a9256399d796bb1ed01a1472b494565bb5d86168ac38d4af93",
"dweb:/ipfs/Qme14fAdLWzxVgV6y2MexiKcFbUYWGh56oFKEKtFw2gbjU"
]
}
},
"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
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"generatedSources": [],
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50610163806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80636deecdbe1461003b578063eb1b30d914610059575b600080fd5b610043610075565b60405161005091906100ef565b60405180910390f35b610073600480360381019061006e91906100b7565b610086565b005b60008054906101000a900460ff1681565b806000806101000a81548160ff02191690831515021790555050565b6000813590506100b181610116565b92915050565b6000602082840312156100c957600080fd5b60006100d7848285016100a2565b91505092915050565b6100e98161010a565b82525050565b600060208201905061010460008301846100e0565b92915050565b60008115159050919050565b61011f8161010a565b811461012a57600080fd5b5056fea2646970667358221220a8245e9f0dbc28437dc0d86645b0e29e3c1c8dd9780a0a793d95f987ad0407d564736f6c63430008040033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x163 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6DEECDBE EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0xEB1B30D9 EQ PUSH2 0x59 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x75 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x50 SWAP2 SWAP1 PUSH2 0xEF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x73 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x6E SWAP2 SWAP1 PUSH2 0xB7 JUMP JUMPDEST PUSH2 0x86 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xB1 DUP2 PUSH2 0x116 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xD7 DUP5 DUP3 DUP6 ADD PUSH2 0xA2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xE9 DUP2 PUSH2 0x10A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x104 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xE0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x11F DUP2 PUSH2 0x10A JUMP JUMPDEST DUP2 EQ PUSH2 0x12A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xA8 0x24 0x5E SWAP16 0xD 0xBC 0x28 NUMBER PUSH30 0xC0D86645B0E29E3C1C8DD9780A0A793D95F987AD0407D564736F6C634300 ADDMOD DIV STOP CALLER ",
"sourceMap": "62:140:0:-:0;;;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:954:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "56:84:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "66:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "88:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "75:12:1"
},
"nodeType": "YulFunctionCall",
"src": "75:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "66:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "128:5:1"
}
],
"functionName": {
"name": "validator_revert_t_bool",
"nodeType": "YulIdentifier",
"src": "104:23:1"
},
"nodeType": "YulFunctionCall",
"src": "104:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "104:30:1"
}
]
},
"name": "abi_decode_t_bool",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "34:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "42:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "50:5:1",
"type": ""
}
],
"src": "7:133:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "209:193:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "255:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "264:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "267:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "257:6:1"
},
"nodeType": "YulFunctionCall",
"src": "257:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "257:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "230:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "239:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "226:3:1"
},
"nodeType": "YulFunctionCall",
"src": "226:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "251:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "222:3:1"
},
"nodeType": "YulFunctionCall",
"src": "222:32:1"
},
"nodeType": "YulIf",
"src": "219:2:1"
},
{
"nodeType": "YulBlock",
"src": "281:114:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "296:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "310:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "300:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "325:60:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "357:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "368:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "353:3:1"
},
"nodeType": "YulFunctionCall",
"src": "353:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "377:7:1"
}
],
"functionName": {
"name": "abi_decode_t_bool",
"nodeType": "YulIdentifier",
"src": "335:17:1"
},
"nodeType": "YulFunctionCall",
"src": "335:50:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "325:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_bool",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "179:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "190:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "202:6:1",
"type": ""
}
],
"src": "146:256:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "467:50:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "484:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "504:5:1"
}
],
"functionName": {
"name": "cleanup_t_bool",
"nodeType": "YulIdentifier",
"src": "489:14:1"
},
"nodeType": "YulFunctionCall",
"src": "489:21:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "477:6:1"
},
"nodeType": "YulFunctionCall",
"src": "477:34:1"
},
"nodeType": "YulExpressionStatement",
"src": "477:34:1"
}
]
},
"name": "abi_encode_t_bool_to_t_bool_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "455:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "462:3:1",
"type": ""
}
],
"src": "408:109:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "615:118:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "625:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "637:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "648:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "633:3:1"
},
"nodeType": "YulFunctionCall",
"src": "633:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "625:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "699:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "712:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "723:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "708:3:1"
},
"nodeType": "YulFunctionCall",
"src": "708:17:1"
}
],
"functionName": {
"name": "abi_encode_t_bool_to_t_bool_fromStack",
"nodeType": "YulIdentifier",
"src": "661:37:1"
},
"nodeType": "YulFunctionCall",
"src": "661:65:1"
},
"nodeType": "YulExpressionStatement",
"src": "661:65:1"
}
]
},
"name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "587:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "599:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "610:4:1",
"type": ""
}
],
"src": "523:210:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "781:48:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "791:32:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "816:5:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "809:6:1"
},
"nodeType": "YulFunctionCall",
"src": "809:13:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "802:6:1"
},
"nodeType": "YulFunctionCall",
"src": "802:21:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "791:7:1"
}
]
}
]
},
"name": "cleanup_t_bool",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "763:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "773:7:1",
"type": ""
}
],
"src": "739:90:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "875:76:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "929:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "938:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "941:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "931:6:1"
},
"nodeType": "YulFunctionCall",
"src": "931:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "931:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "898:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "920:5:1"
}
],
"functionName": {
"name": "cleanup_t_bool",
"nodeType": "YulIdentifier",
"src": "905:14:1"
},
"nodeType": "YulFunctionCall",
"src": "905:21:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "895:2:1"
},
"nodeType": "YulFunctionCall",
"src": "895:32:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "888:6:1"
},
"nodeType": "YulFunctionCall",
"src": "888:40:1"
},
"nodeType": "YulIf",
"src": "885:2:1"
}
]
},
"name": "validator_revert_t_bool",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "868:5:1",
"type": ""
}
],
"src": "835:116:1"
}
]
},
"contents": "{\n\n function abi_decode_t_bool(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_bool(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bool(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50600436106100365760003560e01c80636deecdbe1461003b578063eb1b30d914610059575b600080fd5b610043610075565b60405161005091906100ef565b60405180910390f35b610073600480360381019061006e91906100b7565b610086565b005b60008054906101000a900460ff1681565b806000806101000a81548160ff02191690831515021790555050565b6000813590506100b181610116565b92915050565b6000602082840312156100c957600080fd5b60006100d7848285016100a2565b91505092915050565b6100e98161010a565b82525050565b600060208201905061010460008301846100e0565b92915050565b60008115159050919050565b61011f8161010a565b811461012a57600080fd5b5056fea2646970667358221220a8245e9f0dbc28437dc0d86645b0e29e3c1c8dd9780a0a793d95f987ad0407d564736f6c63430008040033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x36 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6DEECDBE EQ PUSH2 0x3B JUMPI DUP1 PUSH4 0xEB1B30D9 EQ PUSH2 0x59 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x75 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x50 SWAP2 SWAP1 PUSH2 0xEF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x73 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x6E SWAP2 SWAP1 PUSH2 0xB7 JUMP JUMPDEST PUSH2 0x86 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xB1 DUP2 PUSH2 0x116 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xC9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xD7 DUP5 DUP3 DUP6 ADD PUSH2 0xA2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xE9 DUP2 PUSH2 0x10A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x104 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xE0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x11F DUP2 PUSH2 0x10A JUMP JUMPDEST DUP2 EQ PUSH2 0x12A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xA8 0x24 0x5E SWAP16 0xD 0xBC 0x28 NUMBER PUSH30 0xC0D86645B0E29E3C1C8DD9780A0A793D95F987AD0407D564736F6C634300 ADDMOD DIV STOP CALLER ",
"sourceMap": "62:140:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;97:18;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;126:74;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;97:18;;;;;;;;;;;;:::o;126:74::-;186:7;176:6;;:17;;;;;;;;;;;;;;;;;;126:74;:::o;7:133:1:-;50:5;88:6;75:20;66:29;;104:30;128:5;104:30;:::i;:::-;56:84;;;;:::o;146:256::-;202:6;251:2;239:9;230:7;226:23;222:32;219:2;;;267:1;264;257:12;219:2;310:1;335:50;377:7;368:6;357:9;353:22;335:50;:::i;:::-;325:60;;281:114;209:193;;;;:::o;408:109::-;489:21;504:5;489:21;:::i;:::-;484:3;477:34;467:50;;:::o;523:210::-;610:4;648:2;637:9;633:18;625:26;;661:65;723:1;712:9;708:17;699:6;661:65;:::i;:::-;615:118;;;;:::o;739:90::-;773:7;816:5;809:13;802:21;791:32;;781:48;;;:::o;835:116::-;905:21;920:5;905:21;:::i;:::-;898:5;895:32;885:2;;941:1;938;931:12;885:2;875:76;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "71000",
"executionCost": "123",
"totalCost": "71123"
},
"external": {
"myBool()": "1146",
"setMyBool(bool)": "21279"
}
},
"methodIdentifiers": {
"myBool()": "6deecdbe",
"setMyBool(bool)": "eb1b30d9"
}
},
"abi": [
{
"inputs": [],
"name": "myBool",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bool",
"name": "_myBool",
"type": "bool"
}
],
"name": "setMyBool",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.4+commit.c7e474f2"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"name": "myBool",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bool",
"name": "_myBool",
"type": "bool"
}
],
"name": "setMyBool",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"BooleanExample.sol": "BooleanExample"
},
"evmVersion": "istanbul",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"BooleanExample.sol": {
"keccak256": "0x10591563f86d7c22e819b56094c682586a1a3de34ace8fa33cf078db2bef2b1e",
"license": "GPL-3.0",
"urls": [
"bzz-raw://9c98b551bd2f572d90704810964bc180056d0d9af564e48a31a50571a3c116d3",
"dweb:/ipfs/QmYaVQrF4vxEjxuZvCZHvseU13Nv5iFVMi6WZgcbNn6fKf"
]
}
},
"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
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"generatedSources": [],
"linkReferences": {},
"object": "608060405234801561001057600080fd5b5061012c806100206000396000f3fe6080604052348015600f57600080fd5b506004361060325760003560e01c80634ef65c3b146037578063bde2b57314604f575b600080fd5b604d600480360381019060499190608c565b6069565b005b60556073565b6040516060919060bf565b60405180910390f35b8060008190555050565b60005481565b60008135905060868160e2565b92915050565b600060208284031215609d57600080fd5b600060a9848285016079565b91505092915050565b60b98160d8565b82525050565b600060208201905060d2600083018460b2565b92915050565b6000819050919050565b60e98160d8565b811460f357600080fd5b5056fea26469706673582212201cd575e5da177b19f67721a8b172e79ee8a185917e84da18d6ecc94b7a6206d864736f6c63430008040033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x12C DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x32 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4EF65C3B EQ PUSH1 0x37 JUMPI DUP1 PUSH4 0xBDE2B573 EQ PUSH1 0x4F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x4D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH1 0x49 SWAP2 SWAP1 PUSH1 0x8C JUMP JUMPDEST PUSH1 0x69 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x55 PUSH1 0x73 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x60 SWAP2 SWAP1 PUSH1 0xBF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST DUP1 PUSH1 0x0 DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH1 0x86 DUP2 PUSH1 0xE2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH1 0x9D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0xA9 DUP5 DUP3 DUP6 ADD PUSH1 0x79 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xB9 DUP2 PUSH1 0xD8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0xD2 PUSH1 0x0 DUP4 ADD DUP5 PUSH1 0xB2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0xE9 DUP2 PUSH1 0xD8 JUMP JUMPDEST DUP2 EQ PUSH1 0xF3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SHR 0xD5 PUSH22 0xE5DA177B19F67721A8B172E79EE8A185917E84DA18D6 0xEC 0xC9 0x4B PUSH27 0x6206D864736F6C6343000804003300000000000000000000000000 ",
"sourceMap": "62:142:0:-:0;;;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:980:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "59:87:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "69:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "91:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "78:12:1"
},
"nodeType": "YulFunctionCall",
"src": "78:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "69:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "134:5:1"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nodeType": "YulIdentifier",
"src": "107:26:1"
},
"nodeType": "YulFunctionCall",
"src": "107:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "107:33:1"
}
]
},
"name": "abi_decode_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "37:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "45:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "53:5:1",
"type": ""
}
],
"src": "7:139:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "218:196:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "264:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "273:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "276:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "266:6:1"
},
"nodeType": "YulFunctionCall",
"src": "266:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "266:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "239:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "248:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "235:3:1"
},
"nodeType": "YulFunctionCall",
"src": "235:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "260:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "231:3:1"
},
"nodeType": "YulFunctionCall",
"src": "231:32:1"
},
"nodeType": "YulIf",
"src": "228:2:1"
},
{
"nodeType": "YulBlock",
"src": "290:117:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "305:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "319:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "309:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "334:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "369:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "380:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "365:3:1"
},
"nodeType": "YulFunctionCall",
"src": "365:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "389:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "344:20:1"
},
"nodeType": "YulFunctionCall",
"src": "344:53:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "334:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "188:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "199:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "211:6:1",
"type": ""
}
],
"src": "152:262:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "485:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "502:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "525:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "507:17:1"
},
"nodeType": "YulFunctionCall",
"src": "507:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "495:6:1"
},
"nodeType": "YulFunctionCall",
"src": "495:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "495:37:1"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "473:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "480:3:1",
"type": ""
}
],
"src": "420:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "642:124:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "652:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "664:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "675:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "660:3:1"
},
"nodeType": "YulFunctionCall",
"src": "660:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "652:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "732:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "745:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "756:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "741:3:1"
},
"nodeType": "YulFunctionCall",
"src": "741:17:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "688:43:1"
},
"nodeType": "YulFunctionCall",
"src": "688:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "688:71:1"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "614:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "626:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "637:4:1",
"type": ""
}
],
"src": "544:222:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "817:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "827:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "838:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "827:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "799:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "809:7:1",
"type": ""
}
],
"src": "772:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "898:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "955:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "964:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "967:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "957:6:1"
},
"nodeType": "YulFunctionCall",
"src": "957:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "957:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "921:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "946:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "928:17:1"
},
"nodeType": "YulFunctionCall",
"src": "928:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "918:2:1"
},
"nodeType": "YulFunctionCall",
"src": "918:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "911:6:1"
},
"nodeType": "YulFunctionCall",
"src": "911:43:1"
},
"nodeType": "YulIf",
"src": "908:2:1"
}
]
},
"name": "validator_revert_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "891:5:1",
"type": ""
}
],
"src": "855:122:1"
}
]
},
"contents": "{\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "6080604052348015600f57600080fd5b506004361060325760003560e01c80634ef65c3b146037578063bde2b57314604f575b600080fd5b604d600480360381019060499190608c565b6069565b005b60556073565b6040516060919060bf565b60405180910390f35b8060008190555050565b60005481565b60008135905060868160e2565b92915050565b600060208284031215609d57600080fd5b600060a9848285016079565b91505092915050565b60b98160d8565b82525050565b600060208201905060d2600083018460b2565b92915050565b6000819050919050565b60e98160d8565b811460f357600080fd5b5056fea26469706673582212201cd575e5da177b19f67721a8b172e79ee8a185917e84da18d6ecc94b7a6206d864736f6c63430008040033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x32 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4EF65C3B EQ PUSH1 0x37 JUMPI DUP1 PUSH4 0xBDE2B573 EQ PUSH1 0x4F JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x4D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH1 0x49 SWAP2 SWAP1 PUSH1 0x8C JUMP JUMPDEST PUSH1 0x69 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x55 PUSH1 0x73 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x60 SWAP2 SWAP1 PUSH1 0xBF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST DUP1 PUSH1 0x0 DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH1 0x86 DUP2 PUSH1 0xE2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH1 0x9D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0xA9 DUP5 DUP3 DUP6 ADD PUSH1 0x79 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xB9 DUP2 PUSH1 0xD8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH1 0xD2 PUSH1 0x0 DUP4 ADD DUP5 PUSH1 0xB2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0xE9 DUP2 PUSH1 0xD8 JUMP JUMPDEST DUP2 EQ PUSH1 0xF3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SHR 0xD5 PUSH22 0xE5DA177B19F67721A8B172E79EE8A185917E84DA18D6 0xEC 0xC9 0x4B PUSH27 0x6206D864736F6C6343000804003300000000000000000000000000 ",
"sourceMap": "62:142:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;116:76;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;87:18;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;116:76;178:7;172:3;:13;;;;116:76;:::o;87:18::-;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:262::-;211:6;260:2;248:9;239:7;235:23;231:32;228:2;;;276:1;273;266:12;228:2;319:1;344:53;389:7;380:6;369:9;365:22;344:53;:::i;:::-;334:63;;290:117;218:196;;;;:::o;420:118::-;507:24;525:5;507:24;:::i;:::-;502:3;495:37;485:53;;:::o;544:222::-;637:4;675:2;664:9;660:18;652:26;;688:71;756:1;745:9;741:17;732:6;688:71;:::i;:::-;642:124;;;;:::o;772:77::-;809:7;838:5;827:16;;817:32;;;:::o;855:122::-;928:24;946:5;928:24;:::i;:::-;921:5;918:35;908:2;;967:1;964;957:12;908:2;898:79;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "60000",
"executionCost": "111",
"totalCost": "60111"
},
"external": {
"hey()": "1129",
"setUint(uint256)": "20398"
}
},
"methodIdentifiers": {
"hey()": "bde2b573",
"setUint(uint256)": "4ef65c3b"
}
},
"abi": [
{
"inputs": [],
"name": "hey",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_newhey",
"type": "uint256"
}
],
"name": "setUint",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.4+commit.c7e474f2"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"name": "hey",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_newhey",
"type": "uint256"
}
],
"name": "setUint",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"unsigned.sol": "giveMeInt"
},
"evmVersion": "istanbul",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"unsigned.sol": {
"keccak256": "0xa7feefcdc4bc84f3799e28cb3f9566aa501e7dccebb0a5c37a1e04318550840d",
"license": "GPL-3.0",
"urls": [
"bzz-raw://7648b8da88763d8c64223c3bc75a974d0f774ab9d3958e72caac81994ba4890b",
"dweb:/ipfs/QmXvTKKJySnUbwtSBwAqj8uvEgY8XnqG6R2Mwjm7zrtw9C"
]
}
},
"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
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"generatedSources": [],
"linkReferences": {},
"object": "608060405234801561001057600080fd5b5061015d806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80632baeceb714610046578063d09de08a14610050578063e2a4b2af1461005a575b600080fd5b61004e610078565b005b6100586100ac565b005b6100626100df565b60405161006f91906100ff565b60405180910390f35b60008081819054906101000a900460ff16809291906001900391906101000a81548160ff021916908360ff16021790555050565b60008081819054906101000a900460ff168092919060010191906101000a81548160ff021916908360ff16021790555050565b60008054906101000a900460ff1681565b6100f98161011a565b82525050565b600060208201905061011460008301846100f0565b92915050565b600060ff8216905091905056fea2646970667358221220fb825ef8743935f387ddb7ee5591ade3f5f00848257f4723b8c75544ea40edd264736f6c63430008000033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x15D DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x2BAECEB7 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0xD09DE08A EQ PUSH2 0x50 JUMPI DUP1 PUSH4 0xE2A4B2AF EQ PUSH2 0x5A JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x78 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x58 PUSH2 0xAC JUMP JUMPDEST STOP JUMPDEST PUSH2 0x62 PUSH2 0xDF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6F SWAP2 SWAP1 PUSH2 0xFF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 DUP2 DUP2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP1 SWAP3 SWAP2 SWAP1 PUSH1 0x1 SWAP1 SUB SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP2 DUP2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP1 SWAP3 SWAP2 SWAP1 PUSH1 0x1 ADD SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0xF9 DUP2 PUSH2 0x11A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x114 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xF0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xFB DUP3 0x5E 0xF8 PUSH21 0x3935F387DDB7EE5591ADE3F5F00848257F4723B8C7 SSTORE DIFFICULTY 0xEA BLOCKHASH 0xED 0xD2 PUSH5 0x736F6C6343 STOP ADDMOD STOP STOP CALLER ",
"sourceMap": "60:246:0:-:0;;;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:434:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "68:51:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "85:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "106:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint8",
"nodeType": "YulIdentifier",
"src": "90:15:1"
},
"nodeType": "YulFunctionCall",
"src": "90:22:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "78:6:1"
},
"nodeType": "YulFunctionCall",
"src": "78:35:1"
},
"nodeType": "YulExpressionStatement",
"src": "78:35:1"
}
]
},
"name": "abi_encode_t_uint8_to_t_uint8_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "56:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "63:3:1",
"type": ""
}
],
"src": "7:112:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "219:120:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "229:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "241:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "252:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "237:3:1"
},
"nodeType": "YulFunctionCall",
"src": "237:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "229:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "305:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "318:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "329:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "314:3:1"
},
"nodeType": "YulFunctionCall",
"src": "314:17:1"
}
],
"functionName": {
"name": "abi_encode_t_uint8_to_t_uint8_fromStack",
"nodeType": "YulIdentifier",
"src": "265:39:1"
},
"nodeType": "YulFunctionCall",
"src": "265:67:1"
},
"nodeType": "YulExpressionStatement",
"src": "265:67:1"
}
]
},
"name": "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "191:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "203:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "214:4:1",
"type": ""
}
],
"src": "125:214:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "388:43:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "398:27:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "413:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "420:4:1",
"type": "",
"value": "0xff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "409:3:1"
},
"nodeType": "YulFunctionCall",
"src": "409:16:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "398:7:1"
}
]
}
]
},
"name": "cleanup_t_uint8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "370:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "380:7:1",
"type": ""
}
],
"src": "345:86:1"
}
]
},
"contents": "{\n\n function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint8_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50600436106100415760003560e01c80632baeceb714610046578063d09de08a14610050578063e2a4b2af1461005a575b600080fd5b61004e610078565b005b6100586100ac565b005b6100626100df565b60405161006f91906100ff565b60405180910390f35b60008081819054906101000a900460ff16809291906001900391906101000a81548160ff021916908360ff16021790555050565b60008081819054906101000a900460ff168092919060010191906101000a81548160ff021916908360ff16021790555050565b60008054906101000a900460ff1681565b6100f98161011a565b82525050565b600060208201905061011460008301846100f0565b92915050565b600060ff8216905091905056fea2646970667358221220fb825ef8743935f387ddb7ee5591ade3f5f00848257f4723b8c75544ea40edd264736f6c63430008000033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x2BAECEB7 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0xD09DE08A EQ PUSH2 0x50 JUMPI DUP1 PUSH4 0xE2A4B2AF EQ PUSH2 0x5A JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x78 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x58 PUSH2 0xAC JUMP JUMPDEST STOP JUMPDEST PUSH2 0x62 PUSH2 0xDF JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x6F SWAP2 SWAP1 PUSH2 0xFF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 DUP2 DUP2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP1 SWAP3 SWAP2 SWAP1 PUSH1 0x1 SWAP1 SUB SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP2 DUP2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP1 SWAP3 SWAP2 SWAP1 PUSH1 0x1 ADD SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH2 0xF9 DUP2 PUSH2 0x11A JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x114 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xF0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xFB DUP3 0x5E 0xF8 PUSH21 0x3935F387DDB7EE5591ADE3F5F00848257F4723B8C7 SSTORE DIFFICULTY 0xEA BLOCKHASH 0xED 0xD2 PUSH5 0x736F6C6343 STOP ADDMOD STOP STOP CALLER ",
"sourceMap": "60:246:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;119:91;;;:::i;:::-;;216:88;;;:::i;:::-;;92:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;119:91;184:7;;:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;119:91::o;216:88::-;278:7;;:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;216:88::o;92:20::-;;;;;;;;;;;;:::o;7:112:1:-;90:22;106:5;90:22;:::i;:::-;85:3;78:35;68:51;;:::o;125:214::-;;252:2;241:9;237:18;229:26;;265:67;329:1;318:9;314:17;305:6;265:67;:::i;:::-;219:120;;;;:::o;345:86::-;;420:4;413:5;409:16;398:27;;388:43;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "69800",
"executionCost": "117",
"totalCost": "69917"
},
"external": {
"decrement()": "21854",
"increment()": "21873",
"myUint8()": "1190"
}
},
"methodIdentifiers": {
"decrement()": "2baeceb7",
"increment()": "d09de08a",
"myUint8()": "e2a4b2af"
}
},
"abi": [
{
"inputs": [],
"name": "decrement",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "increment",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "myUint8",
"outputs": [
{
"internalType": "uint8",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.0+commit.c7dfd78e"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"name": "decrement",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "increment",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "myUint8",
"outputs": [
{
"internalType": "uint8",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"RolloverExamplesSol08.sol": "RolloverExample2"
},
"evmVersion": "istanbul",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"RolloverExamplesSol08.sol": {
"keccak256": "0x867711045f256ecc77fcde95a1b78ec220e389c7fbd0abcaf2ea16fa44e2a1fc",
"license": "GPL-3.0",
"urls": [
"bzz-raw://bb30c993dbb3fca1ffaa0471fa693871840caa24b346feac3e6a2580f74d77ce",
"dweb:/ipfs/QmUGGBARxqECeo59SdAg5UTxs64oLzfMw9jANPafFskVas"
]
}
},
"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
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"linkReferences": {},
"object": "608060405234801561001057600080fd5b5061011e806100206000396000f3fe6080604052348015600f57600080fd5b5060043610603c5760003560e01c80632baeceb714604157806364847f35146049578063e2a4b2af146051575b600080fd5b60476070565b005b604f60a4565b005b605760d7565b604051808260ff16815260200191505060405180910390f35b60008081819054906101000a900460ff16809291906001900391906101000a81548160ff021916908360ff16021790555050565b60008081819054906101000a900460ff168092919060010191906101000a81548160ff021916908360ff16021790555050565b60008054906101000a900460ff168156fea26469706673582212209f07a62bf8aff0bc1360dc28ca47c9fa46aa77bee45eb0bc32ed45e4fef1eae864736f6c63430007000033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x11E DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x3C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x2BAECEB7 EQ PUSH1 0x41 JUMPI DUP1 PUSH4 0x64847F35 EQ PUSH1 0x49 JUMPI DUP1 PUSH4 0xE2A4B2AF EQ PUSH1 0x51 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x47 PUSH1 0x70 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x4F PUSH1 0xA4 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x57 PUSH1 0xD7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 DUP2 DUP2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP1 SWAP3 SWAP2 SWAP1 PUSH1 0x1 SWAP1 SUB SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP2 DUP2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP1 SWAP3 SWAP2 SWAP1 PUSH1 0x1 ADD SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP16 SMOD 0xA6 0x2B 0xF8 0xAF CREATE 0xBC SGT PUSH1 0xDC 0x28 0xCA SELFBALANCE 0xC9 STATICCALL CHAINID 0xAA PUSH24 0xBEE45EB0BC32ED45E4FEF1EAE864736F6C63430007000033 ",
"sourceMap": "61:183:0:-:0;;;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"immutableReferences": {},
"linkReferences": {},
"object": "6080604052348015600f57600080fd5b5060043610603c5760003560e01c80632baeceb714604157806364847f35146049578063e2a4b2af146051575b600080fd5b60476070565b005b604f60a4565b005b605760d7565b604051808260ff16815260200191505060405180910390f35b60008081819054906101000a900460ff16809291906001900391906101000a81548160ff021916908360ff16021790555050565b60008081819054906101000a900460ff168092919060010191906101000a81548160ff021916908360ff16021790555050565b60008054906101000a900460ff168156fea26469706673582212209f07a62bf8aff0bc1360dc28ca47c9fa46aa77bee45eb0bc32ed45e4fef1eae864736f6c63430007000033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x3C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x2BAECEB7 EQ PUSH1 0x41 JUMPI DUP1 PUSH4 0x64847F35 EQ PUSH1 0x49 JUMPI DUP1 PUSH4 0xE2A4B2AF EQ PUSH1 0x51 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x47 PUSH1 0x70 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x4F PUSH1 0xA4 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x57 PUSH1 0xD7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 DUP3 PUSH1 0xFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 DUP2 DUP2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP1 SWAP3 SWAP2 SWAP1 PUSH1 0x1 SWAP1 SUB SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP2 DUP2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP1 SWAP3 SWAP2 SWAP1 PUSH1 0x1 ADD SWAP2 SWAP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0xFF AND MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP16 SMOD 0xA6 0x2B 0xF8 0xAF CREATE 0xBC SGT PUSH1 0xDC 0x28 0xCA SELFBALANCE 0xC9 STATICCALL CHAINID 0xAA PUSH24 0xBEE45EB0BC32ED45E4FEF1EAE864736F6C63430007000033 ",
"sourceMap": "61:183:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;123:54;;;:::i;:::-;;187:55;;;:::i;:::-;;92:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;123:54;161:7;;:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;123:54::o;187:55::-;226:7;;:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;187:55::o;92:20::-;;;;;;;;;;;;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "57200",
"executionCost": "105",
"totalCost": "57305"
},
"external": {
"decrement()": "21854",
"incremenat()": "21873",
"myUint8()": "1066"
}
},
"methodIdentifiers": {
"decrement()": "2baeceb7",
"incremenat()": "64847f35",
"myUint8()": "e2a4b2af"
}
},
"abi": [
{
"inputs": [],
"name": "decrement",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "incremenat",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "myUint8",
"outputs": [
{
"internalType": "uint8",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.7.0+commit.9e61f92b"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"name": "decrement",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "incremenat",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "myUint8",
"outputs": [
{
"internalType": "uint8",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"RooloverExample.sol": "RooloverExample"
},
"evmVersion": "istanbul",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"RooloverExample.sol": {
"keccak256": "0x7cb09d70b51c0f4d910f9bbd5e5556d642a8c81ce934b198a765ba9a624f2296",
"license": "GPL-3.0",
"urls": [
"bzz-raw://8af16fae238f645a085aca679b9b0a0a536f266aa4cd91b4c72211ffc58c0ffc",
"dweb:/ipfs/QmTc4E61BksrjsKGXc4knCXM2KKHVb1J4h5mQhA8VtvrWC"
]
}
},
"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
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"generatedSources": [],
"linkReferences": {},
"object": "60806040524260015534801561001457600080fd5b506104c1806100246000396000f3fe6080604052600436106100705760003560e01c80636d26ec181161004e5780636d26ec18146100f657806372b0d90c14610100578063853828b614610129578063f3fef3a31461014057610070565b806312065fe01461007557806316ada547146100a057806352a90c42146100cb575b600080fd5b34801561008157600080fd5b5061008a610169565b604051610097919061034d565b60405180910390f35b3480156100ac57600080fd5b506100b5610171565b6040516100c2919061034d565b60405180910390f35b3480156100d757600080fd5b506100e0610177565b6040516100ed919061034d565b60405180910390f35b6100fe61017d565b005b34801561010c57600080fd5b50610127600480360381019061012291906102d9565b610197565b005b34801561013557600080fd5b5061013e6101ef565b005b34801561014c57600080fd5b5061016760048036038101906101629190610302565b61024c565b005b600047905090565b60015481565b60005481565b3460008082825461018e9190610368565b92505081905550565b600080819055508073ffffffffffffffffffffffffffffffffffffffff166108fc6101c0610169565b9081150290604051600060405180830381858888f193505050501580156101eb573d6000803e3d6000fd5b5050565b6000808190555060003390508073ffffffffffffffffffffffffffffffffffffffff166108fc61021d610169565b9081150290604051600060405180830381858888f19350505050158015610248573d6000803e3d6000fd5b5050565b8060008082825461025d91906103be565b925050819055508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156102aa573d6000803e3d6000fd5b505050565b6000813590506102be8161045d565b92915050565b6000813590506102d381610474565b92915050565b6000602082840312156102eb57600080fd5b60006102f9848285016102af565b91505092915050565b6000806040838503121561031557600080fd5b6000610323858286016102af565b9250506020610334858286016102c4565b9150509250929050565b61034781610424565b82525050565b6000602082019050610362600083018461033e565b92915050565b600061037382610424565b915061037e83610424565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156103b3576103b261042e565b5b828201905092915050565b60006103c982610424565b91506103d483610424565b9250828210156103e7576103e661042e565b5b828203905092915050565b60006103fd82610404565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b610466816103f2565b811461047157600080fd5b50565b61047d81610424565b811461048857600080fd5b5056fea2646970667358221220ee3b687fd7301d906bb95c0adfc46cec4f2a81f49ba1c1c0409a5d913ae629ef64736f6c63430008010033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE TIMESTAMP PUSH1 0x1 SSTORE CALLVALUE DUP1 ISZERO PUSH2 0x14 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4C1 DUP1 PUSH2 0x24 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x70 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6D26EC18 GT PUSH2 0x4E JUMPI DUP1 PUSH4 0x6D26EC18 EQ PUSH2 0xF6 JUMPI DUP1 PUSH4 0x72B0D90C EQ PUSH2 0x100 JUMPI DUP1 PUSH4 0x853828B6 EQ PUSH2 0x129 JUMPI DUP1 PUSH4 0xF3FEF3A3 EQ PUSH2 0x140 JUMPI PUSH2 0x70 JUMP JUMPDEST DUP1 PUSH4 0x12065FE0 EQ PUSH2 0x75 JUMPI DUP1 PUSH4 0x16ADA547 EQ PUSH2 0xA0 JUMPI DUP1 PUSH4 0x52A90C42 EQ PUSH2 0xCB JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x81 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x8A PUSH2 0x169 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x97 SWAP2 SWAP1 PUSH2 0x34D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB5 PUSH2 0x171 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC2 SWAP2 SWAP1 PUSH2 0x34D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xE0 PUSH2 0x177 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xED SWAP2 SWAP1 PUSH2 0x34D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xFE PUSH2 0x17D JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x10C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x127 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x122 SWAP2 SWAP1 PUSH2 0x2D9 JUMP JUMPDEST PUSH2 0x197 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x135 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x13E PUSH2 0x1EF JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x14C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x167 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x162 SWAP2 SWAP1 PUSH2 0x302 JUMP JUMPDEST PUSH2 0x24C JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 SELFBALANCE SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST CALLVALUE PUSH1 0x0 DUP1 DUP3 DUP3 SLOAD PUSH2 0x18E SWAP2 SWAP1 PUSH2 0x368 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP2 SWAP1 SSTORE POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC PUSH2 0x1C0 PUSH2 0x169 JUMP JUMPDEST SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x1EB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP2 SWAP1 SSTORE POP PUSH1 0x0 CALLER SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC PUSH2 0x21D PUSH2 0x169 JUMP JUMPDEST SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x248 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP3 DUP3 SLOAD PUSH2 0x25D SWAP2 SWAP1 PUSH2 0x3BE JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC DUP3 SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x2AA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2BE DUP2 PUSH2 0x45D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2D3 DUP2 PUSH2 0x474 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2F9 DUP5 DUP3 DUP6 ADD PUSH2 0x2AF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x315 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x323 DUP6 DUP3 DUP7 ADD PUSH2 0x2AF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x334 DUP6 DUP3 DUP7 ADD PUSH2 0x2C4 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x347 DUP2 PUSH2 0x424 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x362 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x33E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x373 DUP3 PUSH2 0x424 JUMP JUMPDEST SWAP2 POP PUSH2 0x37E DUP4 PUSH2 0x424 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x3B3 JUMPI PUSH2 0x3B2 PUSH2 0x42E JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3C9 DUP3 PUSH2 0x424 JUMP JUMPDEST SWAP2 POP PUSH2 0x3D4 DUP4 PUSH2 0x424 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 LT ISZERO PUSH2 0x3E7 JUMPI PUSH2 0x3E6 PUSH2 0x42E JUMP JUMPDEST JUMPDEST DUP3 DUP3 SUB SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3FD DUP3 PUSH2 0x404 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x466 DUP2 PUSH2 0x3F2 JUMP JUMPDEST DUP2 EQ PUSH2 0x471 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x47D DUP2 PUSH2 0x424 JUMP JUMPDEST DUP2 EQ PUSH2 0x488 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xEE EXTCODESIZE PUSH9 0x7FD7301D906BB95C0A 0xDF 0xC4 PUSH13 0xEC4F2A81F49BA1C1C0409A5D91 GASPRICE 0xE6 0x29 0xEF PUSH5 0x736F6C6343 STOP ADDMOD ADD STOP CALLER ",
"sourceMap": "62:796:0:-:0;;;840:15;821:34;;62:796;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:2666:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "67:95:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "77:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "99:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "86:12:1"
},
"nodeType": "YulFunctionCall",
"src": "86:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "77:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "150:5:1"
}
],
"functionName": {
"name": "validator_revert_t_address_payable",
"nodeType": "YulIdentifier",
"src": "115:34:1"
},
"nodeType": "YulFunctionCall",
"src": "115:41:1"
},
"nodeType": "YulExpressionStatement",
"src": "115:41:1"
}
]
},
"name": "abi_decode_t_address_payable",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "45:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "53:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "61:5:1",
"type": ""
}
],
"src": "7:155:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "220:87:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "230:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "252:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "239:12:1"
},
"nodeType": "YulFunctionCall",
"src": "239:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "230:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "295:5:1"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nodeType": "YulIdentifier",
"src": "268:26:1"
},
"nodeType": "YulFunctionCall",
"src": "268:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "268:33:1"
}
]
},
"name": "abi_decode_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "198:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "206:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "214:5:1",
"type": ""
}
],
"src": "168:139:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "387:204:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "433:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "442:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "445:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "435:6:1"
},
"nodeType": "YulFunctionCall",
"src": "435:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "435:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "408:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "417:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "404:3:1"
},
"nodeType": "YulFunctionCall",
"src": "404:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "429:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "400:3:1"
},
"nodeType": "YulFunctionCall",
"src": "400:32:1"
},
"nodeType": "YulIf",
"src": "397:2:1"
},
{
"nodeType": "YulBlock",
"src": "459:125:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "474:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "488:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "478:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "503:71:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "546:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "557:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "542:3:1"
},
"nodeType": "YulFunctionCall",
"src": "542:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "566:7:1"
}
],
"functionName": {
"name": "abi_decode_t_address_payable",
"nodeType": "YulIdentifier",
"src": "513:28:1"
},
"nodeType": "YulFunctionCall",
"src": "513:61:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "503:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_address_payable",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "357:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "368:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "380:6:1",
"type": ""
}
],
"src": "313:278:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "688:332:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "734:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "743:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "746:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "736:6:1"
},
"nodeType": "YulFunctionCall",
"src": "736:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "736:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "709:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "718:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "705:3:1"
},
"nodeType": "YulFunctionCall",
"src": "705:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "730:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "701:3:1"
},
"nodeType": "YulFunctionCall",
"src": "701:32:1"
},
"nodeType": "YulIf",
"src": "698:2:1"
},
{
"nodeType": "YulBlock",
"src": "760:125:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "775:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "789:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "779:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "804:71:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "847:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "858:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "843:3:1"
},
"nodeType": "YulFunctionCall",
"src": "843:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "867:7:1"
}
],
"functionName": {
"name": "abi_decode_t_address_payable",
"nodeType": "YulIdentifier",
"src": "814:28:1"
},
"nodeType": "YulFunctionCall",
"src": "814:61:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "804:6:1"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "895:118:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "910:16:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "924:2:1",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "914:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "940:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "975:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "986:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "971:3:1"
},
"nodeType": "YulFunctionCall",
"src": "971:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "995:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "950:20:1"
},
"nodeType": "YulFunctionCall",
"src": "950:53:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "940:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_address_payablet_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "650:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "661:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "673:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "681:6:1",
"type": ""
}
],
"src": "597:423:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1091:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1108:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1131:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "1113:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1113:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1101:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1101:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "1101:37:1"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1079:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1086:3:1",
"type": ""
}
],
"src": "1026:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1248:124:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1258:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1270:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1281:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1266:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1266:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1258:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1338:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1351:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1362:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1347:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1347:17:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "1294:43:1"
},
"nodeType": "YulFunctionCall",
"src": "1294:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "1294:71:1"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1220:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1232:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "1243:4:1",
"type": ""
}
],
"src": "1150:222:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1422:261:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1432:25:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "1455:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "1437:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1437:20:1"
},
"variableNames": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "1432:1:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "1466:25:1",
"value": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "1489:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "1471:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1471:20:1"
},
"variableNames": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "1466:1:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1629:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "1631:16:1"
},
"nodeType": "YulFunctionCall",
"src": "1631:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "1631:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "1550:1:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1557:66:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "1625:1:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "1553:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1553:74:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "1547:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1547:81:1"
},
"nodeType": "YulIf",
"src": "1544:2:1"
},
{
"nodeType": "YulAssignment",
"src": "1661:16:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "1672:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "1675:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1668:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1668:9:1"
},
"variableNames": [
{
"name": "sum",
"nodeType": "YulIdentifier",
"src": "1661:3:1"
}
]
}
]
},
"name": "checked_add_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "1409:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "1412:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "sum",
"nodeType": "YulTypedName",
"src": "1418:3:1",
"type": ""
}
],
"src": "1378:305:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1734:146:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1744:25:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "1767:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "1749:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1749:20:1"
},
"variableNames": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "1744:1:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "1778:25:1",
"value": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "1801:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "1783:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1783:20:1"
},
"variableNames": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "1778:1:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1825:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "1827:16:1"
},
"nodeType": "YulFunctionCall",
"src": "1827:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "1827:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "1819:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "1822:1:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "1816:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1816:8:1"
},
"nodeType": "YulIf",
"src": "1813:2:1"
},
{
"nodeType": "YulAssignment",
"src": "1857:17:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "1869:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "1872:1:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "1865:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1865:9:1"
},
"variableNames": [
{
"name": "diff",
"nodeType": "YulIdentifier",
"src": "1857:4:1"
}
]
}
]
},
"name": "checked_sub_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "1720:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "1723:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "diff",
"nodeType": "YulTypedName",
"src": "1729:4:1",
"type": ""
}
],
"src": "1689:191:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1939:51:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1949:35:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1978:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "1960:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1960:24:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "1949:7:1"
}
]
}
]
},
"name": "cleanup_t_address_payable",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1921:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "1931:7:1",
"type": ""
}
],
"src": "1886:104:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2041:81:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2051:65:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2066:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2073:42:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "2062:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2062:54:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "2051:7:1"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2023:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "2033:7:1",
"type": ""
}
],
"src": "1996:126:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2173:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2183:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "2194:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "2183:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2155:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "2165:7:1",
"type": ""
}
],
"src": "2128:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2239:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2256:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2259:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2249:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2249:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "2249:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2353:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2356:4:1",
"type": "",
"value": "0x11"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2346:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2346:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "2346:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2377:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2380:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "2370:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2370:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "2370:15:1"
}
]
},
"name": "panic_error_0x11",
"nodeType": "YulFunctionDefinition",
"src": "2211:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2448:87:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2513:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2522:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2525:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "2515:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2515:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "2515:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2471:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2504:5:1"
}
],
"functionName": {
"name": "cleanup_t_address_payable",
"nodeType": "YulIdentifier",
"src": "2478:25:1"
},
"nodeType": "YulFunctionCall",
"src": "2478:32:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "2468:2:1"
},
"nodeType": "YulFunctionCall",
"src": "2468:43:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "2461:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2461:51:1"
},
"nodeType": "YulIf",
"src": "2458:2:1"
}
]
},
"name": "validator_revert_t_address_payable",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2441:5:1",
"type": ""
}
],
"src": "2397:138:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2584:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2641:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2650:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2653:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "2643:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2643:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "2643:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2607:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2632:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "2614:17:1"
},
"nodeType": "YulFunctionCall",
"src": "2614:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "2604:2:1"
},
"nodeType": "YulFunctionCall",
"src": "2604:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "2597:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2597:43:1"
},
"nodeType": "YulIf",
"src": "2594:2:1"
}
]
},
"name": "validator_revert_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2577:5:1",
"type": ""
}
],
"src": "2541:122:1"
}
]
},
"contents": "{\n\n function abi_decode_t_address_payable(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address_payable(value)\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_address_payable(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_payable(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_address_payablet_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_payable(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n if lt(x, y) { panic_error_0x11() }\n\n diff := sub(x, y)\n }\n\n function cleanup_t_address_payable(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function validator_revert_t_address_payable(value) {\n if iszero(eq(value, cleanup_t_address_payable(value))) { revert(0, 0) }\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "6080604052600436106100705760003560e01c80636d26ec181161004e5780636d26ec18146100f657806372b0d90c14610100578063853828b614610129578063f3fef3a31461014057610070565b806312065fe01461007557806316ada547146100a057806352a90c42146100cb575b600080fd5b34801561008157600080fd5b5061008a610169565b604051610097919061034d565b60405180910390f35b3480156100ac57600080fd5b506100b5610171565b6040516100c2919061034d565b60405180910390f35b3480156100d757600080fd5b506100e0610177565b6040516100ed919061034d565b60405180910390f35b6100fe61017d565b005b34801561010c57600080fd5b50610127600480360381019061012291906102d9565b610197565b005b34801561013557600080fd5b5061013e6101ef565b005b34801561014c57600080fd5b5061016760048036038101906101629190610302565b61024c565b005b600047905090565b60015481565b60005481565b3460008082825461018e9190610368565b92505081905550565b600080819055508073ffffffffffffffffffffffffffffffffffffffff166108fc6101c0610169565b9081150290604051600060405180830381858888f193505050501580156101eb573d6000803e3d6000fd5b5050565b6000808190555060003390508073ffffffffffffffffffffffffffffffffffffffff166108fc61021d610169565b9081150290604051600060405180830381858888f19350505050158015610248573d6000803e3d6000fd5b5050565b8060008082825461025d91906103be565b925050819055508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156102aa573d6000803e3d6000fd5b505050565b6000813590506102be8161045d565b92915050565b6000813590506102d381610474565b92915050565b6000602082840312156102eb57600080fd5b60006102f9848285016102af565b91505092915050565b6000806040838503121561031557600080fd5b6000610323858286016102af565b9250506020610334858286016102c4565b9150509250929050565b61034781610424565b82525050565b6000602082019050610362600083018461033e565b92915050565b600061037382610424565b915061037e83610424565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156103b3576103b261042e565b5b828201905092915050565b60006103c982610424565b91506103d483610424565b9250828210156103e7576103e661042e565b5b828203905092915050565b60006103fd82610404565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b610466816103f2565b811461047157600080fd5b50565b61047d81610424565b811461048857600080fd5b5056fea2646970667358221220ee3b687fd7301d906bb95c0adfc46cec4f2a81f49ba1c1c0409a5d913ae629ef64736f6c63430008010033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x70 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x6D26EC18 GT PUSH2 0x4E JUMPI DUP1 PUSH4 0x6D26EC18 EQ PUSH2 0xF6 JUMPI DUP1 PUSH4 0x72B0D90C EQ PUSH2 0x100 JUMPI DUP1 PUSH4 0x853828B6 EQ PUSH2 0x129 JUMPI DUP1 PUSH4 0xF3FEF3A3 EQ PUSH2 0x140 JUMPI PUSH2 0x70 JUMP JUMPDEST DUP1 PUSH4 0x12065FE0 EQ PUSH2 0x75 JUMPI DUP1 PUSH4 0x16ADA547 EQ PUSH2 0xA0 JUMPI DUP1 PUSH4 0x52A90C42 EQ PUSH2 0xCB JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x81 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x8A PUSH2 0x169 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x97 SWAP2 SWAP1 PUSH2 0x34D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB5 PUSH2 0x171 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC2 SWAP2 SWAP1 PUSH2 0x34D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xE0 PUSH2 0x177 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xED SWAP2 SWAP1 PUSH2 0x34D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xFE PUSH2 0x17D JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x10C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x127 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x122 SWAP2 SWAP1 PUSH2 0x2D9 JUMP JUMPDEST PUSH2 0x197 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x135 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x13E PUSH2 0x1EF JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x14C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x167 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x162 SWAP2 SWAP1 PUSH2 0x302 JUMP JUMPDEST PUSH2 0x24C JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 SELFBALANCE SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST CALLVALUE PUSH1 0x0 DUP1 DUP3 DUP3 SLOAD PUSH2 0x18E SWAP2 SWAP1 PUSH2 0x368 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP2 SWAP1 SSTORE POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC PUSH2 0x1C0 PUSH2 0x169 JUMP JUMPDEST SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x1EB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP2 SWAP1 SSTORE POP PUSH1 0x0 CALLER SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC PUSH2 0x21D PUSH2 0x169 JUMP JUMPDEST SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x248 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP JUMP JUMPDEST DUP1 PUSH1 0x0 DUP1 DUP3 DUP3 SLOAD PUSH2 0x25D SWAP2 SWAP1 PUSH2 0x3BE JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC DUP3 SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x2AA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2BE DUP2 PUSH2 0x45D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2D3 DUP2 PUSH2 0x474 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2EB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2F9 DUP5 DUP3 DUP6 ADD PUSH2 0x2AF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x315 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x323 DUP6 DUP3 DUP7 ADD PUSH2 0x2AF JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x334 DUP6 DUP3 DUP7 ADD PUSH2 0x2C4 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x347 DUP2 PUSH2 0x424 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x362 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x33E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x373 DUP3 PUSH2 0x424 JUMP JUMPDEST SWAP2 POP PUSH2 0x37E DUP4 PUSH2 0x424 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x3B3 JUMPI PUSH2 0x3B2 PUSH2 0x42E JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3C9 DUP3 PUSH2 0x424 JUMP JUMPDEST SWAP2 POP PUSH2 0x3D4 DUP4 PUSH2 0x424 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 LT ISZERO PUSH2 0x3E7 JUMPI PUSH2 0x3E6 PUSH2 0x42E JUMP JUMPDEST JUMPDEST DUP3 DUP3 SUB SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3FD DUP3 PUSH2 0x404 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x466 DUP2 PUSH2 0x3F2 JUMP JUMPDEST DUP2 EQ PUSH2 0x471 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x47D DUP2 PUSH2 0x424 JUMP JUMPDEST DUP2 EQ PUSH2 0x488 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xEE EXTCODESIZE PUSH9 0x7FD7301D906BB95C0A 0xDF 0xC4 PUSH13 0xEC4F2A81F49BA1C1C0409A5D91 GASPRICE 0xE6 0x29 0xEF PUSH5 0x736F6C6343 STOP ADDMOD ADD STOP CALLER ",
"sourceMap": "62:796:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;229:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;821:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;94:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;135:84;;;:::i;:::-;;493:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;332:151;;;;;;;;;;;;;:::i;:::-;;632:146;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;229:93;271:4;294:21;287:28;;229:93;:::o;821:34::-;;;;:::o;94:30::-;;;;:::o;135:84::-;203:9;184:15;;:28;;;;;;;:::i;:::-;;;;;;;;135:84::o;493:129::-;569:1;551:15;:19;;;;588:3;580:21;;:35;602:12;:10;:12::i;:::-;580:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;493:129;:::o;332:151::-;390:1;372:15;:19;;;;401:18;430:10;401:40;;451:2;:11;;:25;463:12;:10;:12::i;:::-;451:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;332:151;:::o;632:146::-;724:7;705:15;;:26;;;;;;;:::i;:::-;;;;;;;;749:3;741:21;;:30;763:7;741:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;632:146;;:::o;7:155:1:-;;99:6;86:20;77:29;;115:41;150:5;115:41;:::i;:::-;67:95;;;;:::o;168:139::-;;252:6;239:20;230:29;;268:33;295:5;268:33;:::i;:::-;220:87;;;;:::o;313:278::-;;429:2;417:9;408:7;404:23;400:32;397:2;;;445:1;442;435:12;397:2;488:1;513:61;566:7;557:6;546:9;542:22;513:61;:::i;:::-;503:71;;459:125;387:204;;;;:::o;597:423::-;;;730:2;718:9;709:7;705:23;701:32;698:2;;;746:1;743;736:12;698:2;789:1;814:61;867:7;858:6;847:9;843:22;814:61;:::i;:::-;804:71;;760:125;924:2;950:53;995:7;986:6;975:9;971:22;950:53;:::i;:::-;940:63;;895:118;688:332;;;;;:::o;1026:118::-;1113:24;1131:5;1113:24;:::i;:::-;1108:3;1101:37;1091:53;;:::o;1150:222::-;;1281:2;1270:9;1266:18;1258:26;;1294:71;1362:1;1351:9;1347:17;1338:6;1294:71;:::i;:::-;1248:124;;;;:::o;1378:305::-;;1437:20;1455:1;1437:20;:::i;:::-;1432:25;;1471:20;1489:1;1471:20;:::i;:::-;1466:25;;1625:1;1557:66;1553:74;1550:1;1547:81;1544:2;;;1631:18;;:::i;:::-;1544:2;1675:1;1672;1668:9;1661:16;;1422:261;;;;:::o;1689:191::-;;1749:20;1767:1;1749:20;:::i;:::-;1744:25;;1783:20;1801:1;1783:20;:::i;:::-;1778:25;;1822:1;1819;1816:8;1813:2;;;1827:18;;:::i;:::-;1813:2;1872:1;1869;1865:9;1857:17;;1734:146;;;;:::o;1886:104::-;;1960:24;1978:5;1960:24;:::i;:::-;1949:35;;1939:51;;;:::o;1996:126::-;;2073:42;2066:5;2062:54;2051:65;;2041:81;;;:::o;2128:77::-;;2194:5;2183:16;;2173:32;;;:::o;2211:180::-;2259:77;2256:1;2249:88;2356:4;2353:1;2346:15;2380:4;2377:1;2370:15;2397:138;2478:32;2504:5;2478:32;:::i;:::-;2471:5;2468:43;2458:2;;2525:1;2522;2515:12;2458:2;2448:87;:::o;2541:122::-;2614:24;2632:5;2614:24;:::i;:::-;2607:5;2604:35;2594:2;;2653:1;2650;2643:12;2594:2;2584:79;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "243400",
"executionCost": "20292",
"totalCost": "263692"
},
"external": {
"balanceReceived()": "1174",
"getBalance()": "340",
"receiveMoney()": "infinite",
"time()": "1152",
"withdraw(address,uint256)": "infinite",
"withdrawAll()": "infinite",
"withdrawTo(address)": "infinite"
}
},
"methodIdentifiers": {
"balanceReceived()": "52a90c42",
"getBalance()": "12065fe0",
"receiveMoney()": "6d26ec18",
"time()": "16ada547",
"withdraw(address,uint256)": "f3fef3a3",
"withdrawAll()": "853828b6",
"withdrawTo(address)": "72b0d90c"
}
},
"abi": [
{
"inputs": [],
"name": "balanceReceived",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getBalance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "receiveMoney",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "time",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address payable",
"name": "_to",
"type": "address"
},
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
}
],
"name": "withdraw",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "withdrawAll",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address payable",
"name": "_to",
"type": "address"
}
],
"name": "withdrawTo",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.1+commit.df193b15"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"name": "balanceReceived",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getBalance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "receiveMoney",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "time",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address payable",
"name": "_to",
"type": "address"
},
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
}
],
"name": "withdraw",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "withdrawAll",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address payable",
"name": "_to",
"type": "address"
}
],
"name": "withdrawTo",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"SendMoneyExample.sol": "SendMoneyExample"
},
"evmVersion": "istanbul",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"SendMoneyExample.sol": {
"keccak256": "0x56bc044e8fc50ee670e371d69474ab89f9dde6d018f8959ad92ddee8a3113dce",
"license": "GPL-3.0",
"urls": [
"bzz-raw://ee70a6c5ba3b2423a9c3ae7bcb79bf0bab16c980cf0cc26d7f9427b0ece64c02",
"dweb:/ipfs/QmYuMHJrXAMPp4eCDUMQKVsV4LW8E3aKww63gtAsRadkPC"
]
}
},
"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
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"generatedSources": [],
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50610500806100206000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c806363717d301161005b57806363717d30146100d85780637c66884414610108578063d6a3aca314610138578063ef5d5684146101545761007d565b80634894ea061461008257806355241077146100b2578063634899ce146100ce575b600080fd5b61009c60048036038101906100979190610336565b610184565b6040516100a99190610422565b60405180910390f35b6100cc60048036038101906100c7919061035f565b6101a4565b005b6100d66101d2565b005b6100f260048036038101906100ed9190610388565b61022b565b6040516100ff9190610422565b60405180910390f35b610122600480360381019061011d919061035f565b610267565b60405161012f9190610422565b60405180910390f35b610152600480360381019061014d91906103c4565b610287565b005b61016e60048036038101906101699190610388565b6102c8565b60405161017b9190610422565b60405180910390f35b60016020528060005260406000206000915054906101000a900460ff1681565b600160008083815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60018060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550565b600060026000848152602001908152602001600020600083815260200190815260200160002060009054906101000a900460ff16905092915050565b60006020528060005260406000206000915054906101000a900460ff1681565b8060026000858152602001908152602001600020600084815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b60026020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b60008135905061030681610485565b92915050565b60008135905061031b8161049c565b92915050565b600081359050610330816104b3565b92915050565b60006020828403121561034857600080fd5b6000610356848285016102f7565b91505092915050565b60006020828403121561037157600080fd5b600061037f84828501610321565b91505092915050565b6000806040838503121561039b57600080fd5b60006103a985828601610321565b92505060206103ba85828601610321565b9150509250929050565b6000806000606084860312156103d957600080fd5b60006103e786828701610321565b93505060206103f886828701610321565b92505060406104098682870161030c565b9150509250925092565b61041c8161044f565b82525050565b60006020820190506104376000830184610413565b92915050565b60006104488261045b565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b61048e8161043d565b811461049957600080fd5b50565b6104a58161044f565b81146104b057600080fd5b50565b6104bc8161047b565b81146104c757600080fd5b5056fea2646970667358221220dcbb87b83a5887f8213094700cece0e0bd082080ed4182c875fe8cc86fb8bc1164736f6c63430008030033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x500 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x7D JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x63717D30 GT PUSH2 0x5B JUMPI DUP1 PUSH4 0x63717D30 EQ PUSH2 0xD8 JUMPI DUP1 PUSH4 0x7C668844 EQ PUSH2 0x108 JUMPI DUP1 PUSH4 0xD6A3ACA3 EQ PUSH2 0x138 JUMPI DUP1 PUSH4 0xEF5D5684 EQ PUSH2 0x154 JUMPI PUSH2 0x7D JUMP JUMPDEST DUP1 PUSH4 0x4894EA06 EQ PUSH2 0x82 JUMPI DUP1 PUSH4 0x55241077 EQ PUSH2 0xB2 JUMPI DUP1 PUSH4 0x634899CE EQ PUSH2 0xCE JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x9C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x97 SWAP2 SWAP1 PUSH2 0x336 JUMP JUMPDEST PUSH2 0x184 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x422 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xCC PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xC7 SWAP2 SWAP1 PUSH2 0x35F JUMP JUMPDEST PUSH2 0x1A4 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xD6 PUSH2 0x1D2 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xF2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xED SWAP2 SWAP1 PUSH2 0x388 JUMP JUMPDEST PUSH2 0x22B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xFF SWAP2 SWAP1 PUSH2 0x422 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x122 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x11D SWAP2 SWAP1 PUSH2 0x35F JUMP JUMPDEST PUSH2 0x267 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12F SWAP2 SWAP1 PUSH2 0x422 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x152 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x14D SWAP2 SWAP1 PUSH2 0x3C4 JUMP JUMPDEST PUSH2 0x287 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x16E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x169 SWAP2 SWAP1 PUSH2 0x388 JUMP JUMPDEST PUSH2 0x2C8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x17B SWAP2 SWAP1 PUSH2 0x422 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP2 POP SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x306 DUP2 PUSH2 0x485 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x31B DUP2 PUSH2 0x49C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x330 DUP2 PUSH2 0x4B3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x348 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x356 DUP5 DUP3 DUP6 ADD PUSH2 0x2F7 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x371 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x37F DUP5 DUP3 DUP6 ADD PUSH2 0x321 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x39B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3A9 DUP6 DUP3 DUP7 ADD PUSH2 0x321 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x3BA DUP6 DUP3 DUP7 ADD PUSH2 0x321 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3E7 DUP7 DUP3 DUP8 ADD PUSH2 0x321 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x3F8 DUP7 DUP3 DUP8 ADD PUSH2 0x321 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x409 DUP7 DUP3 DUP8 ADD PUSH2 0x30C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH2 0x41C DUP2 PUSH2 0x44F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x437 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x413 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x448 DUP3 PUSH2 0x45B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x48E DUP2 PUSH2 0x43D JUMP JUMPDEST DUP2 EQ PUSH2 0x499 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x4A5 DUP2 PUSH2 0x44F JUMP JUMPDEST DUP2 EQ PUSH2 0x4B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x4BC DUP2 PUSH2 0x47B JUMP JUMPDEST DUP2 EQ PUSH2 0x4C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDC 0xBB DUP8 0xB8 GASPRICE PC DUP8 0xF8 0x21 ADDRESS SWAP5 PUSH17 0xCECE0E0BD082080ED4182C875FE8CC86F 0xB8 0xBC GT PUSH5 0x736F6C6343 STOP ADDMOD SUB STOP CALLER ",
"sourceMap": "56:885:0:-:0;;;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:3056:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "59:87:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "69:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "91:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "78:12:1"
},
"nodeType": "YulFunctionCall",
"src": "78:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "69:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "134:5:1"
}
],
"functionName": {
"name": "validator_revert_t_address",
"nodeType": "YulIdentifier",
"src": "107:26:1"
},
"nodeType": "YulFunctionCall",
"src": "107:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "107:33:1"
}
]
},
"name": "abi_decode_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "37:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "45:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "53:5:1",
"type": ""
}
],
"src": "7:139:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "201:84:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "211:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "233:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "220:12:1"
},
"nodeType": "YulFunctionCall",
"src": "220:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "211:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "273:5:1"
}
],
"functionName": {
"name": "validator_revert_t_bool",
"nodeType": "YulIdentifier",
"src": "249:23:1"
},
"nodeType": "YulFunctionCall",
"src": "249:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "249:30:1"
}
]
},
"name": "abi_decode_t_bool",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "179:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "187:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "195:5:1",
"type": ""
}
],
"src": "152:133:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "343:87:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "353:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "375:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "362:12:1"
},
"nodeType": "YulFunctionCall",
"src": "362:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "353:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "418:5:1"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nodeType": "YulIdentifier",
"src": "391:26:1"
},
"nodeType": "YulFunctionCall",
"src": "391:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "391:33:1"
}
]
},
"name": "abi_decode_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "321:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "329:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "337:5:1",
"type": ""
}
],
"src": "291:139:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "502:196:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "548:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "557:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "560:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "550:6:1"
},
"nodeType": "YulFunctionCall",
"src": "550:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "550:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "523:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "532:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "519:3:1"
},
"nodeType": "YulFunctionCall",
"src": "519:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "544:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "515:3:1"
},
"nodeType": "YulFunctionCall",
"src": "515:32:1"
},
"nodeType": "YulIf",
"src": "512:2:1"
},
{
"nodeType": "YulBlock",
"src": "574:117:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "589:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "603:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "593:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "618:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "653:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "664:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "649:3:1"
},
"nodeType": "YulFunctionCall",
"src": "649:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "673:7:1"
}
],
"functionName": {
"name": "abi_decode_t_address",
"nodeType": "YulIdentifier",
"src": "628:20:1"
},
"nodeType": "YulFunctionCall",
"src": "628:53:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "618:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "472:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "483:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "495:6:1",
"type": ""
}
],
"src": "436:262:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "770:196:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "816:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "825:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "828:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "818:6:1"
},
"nodeType": "YulFunctionCall",
"src": "818:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "818:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "791:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "800:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "787:3:1"
},
"nodeType": "YulFunctionCall",
"src": "787:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "812:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "783:3:1"
},
"nodeType": "YulFunctionCall",
"src": "783:32:1"
},
"nodeType": "YulIf",
"src": "780:2:1"
},
{
"nodeType": "YulBlock",
"src": "842:117:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "857:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "871:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "861:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "886:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "921:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "932:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "917:3:1"
},
"nodeType": "YulFunctionCall",
"src": "917:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "941:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "896:20:1"
},
"nodeType": "YulFunctionCall",
"src": "896:53:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "886:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "740:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "751:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "763:6:1",
"type": ""
}
],
"src": "704:262:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1055:324:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1101:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1110:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1113:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1103:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1103:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "1103:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1076:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1085:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "1072:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1072:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1097:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "1068:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1068:32:1"
},
"nodeType": "YulIf",
"src": "1065:2:1"
},
{
"nodeType": "YulBlock",
"src": "1127:117:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1142:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1156:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1146:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "1171:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1206:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1217:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1202:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1202:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1226:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "1181:20:1"
},
"nodeType": "YulFunctionCall",
"src": "1181:53:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1171:6:1"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "1254:118:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1269:16:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1283:2:1",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1273:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "1299:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1334:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1345:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1330:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1330:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1354:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "1309:20:1"
},
"nodeType": "YulFunctionCall",
"src": "1309:53:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "1299:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1017:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "1028:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1040:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "1048:6:1",
"type": ""
}
],
"src": "972:407:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1482:449:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1528:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1537:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1540:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1530:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1530:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "1530:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1503:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1512:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "1499:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1499:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1524:2:1",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "1495:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1495:32:1"
},
"nodeType": "YulIf",
"src": "1492:2:1"
},
{
"nodeType": "YulBlock",
"src": "1554:117:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1569:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1583:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1573:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "1598:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1633:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1644:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1629:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1629:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1653:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "1608:20:1"
},
"nodeType": "YulFunctionCall",
"src": "1608:53:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1598:6:1"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "1681:118:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1696:16:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1710:2:1",
"type": "",
"value": "32"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1700:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "1726:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1761:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1772:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1757:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1757:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1781:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "1736:20:1"
},
"nodeType": "YulFunctionCall",
"src": "1736:53:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "1726:6:1"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "1809:115:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1824:16:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1838:2:1",
"type": "",
"value": "64"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1828:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "1854:60:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1886:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1897:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1882:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1882:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1906:7:1"
}
],
"functionName": {
"name": "abi_decode_t_bool",
"nodeType": "YulIdentifier",
"src": "1864:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1864:50:1"
},
"variableNames": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "1854:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256t_uint256t_bool",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1436:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "1447:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1459:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "1467:6:1",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "1475:6:1",
"type": ""
}
],
"src": "1385:546:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1996:50:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2013:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2033:5:1"
}
],
"functionName": {
"name": "cleanup_t_bool",
"nodeType": "YulIdentifier",
"src": "2018:14:1"
},
"nodeType": "YulFunctionCall",
"src": "2018:21:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2006:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2006:34:1"
},
"nodeType": "YulExpressionStatement",
"src": "2006:34:1"
}
]
},
"name": "abi_encode_t_bool_to_t_bool_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1984:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1991:3:1",
"type": ""
}
],
"src": "1937:109:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2144:118:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2154:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2166:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2177:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2162:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2162:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2154:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2228:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2241:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2252:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2237:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2237:17:1"
}
],
"functionName": {
"name": "abi_encode_t_bool_to_t_bool_fromStack",
"nodeType": "YulIdentifier",
"src": "2190:37:1"
},
"nodeType": "YulFunctionCall",
"src": "2190:65:1"
},
"nodeType": "YulExpressionStatement",
"src": "2190:65:1"
}
]
},
"name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "2116:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "2128:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "2139:4:1",
"type": ""
}
],
"src": "2052:210:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2313:51:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2323:35:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2352:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "2334:17:1"
},
"nodeType": "YulFunctionCall",
"src": "2334:24:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "2323:7:1"
}
]
}
]
},
"name": "cleanup_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2295:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "2305:7:1",
"type": ""
}
],
"src": "2268:96:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2412:48:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2422:32:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2447:5:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "2440:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2440:13:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "2433:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2433:21:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "2422:7:1"
}
]
}
]
},
"name": "cleanup_t_bool",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2394:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "2404:7:1",
"type": ""
}
],
"src": "2370:90:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2511:81:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2521:65:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2536:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2543:42:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "2532:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2532:54:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "2521:7:1"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2493:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "2503:7:1",
"type": ""
}
],
"src": "2466:126:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2643:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2653:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "2664:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "2653:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2625:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "2635:7:1",
"type": ""
}
],
"src": "2598:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2724:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2781:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2790:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2793:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "2783:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2783:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "2783:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2747:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2772:5:1"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "2754:17:1"
},
"nodeType": "YulFunctionCall",
"src": "2754:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "2744:2:1"
},
"nodeType": "YulFunctionCall",
"src": "2744:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "2737:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2737:43:1"
},
"nodeType": "YulIf",
"src": "2734:2:1"
}
]
},
"name": "validator_revert_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2717:5:1",
"type": ""
}
],
"src": "2681:122:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2849:76:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2903:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2912:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2915:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "2905:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2905:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "2905:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2872:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2894:5:1"
}
],
"functionName": {
"name": "cleanup_t_bool",
"nodeType": "YulIdentifier",
"src": "2879:14:1"
},
"nodeType": "YulFunctionCall",
"src": "2879:21:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "2869:2:1"
},
"nodeType": "YulFunctionCall",
"src": "2869:32:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "2862:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2862:40:1"
},
"nodeType": "YulIf",
"src": "2859:2:1"
}
]
},
"name": "validator_revert_t_bool",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2842:5:1",
"type": ""
}
],
"src": "2809:116:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2974:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "3031:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3040:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3043:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3033:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3033:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "3033:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2997:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3022:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "3004:17:1"
},
"nodeType": "YulFunctionCall",
"src": "3004:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "2994:2:1"
},
"nodeType": "YulFunctionCall",
"src": "2994:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "2987:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2987:43:1"
},
"nodeType": "YulIf",
"src": "2984:2:1"
}
]
},
"name": "validator_revert_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2967:5:1",
"type": ""
}
],
"src": "2931:122:1"
}
]
},
"contents": "{\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_t_bool(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint256t_uint256t_bool(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_bool(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "608060405234801561001057600080fd5b506004361061007d5760003560e01c806363717d301161005b57806363717d30146100d85780637c66884414610108578063d6a3aca314610138578063ef5d5684146101545761007d565b80634894ea061461008257806355241077146100b2578063634899ce146100ce575b600080fd5b61009c60048036038101906100979190610336565b610184565b6040516100a99190610422565b60405180910390f35b6100cc60048036038101906100c7919061035f565b6101a4565b005b6100d66101d2565b005b6100f260048036038101906100ed9190610388565b61022b565b6040516100ff9190610422565b60405180910390f35b610122600480360381019061011d919061035f565b610267565b60405161012f9190610422565b60405180910390f35b610152600480360381019061014d91906103c4565b610287565b005b61016e60048036038101906101699190610388565b6102c8565b60405161017b9190610422565b60405180910390f35b60016020528060005260406000206000915054906101000a900460ff1681565b600160008083815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60018060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550565b600060026000848152602001908152602001600020600083815260200190815260200160002060009054906101000a900460ff16905092915050565b60006020528060005260406000206000915054906101000a900460ff1681565b8060026000858152602001908152602001600020600084815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b60026020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b60008135905061030681610485565b92915050565b60008135905061031b8161049c565b92915050565b600081359050610330816104b3565b92915050565b60006020828403121561034857600080fd5b6000610356848285016102f7565b91505092915050565b60006020828403121561037157600080fd5b600061037f84828501610321565b91505092915050565b6000806040838503121561039b57600080fd5b60006103a985828601610321565b92505060206103ba85828601610321565b9150509250929050565b6000806000606084860312156103d957600080fd5b60006103e786828701610321565b93505060206103f886828701610321565b92505060406104098682870161030c565b9150509250925092565b61041c8161044f565b82525050565b60006020820190506104376000830184610413565b92915050565b60006104488261045b565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b61048e8161043d565b811461049957600080fd5b50565b6104a58161044f565b81146104b057600080fd5b50565b6104bc8161047b565b81146104c757600080fd5b5056fea2646970667358221220dcbb87b83a5887f8213094700cece0e0bd082080ed4182c875fe8cc86fb8bc1164736f6c63430008030033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x7D JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x63717D30 GT PUSH2 0x5B JUMPI DUP1 PUSH4 0x63717D30 EQ PUSH2 0xD8 JUMPI DUP1 PUSH4 0x7C668844 EQ PUSH2 0x108 JUMPI DUP1 PUSH4 0xD6A3ACA3 EQ PUSH2 0x138 JUMPI DUP1 PUSH4 0xEF5D5684 EQ PUSH2 0x154 JUMPI PUSH2 0x7D JUMP JUMPDEST DUP1 PUSH4 0x4894EA06 EQ PUSH2 0x82 JUMPI DUP1 PUSH4 0x55241077 EQ PUSH2 0xB2 JUMPI DUP1 PUSH4 0x634899CE EQ PUSH2 0xCE JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x9C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x97 SWAP2 SWAP1 PUSH2 0x336 JUMP JUMPDEST PUSH2 0x184 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA9 SWAP2 SWAP1 PUSH2 0x422 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xCC PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xC7 SWAP2 SWAP1 PUSH2 0x35F JUMP JUMPDEST PUSH2 0x1A4 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xD6 PUSH2 0x1D2 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xF2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xED SWAP2 SWAP1 PUSH2 0x388 JUMP JUMPDEST PUSH2 0x22B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xFF SWAP2 SWAP1 PUSH2 0x422 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x122 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x11D SWAP2 SWAP1 PUSH2 0x35F JUMP JUMPDEST PUSH2 0x267 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x12F SWAP2 SWAP1 PUSH2 0x422 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x152 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x14D SWAP2 SWAP1 PUSH2 0x3C4 JUMP JUMPDEST PUSH2 0x287 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x16E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x169 SWAP2 SWAP1 PUSH2 0x388 JUMP JUMPDEST PUSH2 0x2C8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x17B SWAP2 SWAP1 PUSH2 0x422 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x1 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 DUP1 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x1 DUP1 PUSH1 0x0 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST DUP1 PUSH1 0x2 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x2 PUSH1 0x20 MSTORE DUP2 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x20 MSTORE DUP1 PUSH1 0x0 MSTORE PUSH1 0x40 PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP2 POP SWAP2 POP SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x306 DUP2 PUSH2 0x485 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x31B DUP2 PUSH2 0x49C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x330 DUP2 PUSH2 0x4B3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x348 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x356 DUP5 DUP3 DUP6 ADD PUSH2 0x2F7 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x371 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x37F DUP5 DUP3 DUP6 ADD PUSH2 0x321 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x39B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3A9 DUP6 DUP3 DUP7 ADD PUSH2 0x321 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x3BA DUP6 DUP3 DUP7 ADD PUSH2 0x321 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x3E7 DUP7 DUP3 DUP8 ADD PUSH2 0x321 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x3F8 DUP7 DUP3 DUP8 ADD PUSH2 0x321 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x409 DUP7 DUP3 DUP8 ADD PUSH2 0x30C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH2 0x41C DUP2 PUSH2 0x44F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x437 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x413 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x448 DUP3 PUSH2 0x45B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x48E DUP2 PUSH2 0x43D JUMP JUMPDEST DUP2 EQ PUSH2 0x499 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x4A5 DUP2 PUSH2 0x44F JUMP JUMPDEST DUP2 EQ PUSH2 0x4B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0x4BC DUP2 PUSH2 0x47B JUMP JUMPDEST DUP2 EQ PUSH2 0x4C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDC 0xBB DUP8 0xB8 GASPRICE PC DUP8 0xF8 0x21 ADDRESS SWAP5 PUSH17 0xCECE0E0BD082080ED4182C875FE8CC86F 0xB8 0xBC GT PUSH5 0x736F6C6343 STOP ADDMOD SUB STOP CALLER ",
"sourceMap": "56:885:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;249:47;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;307:79;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;396:88;;;:::i;:::-;;794:145;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;145:38;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;642:142;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;566:65;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;249:47;;;;;;;;;;;;;;;;;;;;;;:::o;307:79::-;375:4;355:9;:17;365:6;355:17;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;307:79;:::o;396:88::-;473:4;443:15;:27;459:10;443:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;396:88::o;794:145::-;873:4;896:19;:27;916:6;896:27;;;;;;;;;;;:36;924:7;896:36;;;;;;;;;;;;;;;;;;;;;889:43;;794:145;;;;:::o;145:38::-;;;;;;;;;;;;;;;;;;;;;;:::o;642:142::-;771:6;732:19;:27;752:6;732:27;;;;;;;;;;;:36;760:7;732:36;;;;;;;;;;;;:45;;;;;;;;;;;;;;;;;;642:142;;;:::o;566:65::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7:139:1:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:133::-;;233:6;220:20;211:29;;249:30;273:5;249:30;:::i;:::-;201:84;;;;:::o;291:139::-;;375:6;362:20;353:29;;391:33;418:5;391:33;:::i;:::-;343:87;;;;:::o;436:262::-;;544:2;532:9;523:7;519:23;515:32;512:2;;;560:1;557;550:12;512:2;603:1;628:53;673:7;664:6;653:9;649:22;628:53;:::i;:::-;618:63;;574:117;502:196;;;;:::o;704:262::-;;812:2;800:9;791:7;787:23;783:32;780:2;;;828:1;825;818:12;780:2;871:1;896:53;941:7;932:6;921:9;917:22;896:53;:::i;:::-;886:63;;842:117;770:196;;;;:::o;972:407::-;;;1097:2;1085:9;1076:7;1072:23;1068:32;1065:2;;;1113:1;1110;1103:12;1065:2;1156:1;1181:53;1226:7;1217:6;1206:9;1202:22;1181:53;:::i;:::-;1171:63;;1127:117;1283:2;1309:53;1354:7;1345:6;1334:9;1330:22;1309:53;:::i;:::-;1299:63;;1254:118;1055:324;;;;;:::o;1385:546::-;;;;1524:2;1512:9;1503:7;1499:23;1495:32;1492:2;;;1540:1;1537;1530:12;1492:2;1583:1;1608:53;1653:7;1644:6;1633:9;1629:22;1608:53;:::i;:::-;1598:63;;1554:117;1710:2;1736:53;1781:7;1772:6;1761:9;1757:22;1736:53;:::i;:::-;1726:63;;1681:118;1838:2;1864:50;1906:7;1897:6;1886:9;1882:22;1864:50;:::i;:::-;1854:60;;1809:115;1482:449;;;;;:::o;1937:109::-;2018:21;2033:5;2018:21;:::i;:::-;2013:3;2006:34;1996:50;;:::o;2052:210::-;;2177:2;2166:9;2162:18;2154:26;;2190:65;2252:1;2241:9;2237:17;2228:6;2190:65;:::i;:::-;2144:118;;;;:::o;2268:96::-;;2334:24;2352:5;2334:24;:::i;:::-;2323:35;;2313:51;;;:::o;2370:90::-;;2447:5;2440:13;2433:21;2422:32;;2412:48;;;:::o;2466:126::-;;2543:42;2536:5;2532:54;2521:65;;2511:81;;;:::o;2598:77::-;;2664:5;2653:16;;2643:32;;;:::o;2681:122::-;2754:24;2772:5;2754:24;:::i;:::-;2747:5;2744:35;2734:2;;2793:1;2790;2783:12;2734:2;2724:79;:::o;2809:116::-;2879:21;2894:5;2879:21;:::i;:::-;2872:5;2869:32;2859:2;;2915:1;2912;2905:12;2859:2;2849:76;:::o;2931:122::-;3004:24;3022:5;3004:24;:::i;:::-;2997:5;2994:35;2984:2;;3043:1;3040;3033:12;2984:2;2974:79;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "256000",
"executionCost": "294",
"totalCost": "256294"
},
"external": {
"getUintUintBoolMapping(uint256,uint256)": "infinite",
"myAdressMapping(address)": "1546",
"myMapping(uint256)": "1518",
"setMyAddressToTrue()": "21145",
"setUintUintBoolMappiing(uint256,uint256,bool)": "infinite",
"setValue(uint256)": "21374",
"uintUintBoolMapping(uint256,uint256)": "infinite"
}
},
"methodIdentifiers": {
"getUintUintBoolMapping(uint256,uint256)": "63717d30",
"myAdressMapping(address)": "4894ea06",
"myMapping(uint256)": "7c668844",
"setMyAddressToTrue()": "634899ce",
"setUintUintBoolMappiing(uint256,uint256,bool)": "d6a3aca3",
"setValue(uint256)": "55241077",
"uintUintBoolMapping(uint256,uint256)": "ef5d5684"
}
},
"abi": [
{
"inputs": [
{
"internalType": "uint256",
"name": "_index",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_index2",
"type": "uint256"
}
],
"name": "getUintUintBoolMapping",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "myAdressMapping",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "myMapping",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "setMyAddressToTrue",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_index",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_index2",
"type": "uint256"
},
{
"internalType": "bool",
"name": "_value",
"type": "bool"
}
],
"name": "setUintUintBoolMappiing",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_index",
"type": "uint256"
}
],
"name": "setValue",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "uintUintBoolMapping",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.3+commit.8d00100c"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "uint256",
"name": "_index",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_index2",
"type": "uint256"
}
],
"name": "getUintUintBoolMapping",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "myAdressMapping",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "myMapping",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "setMyAddressToTrue",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_index",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_index2",
"type": "uint256"
},
{
"internalType": "bool",
"name": "_value",
"type": "bool"
}
],
"name": "setUintUintBoolMappiing",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_index",
"type": "uint256"
}
],
"name": "setValue",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "uintUintBoolMapping",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"SimpleMappingExample.sol": "SimpleMappingExample"
},
"evmVersion": "istanbul",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"SimpleMappingExample.sol": {
"keccak256": "0xffb74256d77f5c41bf29fe79567b324f82c25992b051c46f5af21409e6839108",
"license": "MIT",
"urls": [
"bzz-raw://226d980cc28255213c511f5cd884b14adc14aa173b908320496e928e170fbb80",
"dweb:/ipfs/QmdWBj2TnTnUELVxZ6dvTnfk6bW8kvgaT9usYnhBhX8BhP"
]
}
},
"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
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"generatedSources": [],
"linkReferences": {},
"object": "608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060146101000a81548160ff02191690831515021790555061079f8061007a6000396000f3fe6080604052600436106100705760003560e01c80638da5cb5b1161004e5780638da5cb5b146100e2578063b433d0441461010d578063cbedbf5a14610124578063e272b8921461012e57610070565b806312065fe0146100755780631b52b9de146100a05780635c975abb146100b7575b600080fd5b34801561008157600080fd5b5061008a610157565b604051610097919061063a565b60405180910390f35b3480156100ac57600080fd5b506100b561015f565b005b3480156100c357600080fd5b506100cc61028c565b6040516100d9919061059f565b60405180910390f35b3480156100ee57600080fd5b506100f761029f565b6040516101049190610584565b60405180910390f35b34801561011957600080fd5b506101226102c3565b005b61012c61038a565b005b34801561013a57600080fd5b50610155600480360381019061015091906104a2565b6103e2565b005b600047905090565b60001515600060149054906101000a900460ff161515146101b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101ac9061061a565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610243576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161023a906105da565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610289573d6000803e3d6000fd5b50565b600060149054906101000a900460ff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610351576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610348906105fa565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b60001515600060149054906101000a900460ff161515146103e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103d79061061a565b60405180910390fd5b565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610470576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610467906105ba565b60405180910390fd5b80600060146101000a81548160ff02191690831515021790555050565b60008135905061049c81610752565b92915050565b6000602082840312156104b457600080fd5b60006104c28482850161048d565b91505092915050565b6104d481610666565b82525050565b6104e381610678565b82525050565b60006104f6601283610655565b9150610501826106ae565b602082019050919050565b6000610519601a83610655565b9150610524826106d7565b602082019050919050565b600061053c601583610655565b915061054782610700565b602082019050919050565b600061055f601d83610655565b915061056a82610729565b602082019050919050565b61057e816106a4565b82525050565b600060208201905061059960008301846104cb565b92915050565b60006020820190506105b460008301846104da565b92915050565b600060208201905081810360008301526105d3816104e9565b9050919050565b600060208201905081810360008301526105f38161050c565b9050919050565b600060208201905081810360008301526106138161052f565b9050919050565b6000602082019050818103600083015261063381610552565b9050919050565b600060208201905061064f6000830184610575565b92915050565b600082825260208201905092915050565b600061067182610684565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b7f796f752061696e7420746865206f776e65720000000000000000000000000000600082015250565b7f6e6f7420796f75722062616e6b206163636f756e74206d617465000000000000600082015250565b7f796f752061696e7420746865206d66206f776e65720000000000000000000000600082015250565b7f736f7272792c20636f6e7472616374206973207061757365642061746d000000600082015250565b61075b81610678565b811461076657600080fd5b5056fea2646970667358221220e506ac185688dfaacccd86899817d88521eeba7135d202c6970d4fd90220d60264736f6c63430008010033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLER PUSH1 0x0 DUP1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x0 DUP1 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0x79F DUP1 PUSH2 0x7A PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x70 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x4E JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0xE2 JUMPI DUP1 PUSH4 0xB433D044 EQ PUSH2 0x10D JUMPI DUP1 PUSH4 0xCBEDBF5A EQ PUSH2 0x124 JUMPI DUP1 PUSH4 0xE272B892 EQ PUSH2 0x12E JUMPI PUSH2 0x70 JUMP JUMPDEST DUP1 PUSH4 0x12065FE0 EQ PUSH2 0x75 JUMPI DUP1 PUSH4 0x1B52B9DE EQ PUSH2 0xA0 JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0xB7 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x81 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x8A PUSH2 0x157 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x97 SWAP2 SWAP1 PUSH2 0x63A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB5 PUSH2 0x15F JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCC PUSH2 0x28C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xD9 SWAP2 SWAP1 PUSH2 0x59F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xEE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF7 PUSH2 0x29F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x104 SWAP2 SWAP1 PUSH2 0x584 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x119 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x122 PUSH2 0x2C3 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x12C PUSH2 0x38A JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x13A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x155 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x150 SWAP2 SWAP1 PUSH2 0x4A2 JUMP JUMPDEST PUSH2 0x3E2 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 SELFBALANCE SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 ISZERO ISZERO PUSH1 0x0 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO EQ PUSH2 0x1B5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1AC SWAP1 PUSH2 0x61A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x243 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x23A SWAP1 PUSH2 0x5DA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC SELFBALANCE SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x289 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x351 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x348 SWAP1 PUSH2 0x5FA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SELFDESTRUCT JUMPDEST PUSH1 0x0 ISZERO ISZERO PUSH1 0x0 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO EQ PUSH2 0x3E0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3D7 SWAP1 PUSH2 0x61A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x470 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x467 SWAP1 PUSH2 0x5BA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x0 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x49C DUP2 PUSH2 0x752 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x4C2 DUP5 DUP3 DUP6 ADD PUSH2 0x48D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x4D4 DUP2 PUSH2 0x666 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x4E3 DUP2 PUSH2 0x678 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F6 PUSH1 0x12 DUP4 PUSH2 0x655 JUMP JUMPDEST SWAP2 POP PUSH2 0x501 DUP3 PUSH2 0x6AE JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x519 PUSH1 0x1A DUP4 PUSH2 0x655 JUMP JUMPDEST SWAP2 POP PUSH2 0x524 DUP3 PUSH2 0x6D7 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x53C PUSH1 0x15 DUP4 PUSH2 0x655 JUMP JUMPDEST SWAP2 POP PUSH2 0x547 DUP3 PUSH2 0x700 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x55F PUSH1 0x1D DUP4 PUSH2 0x655 JUMP JUMPDEST SWAP2 POP PUSH2 0x56A DUP3 PUSH2 0x729 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x57E DUP2 PUSH2 0x6A4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x599 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x4CB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x5B4 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x4DA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x5D3 DUP2 PUSH2 0x4E9 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x5F3 DUP2 PUSH2 0x50C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x613 DUP2 PUSH2 0x52F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x633 DUP2 PUSH2 0x552 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x64F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x575 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x671 DUP3 PUSH2 0x684 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x796F752061696E7420746865206F776E65720000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x6E6F7420796F75722062616E6B206163636F756E74206D617465000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x796F752061696E7420746865206D66206F776E65720000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x736F7272792C20636F6E7472616374206973207061757365642061746D000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH2 0x75B DUP2 PUSH2 0x678 JUMP JUMPDEST DUP2 EQ PUSH2 0x766 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE5 MOD 0xAC XOR JUMP DUP9 0xDF 0xAA 0xCC 0xCD DUP7 DUP10 SWAP9 OR 0xD8 DUP6 0x21 0xEE 0xBA PUSH18 0x35D202C6970D4FD90220D60264736F6C6343 STOP ADDMOD ADD STOP CALLER ",
"sourceMap": "61:935:0:-:0;;;154:73;;;;;;;;;;186:10;178:5;;:18;;;;;;;;;;;;;;;;;;215:5;206:6;;:14;;;;;;;;;;;;;;;;;;61:935;;;;;;"
},
"deployedBytecode": {
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:6056:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "56:84:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "66:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "88:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "75:12:1"
},
"nodeType": "YulFunctionCall",
"src": "75:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "66:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "128:5:1"
}
],
"functionName": {
"name": "validator_revert_t_bool",
"nodeType": "YulIdentifier",
"src": "104:23:1"
},
"nodeType": "YulFunctionCall",
"src": "104:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "104:30:1"
}
]
},
"name": "abi_decode_t_bool",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "34:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "42:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "50:5:1",
"type": ""
}
],
"src": "7:133:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "209:193:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "255:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "264:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "267:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "257:6:1"
},
"nodeType": "YulFunctionCall",
"src": "257:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "257:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "230:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "239:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "226:3:1"
},
"nodeType": "YulFunctionCall",
"src": "226:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "251:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "222:3:1"
},
"nodeType": "YulFunctionCall",
"src": "222:32:1"
},
"nodeType": "YulIf",
"src": "219:2:1"
},
{
"nodeType": "YulBlock",
"src": "281:114:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "296:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "310:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "300:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "325:60:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "357:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "368:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "353:3:1"
},
"nodeType": "YulFunctionCall",
"src": "353:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "377:7:1"
}
],
"functionName": {
"name": "abi_decode_t_bool",
"nodeType": "YulIdentifier",
"src": "335:17:1"
},
"nodeType": "YulFunctionCall",
"src": "335:50:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "325:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_bool",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "179:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "190:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "202:6:1",
"type": ""
}
],
"src": "146:256:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "473:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "490:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "513:5:1"
}
],
"functionName": {
"name": "cleanup_t_address",
"nodeType": "YulIdentifier",
"src": "495:17:1"
},
"nodeType": "YulFunctionCall",
"src": "495:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "483:6:1"
},
"nodeType": "YulFunctionCall",
"src": "483:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "483:37:1"
}
]
},
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "461:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "468:3:1",
"type": ""
}
],
"src": "408:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "591:50:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "608:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "628:5:1"
}
],
"functionName": {
"name": "cleanup_t_bool",
"nodeType": "YulIdentifier",
"src": "613:14:1"
},
"nodeType": "YulFunctionCall",
"src": "613:21:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "601:6:1"
},
"nodeType": "YulFunctionCall",
"src": "601:34:1"
},
"nodeType": "YulExpressionStatement",
"src": "601:34:1"
}
]
},
"name": "abi_encode_t_bool_to_t_bool_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "579:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "586:3:1",
"type": ""
}
],
"src": "532:109:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "793:220:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "803:74:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "869:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "874:2:1",
"type": "",
"value": "18"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "810:58:1"
},
"nodeType": "YulFunctionCall",
"src": "810:67:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "803:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "975:3:1"
}
],
"functionName": {
"name": "store_literal_in_memory_06d2334294a759ff3e09d5a778d4885bd855423158a99f9e51802c2901eca929",
"nodeType": "YulIdentifier",
"src": "886:88:1"
},
"nodeType": "YulFunctionCall",
"src": "886:93:1"
},
"nodeType": "YulExpressionStatement",
"src": "886:93:1"
},
{
"nodeType": "YulAssignment",
"src": "988:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "999:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1004:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "995:3:1"
},
"nodeType": "YulFunctionCall",
"src": "995:12:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "988:3:1"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_06d2334294a759ff3e09d5a778d4885bd855423158a99f9e51802c2901eca929_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "781:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "789:3:1",
"type": ""
}
],
"src": "647:366:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1165:220:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1175:74:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1241:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1246:2:1",
"type": "",
"value": "26"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "1182:58:1"
},
"nodeType": "YulFunctionCall",
"src": "1182:67:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1175:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1347:3:1"
}
],
"functionName": {
"name": "store_literal_in_memory_493469d0abf2828603f291e14a827e6a865a66c3f681f018356bf8efdbf5ecb5",
"nodeType": "YulIdentifier",
"src": "1258:88:1"
},
"nodeType": "YulFunctionCall",
"src": "1258:93:1"
},
"nodeType": "YulExpressionStatement",
"src": "1258:93:1"
},
{
"nodeType": "YulAssignment",
"src": "1360:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1371:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1376:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1367:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1367:12:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "1360:3:1"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_493469d0abf2828603f291e14a827e6a865a66c3f681f018356bf8efdbf5ecb5_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1153:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "1161:3:1",
"type": ""
}
],
"src": "1019:366:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1537:220:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1547:74:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1613:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1618:2:1",
"type": "",
"value": "21"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "1554:58:1"
},
"nodeType": "YulFunctionCall",
"src": "1554:67:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1547:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1719:3:1"
}
],
"functionName": {
"name": "store_literal_in_memory_8a368023ec283c6bf9672701a569db90488e2f45f82c1ab1addeccd3233c1c85",
"nodeType": "YulIdentifier",
"src": "1630:88:1"
},
"nodeType": "YulFunctionCall",
"src": "1630:93:1"
},
"nodeType": "YulExpressionStatement",
"src": "1630:93:1"
},
{
"nodeType": "YulAssignment",
"src": "1732:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1743:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1748:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1739:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1739:12:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "1732:3:1"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_8a368023ec283c6bf9672701a569db90488e2f45f82c1ab1addeccd3233c1c85_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1525:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "1533:3:1",
"type": ""
}
],
"src": "1391:366:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1909:220:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1919:74:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1985:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1990:2:1",
"type": "",
"value": "29"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "1926:58:1"
},
"nodeType": "YulFunctionCall",
"src": "1926:67:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1919:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2091:3:1"
}
],
"functionName": {
"name": "store_literal_in_memory_a0085b71a0a245b094483d10cce00de0c0d8119c5431b7f5d906272146a76cae",
"nodeType": "YulIdentifier",
"src": "2002:88:1"
},
"nodeType": "YulFunctionCall",
"src": "2002:93:1"
},
"nodeType": "YulExpressionStatement",
"src": "2002:93:1"
},
{
"nodeType": "YulAssignment",
"src": "2104:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2115:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2120:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2111:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2111:12:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "2104:3:1"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_a0085b71a0a245b094483d10cce00de0c0d8119c5431b7f5d906272146a76cae_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1897:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "1905:3:1",
"type": ""
}
],
"src": "1763:366:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2200:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "2217:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2240:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "2222:17:1"
},
"nodeType": "YulFunctionCall",
"src": "2222:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2210:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2210:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "2210:37:1"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2188:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "2195:3:1",
"type": ""
}
],
"src": "2135:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2357:124:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2367:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2379:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2390:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2375:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2375:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2367:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2447:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2460:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2471:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2456:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2456:17:1"
}
],
"functionName": {
"name": "abi_encode_t_address_to_t_address_fromStack",
"nodeType": "YulIdentifier",
"src": "2403:43:1"
},
"nodeType": "YulFunctionCall",
"src": "2403:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "2403:71:1"
}
]
},
"name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "2329:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "2341:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "2352:4:1",
"type": ""
}
],
"src": "2259:222:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2579:118:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2589:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2601:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2612:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2597:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2597:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2589:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "2663:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2676:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2687:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2672:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2672:17:1"
}
],
"functionName": {
"name": "abi_encode_t_bool_to_t_bool_fromStack",
"nodeType": "YulIdentifier",
"src": "2625:37:1"
},
"nodeType": "YulFunctionCall",
"src": "2625:65:1"
},
"nodeType": "YulExpressionStatement",
"src": "2625:65:1"
}
]
},
"name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "2551:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "2563:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "2574:4:1",
"type": ""
}
],
"src": "2487:210:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2874:248:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2884:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2896:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2907:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2892:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2892:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2884:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2931:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2942:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2927:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2927:17:1"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2950:4:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "2956:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "2946:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2946:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2920:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2920:47:1"
},
"nodeType": "YulExpressionStatement",
"src": "2920:47:1"
},
{
"nodeType": "YulAssignment",
"src": "2976:139:1",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3110:4:1"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_06d2334294a759ff3e09d5a778d4885bd855423158a99f9e51802c2901eca929_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "2984:124:1"
},
"nodeType": "YulFunctionCall",
"src": "2984:131:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "2976:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_06d2334294a759ff3e09d5a778d4885bd855423158a99f9e51802c2901eca929__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "2854:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "2869:4:1",
"type": ""
}
],
"src": "2703:419:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3299:248:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3309:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3321:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3332:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3317:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3317:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3309:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3356:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3367:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3352:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3352:17:1"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3375:4:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3381:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "3371:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3371:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3345:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3345:47:1"
},
"nodeType": "YulExpressionStatement",
"src": "3345:47:1"
},
{
"nodeType": "YulAssignment",
"src": "3401:139:1",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3535:4:1"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_493469d0abf2828603f291e14a827e6a865a66c3f681f018356bf8efdbf5ecb5_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "3409:124:1"
},
"nodeType": "YulFunctionCall",
"src": "3409:131:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3401:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_493469d0abf2828603f291e14a827e6a865a66c3f681f018356bf8efdbf5ecb5__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "3279:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "3294:4:1",
"type": ""
}
],
"src": "3128:419:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3724:248:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3734:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3746:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3757:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3742:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3742:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3734:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3781:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3792:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3777:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3777:17:1"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3800:4:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "3806:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "3796:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3796:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3770:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3770:47:1"
},
"nodeType": "YulExpressionStatement",
"src": "3770:47:1"
},
{
"nodeType": "YulAssignment",
"src": "3826:139:1",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3960:4:1"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_8a368023ec283c6bf9672701a569db90488e2f45f82c1ab1addeccd3233c1c85_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "3834:124:1"
},
"nodeType": "YulFunctionCall",
"src": "3834:131:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "3826:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_8a368023ec283c6bf9672701a569db90488e2f45f82c1ab1addeccd3233c1c85__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "3704:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "3719:4:1",
"type": ""
}
],
"src": "3553:419:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4149:248:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4159:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4171:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4182:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4167:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4167:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "4159:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4206:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4217:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4202:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4202:17:1"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "4225:4:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4231:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "4221:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4221:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4195:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4195:47:1"
},
"nodeType": "YulExpressionStatement",
"src": "4195:47:1"
},
{
"nodeType": "YulAssignment",
"src": "4251:139:1",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "4385:4:1"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_a0085b71a0a245b094483d10cce00de0c0d8119c5431b7f5d906272146a76cae_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "4259:124:1"
},
"nodeType": "YulFunctionCall",
"src": "4259:131:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "4251:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_a0085b71a0a245b094483d10cce00de0c0d8119c5431b7f5d906272146a76cae__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "4129:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "4144:4:1",
"type": ""
}
],
"src": "3978:419:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4501:124:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4511:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4523:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4534:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4519:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4519:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "4511:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "4591:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "4604:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4615:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4600:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4600:17:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "4547:43:1"
},
"nodeType": "YulFunctionCall",
"src": "4547:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "4547:71:1"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "4473:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "4485:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "4496:4:1",
"type": ""
}
],
"src": "4403:222:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4727:73:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4744:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "4749:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "4737:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4737:19:1"
},
"nodeType": "YulExpressionStatement",
"src": "4737:19:1"
},
{
"nodeType": "YulAssignment",
"src": "4765:29:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "4784:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4789:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4780:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4780:14:1"
},
"variableNames": [
{
"name": "updated_pos",
"nodeType": "YulIdentifier",
"src": "4765:11:1"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "4699:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "4704:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nodeType": "YulTypedName",
"src": "4715:11:1",
"type": ""
}
],
"src": "4631:169:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4851:51:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4861:35:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4890:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint160",
"nodeType": "YulIdentifier",
"src": "4872:17:1"
},
"nodeType": "YulFunctionCall",
"src": "4872:24:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "4861:7:1"
}
]
}
]
},
"name": "cleanup_t_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "4833:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "4843:7:1",
"type": ""
}
],
"src": "4806:96:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4950:48:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4960:32:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4985:5:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "4978:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4978:13:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "4971:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4971:21:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "4960:7:1"
}
]
}
]
},
"name": "cleanup_t_bool",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "4932:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "4942:7:1",
"type": ""
}
],
"src": "4908:90:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5049:81:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5059:65:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "5074:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5081:42:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "5070:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5070:54:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "5059:7:1"
}
]
}
]
},
"name": "cleanup_t_uint160",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "5031:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "5041:7:1",
"type": ""
}
],
"src": "5004:126:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5181:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "5191:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "5202:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "5191:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "5163:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "5173:7:1",
"type": ""
}
],
"src": "5136:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5325:62:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "5347:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5355:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5343:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5343:14:1"
},
{
"kind": "string",
"nodeType": "YulLiteral",
"src": "5359:20:1",
"type": "",
"value": "you aint the owner"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5336:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5336:44:1"
},
"nodeType": "YulExpressionStatement",
"src": "5336:44:1"
}
]
},
"name": "store_literal_in_memory_06d2334294a759ff3e09d5a778d4885bd855423158a99f9e51802c2901eca929",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "5317:6:1",
"type": ""
}
],
"src": "5219:168:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5499:70:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "5521:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5529:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5517:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5517:14:1"
},
{
"kind": "string",
"nodeType": "YulLiteral",
"src": "5533:28:1",
"type": "",
"value": "not your bank account mate"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5510:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5510:52:1"
},
"nodeType": "YulExpressionStatement",
"src": "5510:52:1"
}
]
},
"name": "store_literal_in_memory_493469d0abf2828603f291e14a827e6a865a66c3f681f018356bf8efdbf5ecb5",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "5491:6:1",
"type": ""
}
],
"src": "5393:176:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5681:65:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "5703:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5711:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5699:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5699:14:1"
},
{
"kind": "string",
"nodeType": "YulLiteral",
"src": "5715:23:1",
"type": "",
"value": "you aint the mf owner"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5692:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5692:47:1"
},
"nodeType": "YulExpressionStatement",
"src": "5692:47:1"
}
]
},
"name": "store_literal_in_memory_8a368023ec283c6bf9672701a569db90488e2f45f82c1ab1addeccd3233c1c85",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "5673:6:1",
"type": ""
}
],
"src": "5575:171:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5858:73:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "5880:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "5888:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "5876:3:1"
},
"nodeType": "YulFunctionCall",
"src": "5876:14:1"
},
{
"kind": "string",
"nodeType": "YulLiteral",
"src": "5892:31:1",
"type": "",
"value": "sorry, contract is paused atm"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "5869:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5869:55:1"
},
"nodeType": "YulExpressionStatement",
"src": "5869:55:1"
}
]
},
"name": "store_literal_in_memory_a0085b71a0a245b094483d10cce00de0c0d8119c5431b7f5d906272146a76cae",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "5850:6:1",
"type": ""
}
],
"src": "5752:179:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "5977:76:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "6031:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6040:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "6043:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "6033:6:1"
},
"nodeType": "YulFunctionCall",
"src": "6033:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "6033:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6000:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "6022:5:1"
}
],
"functionName": {
"name": "cleanup_t_bool",
"nodeType": "YulIdentifier",
"src": "6007:14:1"
},
"nodeType": "YulFunctionCall",
"src": "6007:21:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "5997:2:1"
},
"nodeType": "YulFunctionCall",
"src": "5997:32:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "5990:6:1"
},
"nodeType": "YulFunctionCall",
"src": "5990:40:1"
},
"nodeType": "YulIf",
"src": "5987:2:1"
}
]
},
"name": "validator_revert_t_bool",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "5970:5:1",
"type": ""
}
],
"src": "5937:116:1"
}
]
},
"contents": "{\n\n function abi_decode_t_bool(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_bool(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bool(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_t_stringliteral_06d2334294a759ff3e09d5a778d4885bd855423158a99f9e51802c2901eca929_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 18)\n store_literal_in_memory_06d2334294a759ff3e09d5a778d4885bd855423158a99f9e51802c2901eca929(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_t_stringliteral_493469d0abf2828603f291e14a827e6a865a66c3f681f018356bf8efdbf5ecb5_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 26)\n store_literal_in_memory_493469d0abf2828603f291e14a827e6a865a66c3f681f018356bf8efdbf5ecb5(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_t_stringliteral_8a368023ec283c6bf9672701a569db90488e2f45f82c1ab1addeccd3233c1c85_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 21)\n store_literal_in_memory_8a368023ec283c6bf9672701a569db90488e2f45f82c1ab1addeccd3233c1c85(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_t_stringliteral_a0085b71a0a245b094483d10cce00de0c0d8119c5431b7f5d906272146a76cae_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 29)\n store_literal_in_memory_a0085b71a0a245b094483d10cce00de0c0d8119c5431b7f5d906272146a76cae(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_stringliteral_06d2334294a759ff3e09d5a778d4885bd855423158a99f9e51802c2901eca929__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_06d2334294a759ff3e09d5a778d4885bd855423158a99f9e51802c2901eca929_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_493469d0abf2828603f291e14a827e6a865a66c3f681f018356bf8efdbf5ecb5__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_493469d0abf2828603f291e14a827e6a865a66c3f681f018356bf8efdbf5ecb5_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_8a368023ec283c6bf9672701a569db90488e2f45f82c1ab1addeccd3233c1c85__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_8a368023ec283c6bf9672701a569db90488e2f45f82c1ab1addeccd3233c1c85_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_a0085b71a0a245b094483d10cce00de0c0d8119c5431b7f5d906272146a76cae__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_a0085b71a0a245b094483d10cce00de0c0d8119c5431b7f5d906272146a76cae_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function store_literal_in_memory_06d2334294a759ff3e09d5a778d4885bd855423158a99f9e51802c2901eca929(memPtr) {\n\n mstore(add(memPtr, 0), \"you aint the owner\")\n\n }\n\n function store_literal_in_memory_493469d0abf2828603f291e14a827e6a865a66c3f681f018356bf8efdbf5ecb5(memPtr) {\n\n mstore(add(memPtr, 0), \"not your bank account mate\")\n\n }\n\n function store_literal_in_memory_8a368023ec283c6bf9672701a569db90488e2f45f82c1ab1addeccd3233c1c85(memPtr) {\n\n mstore(add(memPtr, 0), \"you aint the mf owner\")\n\n }\n\n function store_literal_in_memory_a0085b71a0a245b094483d10cce00de0c0d8119c5431b7f5d906272146a76cae(memPtr) {\n\n mstore(add(memPtr, 0), \"sorry, contract is paused atm\")\n\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "6080604052600436106100705760003560e01c80638da5cb5b1161004e5780638da5cb5b146100e2578063b433d0441461010d578063cbedbf5a14610124578063e272b8921461012e57610070565b806312065fe0146100755780631b52b9de146100a05780635c975abb146100b7575b600080fd5b34801561008157600080fd5b5061008a610157565b604051610097919061063a565b60405180910390f35b3480156100ac57600080fd5b506100b561015f565b005b3480156100c357600080fd5b506100cc61028c565b6040516100d9919061059f565b60405180910390f35b3480156100ee57600080fd5b506100f761029f565b6040516101049190610584565b60405180910390f35b34801561011957600080fd5b506101226102c3565b005b61012c61038a565b005b34801561013a57600080fd5b50610155600480360381019061015091906104a2565b6103e2565b005b600047905090565b60001515600060149054906101000a900460ff161515146101b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101ac9061061a565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610243576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161023a906105da565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610289573d6000803e3d6000fd5b50565b600060149054906101000a900460ff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610351576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610348906105fa565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b60001515600060149054906101000a900460ff161515146103e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103d79061061a565b60405180910390fd5b565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610470576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610467906105ba565b60405180910390fd5b80600060146101000a81548160ff02191690831515021790555050565b60008135905061049c81610752565b92915050565b6000602082840312156104b457600080fd5b60006104c28482850161048d565b91505092915050565b6104d481610666565b82525050565b6104e381610678565b82525050565b60006104f6601283610655565b9150610501826106ae565b602082019050919050565b6000610519601a83610655565b9150610524826106d7565b602082019050919050565b600061053c601583610655565b915061054782610700565b602082019050919050565b600061055f601d83610655565b915061056a82610729565b602082019050919050565b61057e816106a4565b82525050565b600060208201905061059960008301846104cb565b92915050565b60006020820190506105b460008301846104da565b92915050565b600060208201905081810360008301526105d3816104e9565b9050919050565b600060208201905081810360008301526105f38161050c565b9050919050565b600060208201905081810360008301526106138161052f565b9050919050565b6000602082019050818103600083015261063381610552565b9050919050565b600060208201905061064f6000830184610575565b92915050565b600082825260208201905092915050565b600061067182610684565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b7f796f752061696e7420746865206f776e65720000000000000000000000000000600082015250565b7f6e6f7420796f75722062616e6b206163636f756e74206d617465000000000000600082015250565b7f796f752061696e7420746865206d66206f776e65720000000000000000000000600082015250565b7f736f7272792c20636f6e7472616374206973207061757365642061746d000000600082015250565b61075b81610678565b811461076657600080fd5b5056fea2646970667358221220e506ac185688dfaacccd86899817d88521eeba7135d202c6970d4fd90220d60264736f6c63430008010033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x70 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x4E JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0xE2 JUMPI DUP1 PUSH4 0xB433D044 EQ PUSH2 0x10D JUMPI DUP1 PUSH4 0xCBEDBF5A EQ PUSH2 0x124 JUMPI DUP1 PUSH4 0xE272B892 EQ PUSH2 0x12E JUMPI PUSH2 0x70 JUMP JUMPDEST DUP1 PUSH4 0x12065FE0 EQ PUSH2 0x75 JUMPI DUP1 PUSH4 0x1B52B9DE EQ PUSH2 0xA0 JUMPI DUP1 PUSH4 0x5C975ABB EQ PUSH2 0xB7 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x81 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x8A PUSH2 0x157 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x97 SWAP2 SWAP1 PUSH2 0x63A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB5 PUSH2 0x15F JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCC PUSH2 0x28C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xD9 SWAP2 SWAP1 PUSH2 0x59F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xEE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xF7 PUSH2 0x29F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x104 SWAP2 SWAP1 PUSH2 0x584 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x119 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x122 PUSH2 0x2C3 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x12C PUSH2 0x38A JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x13A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x155 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x150 SWAP2 SWAP1 PUSH2 0x4A2 JUMP JUMPDEST PUSH2 0x3E2 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 SELFBALANCE SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 ISZERO ISZERO PUSH1 0x0 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO EQ PUSH2 0x1B5 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1AC SWAP1 PUSH2 0x61A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x243 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x23A SWAP1 PUSH2 0x5DA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC SELFBALANCE SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x289 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x351 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x348 SWAP1 PUSH2 0x5FA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SELFDESTRUCT JUMPDEST PUSH1 0x0 ISZERO ISZERO PUSH1 0x0 PUSH1 0x14 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO EQ PUSH2 0x3E0 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3D7 SWAP1 PUSH2 0x61A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x470 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x467 SWAP1 PUSH2 0x5BA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x0 PUSH1 0x14 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x49C DUP2 PUSH2 0x752 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x4C2 DUP5 DUP3 DUP6 ADD PUSH2 0x48D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x4D4 DUP2 PUSH2 0x666 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x4E3 DUP2 PUSH2 0x678 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F6 PUSH1 0x12 DUP4 PUSH2 0x655 JUMP JUMPDEST SWAP2 POP PUSH2 0x501 DUP3 PUSH2 0x6AE JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x519 PUSH1 0x1A DUP4 PUSH2 0x655 JUMP JUMPDEST SWAP2 POP PUSH2 0x524 DUP3 PUSH2 0x6D7 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x53C PUSH1 0x15 DUP4 PUSH2 0x655 JUMP JUMPDEST SWAP2 POP PUSH2 0x547 DUP3 PUSH2 0x700 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x55F PUSH1 0x1D DUP4 PUSH2 0x655 JUMP JUMPDEST SWAP2 POP PUSH2 0x56A DUP3 PUSH2 0x729 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x57E DUP2 PUSH2 0x6A4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x599 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x4CB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x5B4 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x4DA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x5D3 DUP2 PUSH2 0x4E9 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x5F3 DUP2 PUSH2 0x50C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x613 DUP2 PUSH2 0x52F JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x633 DUP2 PUSH2 0x552 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x64F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x575 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x671 DUP3 PUSH2 0x684 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x796F752061696E7420746865206F776E65720000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x6E6F7420796F75722062616E6B206163636F756E74206D617465000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x796F752061696E7420746865206D66206F776E65720000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH32 0x736F7272792C20636F6E7472616374206973207061757365642061746D000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH2 0x75B DUP2 PUSH2 0x678 JUMP JUMPDEST DUP2 EQ PUSH2 0x766 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE5 MOD 0xAC XOR JUMP DUP9 0xDF 0xAA 0xCC 0xCD DUP7 DUP10 SWAP9 OR 0xD8 DUP6 0x21 0xEE 0xBA PUSH18 0x35D202C6970D4FD90220D60264736F6C6343 STOP ADDMOD ADD STOP CALLER ",
"sourceMap": "61:935:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;382:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;605:238;;;;;;;;;;;;;:::i;:::-;;125:18;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;99:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;853:141;;;;;;;;;;;;;:::i;:::-;;485:110;;;:::i;:::-;;237:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;382:93;424:4;447:21;440:28;;382:93;:::o;605:238::-;668:5;658:15;;:6;;;;;;;;;;;:15;;;650:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;734:10;725:19;;:5;;;;;;;;;;:19;;;717:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;793:10;785:28;;:51;814:21;785:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;605:238::o;125:18::-;;;;;;;;;;;;;:::o;99:20::-;;;;;;;;;;;;:::o;853:141::-;918:5;;;;;;;;;;904:19;;:10;:19;;;896:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;980:5;;;;;;;;;;959:28;;;485:110;549:5;539:15;;:6;;;;;;;;;;;:15;;;531:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;485:110::o;237:135::-;312:5;;;;;;;;;;298:19;;:10;:19;;;290:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;359:6;350;;:15;;;;;;;;;;;;;;;;;;237:135;:::o;7:133:1:-;;88:6;75:20;66:29;;104:30;128:5;104:30;:::i;:::-;56:84;;;;:::o;146:256::-;;251:2;239:9;230:7;226:23;222:32;219:2;;;267:1;264;257:12;219:2;310:1;335:50;377:7;368:6;357:9;353:22;335:50;:::i;:::-;325:60;;281:114;209:193;;;;:::o;408:118::-;495:24;513:5;495:24;:::i;:::-;490:3;483:37;473:53;;:::o;532:109::-;613:21;628:5;613:21;:::i;:::-;608:3;601:34;591:50;;:::o;647:366::-;;810:67;874:2;869:3;810:67;:::i;:::-;803:74;;886:93;975:3;886:93;:::i;:::-;1004:2;999:3;995:12;988:19;;793:220;;;:::o;1019:366::-;;1182:67;1246:2;1241:3;1182:67;:::i;:::-;1175:74;;1258:93;1347:3;1258:93;:::i;:::-;1376:2;1371:3;1367:12;1360:19;;1165:220;;;:::o;1391:366::-;;1554:67;1618:2;1613:3;1554:67;:::i;:::-;1547:74;;1630:93;1719:3;1630:93;:::i;:::-;1748:2;1743:3;1739:12;1732:19;;1537:220;;;:::o;1763:366::-;;1926:67;1990:2;1985:3;1926:67;:::i;:::-;1919:74;;2002:93;2091:3;2002:93;:::i;:::-;2120:2;2115:3;2111:12;2104:19;;1909:220;;;:::o;2135:118::-;2222:24;2240:5;2222:24;:::i;:::-;2217:3;2210:37;2200:53;;:::o;2259:222::-;;2390:2;2379:9;2375:18;2367:26;;2403:71;2471:1;2460:9;2456:17;2447:6;2403:71;:::i;:::-;2357:124;;;;:::o;2487:210::-;;2612:2;2601:9;2597:18;2589:26;;2625:65;2687:1;2676:9;2672:17;2663:6;2625:65;:::i;:::-;2579:118;;;;:::o;2703:419::-;;2907:2;2896:9;2892:18;2884:26;;2956:9;2950:4;2946:20;2942:1;2931:9;2927:17;2920:47;2984:131;3110:4;2984:131;:::i;:::-;2976:139;;2874:248;;;:::o;3128:419::-;;3332:2;3321:9;3317:18;3309:26;;3381:9;3375:4;3371:20;3367:1;3356:9;3352:17;3345:47;3409:131;3535:4;3409:131;:::i;:::-;3401:139;;3299:248;;;:::o;3553:419::-;;3757:2;3746:9;3742:18;3734:26;;3806:9;3800:4;3796:20;3792:1;3781:9;3777:17;3770:47;3834:131;3960:4;3834:131;:::i;:::-;3826:139;;3724:248;;;:::o;3978:419::-;;4182:2;4171:9;4167:18;4159:26;;4231:9;4225:4;4221:20;4217:1;4206:9;4202:17;4195:47;4259:131;4385:4;4259:131;:::i;:::-;4251:139;;4149:248;;;:::o;4403:222::-;;4534:2;4523:9;4519:18;4511:26;;4547:71;4615:1;4604:9;4600:17;4591:6;4547:71;:::i;:::-;4501:124;;;;:::o;4631:169::-;;4749:6;4744:3;4737:19;4789:4;4784:3;4780:14;4765:29;;4727:73;;;;:::o;4806:96::-;;4872:24;4890:5;4872:24;:::i;:::-;4861:35;;4851:51;;;:::o;4908:90::-;;4985:5;4978:13;4971:21;4960:32;;4950:48;;;:::o;5004:126::-;;5081:42;5074:5;5070:54;5059:65;;5049:81;;;:::o;5136:77::-;;5202:5;5191:16;;5181:32;;;:::o;5219:168::-;5359:20;5355:1;5347:6;5343:14;5336:44;5325:62;:::o;5393:176::-;5533:28;5529:1;5521:6;5517:14;5510:52;5499:70;:::o;5575:171::-;5715:23;5711:1;5703:6;5699:14;5692:47;5681:65;:::o;5752:179::-;5892:31;5888:1;5880:6;5876:14;5869:55;5858:73;:::o;5937:116::-;6007:21;6022:5;6007:21;:::i;:::-;6000:5;5997:32;5987:2;;6043:1;6040;6033:12;5987:2;5977:76;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "390200",
"executionCost": "42207",
"totalCost": "432407"
},
"external": {
"destoryThyself()": "31866",
"getBalance()": "340",
"owner()": "1211",
"pauseContract(bool)": "22262",
"paused()": "1266",
"sendMoney()": "1374",
"withdrawAllMoney()": "infinite"
}
},
"methodIdentifiers": {
"destoryThyself()": "b433d044",
"getBalance()": "12065fe0",
"owner()": "8da5cb5b",
"pauseContract(bool)": "e272b892",
"paused()": "5c975abb",
"sendMoney()": "cbedbf5a",
"withdrawAllMoney()": "1b52b9de"
}
},
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "destoryThyself",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "getBalance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bool",
"name": "_state",
"type": "bool"
}
],
"name": "pauseContract",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "paused",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "sendMoney",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "withdrawAllMoney",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.1+commit.df193b15"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "destoryThyself",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "getBalance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bool",
"name": "_state",
"type": "bool"
}
],
"name": "pauseContract",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "paused",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "sendMoney",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "withdrawAllMoney",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"StartStopUpdateExample.sol": "StartStopUpdateExample"
},
"evmVersion": "istanbul",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"StartStopUpdateExample.sol": {
"keccak256": "0x325196a2c659723bfa2f9b28e452e86a1d0a3e05b63ea7165b18e25ffa7c4ee7",
"license": "GPL-3.0",
"urls": [
"bzz-raw://5dc0b7257773b2dadfcb3cfa075e36e7c71c5d8540a43e703d068e755ecd3e42",
"dweb:/ipfs/QmUyYF4tVnYJ4GQTdAukd4qC3JaT8UNaVbtMT4KJQMsU4i"
]
}
},
"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
},
"görli:5": {
"linkReferences": {},
"autoDeployLib": true
},
"Custom": {
"linkReferences": {},
"autoDeployLib": true
}
},
"data": {
"bytecode": {
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:470:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "52:146:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "62:25:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "85:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "67:17:1"
},
"nodeType": "YulFunctionCall",
"src": "67:20:1"
},
"variableNames": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "62:1:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "96:25:1",
"value": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "119:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "101:17:1"
},
"nodeType": "YulFunctionCall",
"src": "101:20:1"
},
"variableNames": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "96:1:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "143:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "145:16:1"
},
"nodeType": "YulFunctionCall",
"src": "145:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "145:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "137:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "140:1:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "134:2:1"
},
"nodeType": "YulFunctionCall",
"src": "134:8:1"
},
"nodeType": "YulIf",
"src": "131:2:1"
},
{
"nodeType": "YulAssignment",
"src": "175:17:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "187:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "190:1:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "183:3:1"
},
"nodeType": "YulFunctionCall",
"src": "183:9:1"
},
"variableNames": [
{
"name": "diff",
"nodeType": "YulIdentifier",
"src": "175:4:1"
}
]
}
]
},
"name": "checked_sub_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "38:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "41:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "diff",
"nodeType": "YulTypedName",
"src": "47:4:1",
"type": ""
}
],
"src": "7:191:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "249:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "259:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "270:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "259:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "231:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "241:7:1",
"type": ""
}
],
"src": "204:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "315:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "332:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "335:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "325:6:1"
},
"nodeType": "YulFunctionCall",
"src": "325:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "325:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "429:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "432:4:1",
"type": "",
"value": "0x11"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "422:6:1"
},
"nodeType": "YulFunctionCall",
"src": "422:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "422:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "453:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "456:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "446:6:1"
},
"nodeType": "YulFunctionCall",
"src": "446:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "446:15:1"
}
]
},
"name": "panic_error_0x11",
"nodeType": "YulFunctionDefinition",
"src": "287:180:1"
}
]
},
"contents": "{\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n if lt(x, y) { panic_error_0x11() }\n\n diff := sub(x, y)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"linkReferences": {},
"object": "6080604052603c426100119190610040565b60015410600260006101000a81548160ff02191690831515021790555034801561003a57600080fd5b506100ad565b600061004b82610074565b915061005683610074565b9250828210156100695761006861007e565b5b828203905092915050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b610450806100bc6000396000f3fe6080604052600436106100705760003560e01c80631f1871251161004e5780631f187125146100f65780633ccfd60b146101215780634d52614c146101385780636d26ec181461016357610070565b8063047cd8741461007557806312065fe0146100a057806316ada547146100cb575b600080fd5b34801561008157600080fd5b5061008a61016d565b60405161009791906102bb565b60405180910390f35b3480156100ac57600080fd5b506100b5610180565b6040516100c291906102f6565b60405180910390f35b3480156100d757600080fd5b506100e0610188565b6040516100ed91906102f6565b60405180910390f35b34801561010257600080fd5b5061010b61018e565b60405161011891906102f6565b60405180910390f35b34801561012d57600080fd5b506101366101ad565b005b34801561014457600080fd5b5061014d610253565b60405161015a91906102f6565b60405180910390f35b61016b610259565b005b600260009054906101000a900460ff1681565b600047905090565b60015481565b6000603c60015461019f9190610378565b600381905550600354905090565b603c426101ba9190610378565b600154106101fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101f4906102d6565b60405180910390fd5b60003390508073ffffffffffffffffffffffffffffffffffffffff166108fc610224610180565b9081150290604051600060405180830381858888f1935050505015801561024f573d6000803e3d6000fd5b5050565b60035481565b42600181905550346000808282546102719190610322565b92505081905550565b610283816103ac565b82525050565b6000610296601983610311565b91506102a1826103f1565b602082019050919050565b6102b5816103b8565b82525050565b60006020820190506102d0600083018461027a565b92915050565b600060208201905081810360008301526102ef81610289565b9050919050565b600060208201905061030b60008301846102ac565b92915050565b600082825260208201905092915050565b600061032d826103b8565b9150610338836103b8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561036d5761036c6103c2565b5b828201905092915050565b6000610383826103b8565b915061038e836103b8565b9250828210156103a1576103a06103c2565b5b828203905092915050565b60008115159050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f6c6574207468652065746865722062616b652061206c696c200000000000000060008201525056fea2646970667358221220e3b10c2c1c9841a597a7f1076a7d094e7205ab4c40616401ffc9ece57d66e39764736f6c63430008010033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x3C TIMESTAMP PUSH2 0x11 SWAP2 SWAP1 PUSH2 0x40 JUMP JUMPDEST PUSH1 0x1 SLOAD LT PUSH1 0x2 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP CALLVALUE DUP1 ISZERO PUSH2 0x3A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xAD JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4B DUP3 PUSH2 0x74 JUMP JUMPDEST SWAP2 POP PUSH2 0x56 DUP4 PUSH2 0x74 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 LT ISZERO PUSH2 0x69 JUMPI PUSH2 0x68 PUSH2 0x7E JUMP JUMPDEST JUMPDEST DUP3 DUP3 SUB SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x450 DUP1 PUSH2 0xBC PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x70 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x1F187125 GT PUSH2 0x4E JUMPI DUP1 PUSH4 0x1F187125 EQ PUSH2 0xF6 JUMPI DUP1 PUSH4 0x3CCFD60B EQ PUSH2 0x121 JUMPI DUP1 PUSH4 0x4D52614C EQ PUSH2 0x138 JUMPI DUP1 PUSH4 0x6D26EC18 EQ PUSH2 0x163 JUMPI PUSH2 0x70 JUMP JUMPDEST DUP1 PUSH4 0x47CD874 EQ PUSH2 0x75 JUMPI DUP1 PUSH4 0x12065FE0 EQ PUSH2 0xA0 JUMPI DUP1 PUSH4 0x16ADA547 EQ PUSH2 0xCB JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x81 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x8A PUSH2 0x16D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x97 SWAP2 SWAP1 PUSH2 0x2BB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB5 PUSH2 0x180 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC2 SWAP2 SWAP1 PUSH2 0x2F6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xE0 PUSH2 0x188 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xED SWAP2 SWAP1 PUSH2 0x2F6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x102 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10B PUSH2 0x18E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x118 SWAP2 SWAP1 PUSH2 0x2F6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x12D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x136 PUSH2 0x1AD JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x144 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x14D PUSH2 0x253 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x15A SWAP2 SWAP1 PUSH2 0x2F6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x16B PUSH2 0x259 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 SELFBALANCE SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3C PUSH1 0x1 SLOAD PUSH2 0x19F SWAP2 SWAP1 PUSH2 0x378 JUMP JUMPDEST PUSH1 0x3 DUP2 SWAP1 SSTORE POP PUSH1 0x3 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x3C TIMESTAMP PUSH2 0x1BA SWAP2 SWAP1 PUSH2 0x378 JUMP JUMPDEST PUSH1 0x1 SLOAD LT PUSH2 0x1FD JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1F4 SWAP1 PUSH2 0x2D6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 CALLER SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC PUSH2 0x224 PUSH2 0x180 JUMP JUMPDEST SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x24F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST TIMESTAMP PUSH1 0x1 DUP2 SWAP1 SSTORE POP CALLVALUE PUSH1 0x0 DUP1 DUP3 DUP3 SLOAD PUSH2 0x271 SWAP2 SWAP1 PUSH2 0x322 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMP JUMPDEST PUSH2 0x283 DUP2 PUSH2 0x3AC JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x296 PUSH1 0x19 DUP4 PUSH2 0x311 JUMP JUMPDEST SWAP2 POP PUSH2 0x2A1 DUP3 PUSH2 0x3F1 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2B5 DUP2 PUSH2 0x3B8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2D0 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x27A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2EF DUP2 PUSH2 0x289 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x30B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2AC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x32D DUP3 PUSH2 0x3B8 JUMP JUMPDEST SWAP2 POP PUSH2 0x338 DUP4 PUSH2 0x3B8 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x36D JUMPI PUSH2 0x36C PUSH2 0x3C2 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x383 DUP3 PUSH2 0x3B8 JUMP JUMPDEST SWAP2 POP PUSH2 0x38E DUP4 PUSH2 0x3B8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 LT ISZERO PUSH2 0x3A1 JUMPI PUSH2 0x3A0 PUSH2 0x3C2 JUMP JUMPDEST JUMPDEST DUP3 DUP3 SUB SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x6C6574207468652065746865722062616B652061206C696C2000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE3 0xB1 0xC 0x2C SHR SWAP9 COINBASE 0xA5 SWAP8 0xA7 CALL SMOD PUSH11 0x7D094E7205AB4C40616401 SELFDESTRUCT 0xC9 0xEC 0xE5 PUSH30 0x66E39764736F6C6343000801003300000000000000000000000000000000 ",
"sourceMap": "62:822:0:-:0;;;258:9;240:15;:27;;;;:::i;:::-;233:4;;:34;213:54;;;;;;;;;;;;;;;;;;;;62:822;;;;;;;;;;;;7:191:1;;67:20;85:1;67:20;:::i;:::-;62:25;;101:20;119:1;101:20;:::i;:::-;96:25;;140:1;137;134:8;131:2;;;145:18;;:::i;:::-;131:2;190:1;187;183:9;175:17;;52:146;;;;:::o;204:77::-;;270:5;259:16;;249:32;;;:::o;287:180::-;335:77;332:1;325:88;432:4;429:1;422:15;456:4;453:1;446:15;62:822:0;;;;;;;"
},
"deployedBytecode": {
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:2713:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "66:50:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "83:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "103:5:1"
}
],
"functionName": {
"name": "cleanup_t_bool",
"nodeType": "YulIdentifier",
"src": "88:14:1"
},
"nodeType": "YulFunctionCall",
"src": "88:21:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "76:6:1"
},
"nodeType": "YulFunctionCall",
"src": "76:34:1"
},
"nodeType": "YulExpressionStatement",
"src": "76:34:1"
}
]
},
"name": "abi_encode_t_bool_to_t_bool_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "54:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "61:3:1",
"type": ""
}
],
"src": "7:109:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "268:220:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "278:74:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "344:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "349:2:1",
"type": "",
"value": "25"
}
],
"functionName": {
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "285:58:1"
},
"nodeType": "YulFunctionCall",
"src": "285:67:1"
},
"variableNames": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "278:3:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "450:3:1"
}
],
"functionName": {
"name": "store_literal_in_memory_edb65d8d42047879924c1ce68433d2eab0c42afedfba1fb806c91a0695420cd8",
"nodeType": "YulIdentifier",
"src": "361:88:1"
},
"nodeType": "YulFunctionCall",
"src": "361:93:1"
},
"nodeType": "YulExpressionStatement",
"src": "361:93:1"
},
{
"nodeType": "YulAssignment",
"src": "463:19:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "474:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "479:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "470:3:1"
},
"nodeType": "YulFunctionCall",
"src": "470:12:1"
},
"variableNames": [
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "463:3:1"
}
]
}
]
},
"name": "abi_encode_t_stringliteral_edb65d8d42047879924c1ce68433d2eab0c42afedfba1fb806c91a0695420cd8_to_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "256:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "end",
"nodeType": "YulTypedName",
"src": "264:3:1",
"type": ""
}
],
"src": "122:366:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "559:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "576:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "599:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "581:17:1"
},
"nodeType": "YulFunctionCall",
"src": "581:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "569:6:1"
},
"nodeType": "YulFunctionCall",
"src": "569:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "569:37:1"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "547:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "554:3:1",
"type": ""
}
],
"src": "494:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "710:118:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "720:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "732:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "743:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "728:3:1"
},
"nodeType": "YulFunctionCall",
"src": "728:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "720:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "794:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "807:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "818:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "803:3:1"
},
"nodeType": "YulFunctionCall",
"src": "803:17:1"
}
],
"functionName": {
"name": "abi_encode_t_bool_to_t_bool_fromStack",
"nodeType": "YulIdentifier",
"src": "756:37:1"
},
"nodeType": "YulFunctionCall",
"src": "756:65:1"
},
"nodeType": "YulExpressionStatement",
"src": "756:65:1"
}
]
},
"name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "682:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "694:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "705:4:1",
"type": ""
}
],
"src": "618:210:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1005:248:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1015:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1027:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1038:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1023:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1023:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1015:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1062:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1073:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1058:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1058:17:1"
},
{
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1081:4:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1087:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "1077:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1077:20:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1051:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1051:47:1"
},
"nodeType": "YulExpressionStatement",
"src": "1051:47:1"
},
{
"nodeType": "YulAssignment",
"src": "1107:139:1",
"value": {
"arguments": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1241:4:1"
}
],
"functionName": {
"name": "abi_encode_t_stringliteral_edb65d8d42047879924c1ce68433d2eab0c42afedfba1fb806c91a0695420cd8_to_t_string_memory_ptr_fromStack",
"nodeType": "YulIdentifier",
"src": "1115:124:1"
},
"nodeType": "YulFunctionCall",
"src": "1115:131:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1107:4:1"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_edb65d8d42047879924c1ce68433d2eab0c42afedfba1fb806c91a0695420cd8__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "985:9:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "1000:4:1",
"type": ""
}
],
"src": "834:419:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1357:124:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1367:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1379:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1390:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1375:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1375:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1367:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1447:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1460:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1471:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1456:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1456:17:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "1403:43:1"
},
"nodeType": "YulFunctionCall",
"src": "1403:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "1403:71:1"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1329:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1341:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "1352:4:1",
"type": ""
}
],
"src": "1259:222:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1583:73:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1600:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "1605:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1593:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1593:19:1"
},
"nodeType": "YulExpressionStatement",
"src": "1593:19:1"
},
{
"nodeType": "YulAssignment",
"src": "1621:29:1",
"value": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1640:3:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1645:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1636:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1636:14:1"
},
"variableNames": [
{
"name": "updated_pos",
"nodeType": "YulIdentifier",
"src": "1621:11:1"
}
]
}
]
},
"name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1555:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "1560:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "updated_pos",
"nodeType": "YulTypedName",
"src": "1571:11:1",
"type": ""
}
],
"src": "1487:169:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1706:261:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1716:25:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "1739:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "1721:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1721:20:1"
},
"variableNames": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "1716:1:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "1750:25:1",
"value": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "1773:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "1755:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1755:20:1"
},
"variableNames": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "1750:1:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1913:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "1915:16:1"
},
"nodeType": "YulFunctionCall",
"src": "1915:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "1915:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "1834:1:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1841:66:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "1909:1:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "1837:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1837:74:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "1831:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1831:81:1"
},
"nodeType": "YulIf",
"src": "1828:2:1"
},
{
"nodeType": "YulAssignment",
"src": "1945:16:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "1956:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "1959:1:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1952:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1952:9:1"
},
"variableNames": [
{
"name": "sum",
"nodeType": "YulIdentifier",
"src": "1945:3:1"
}
]
}
]
},
"name": "checked_add_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "1693:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "1696:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "sum",
"nodeType": "YulTypedName",
"src": "1702:3:1",
"type": ""
}
],
"src": "1662:305:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2018:146:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2028:25:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "2051:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "2033:17:1"
},
"nodeType": "YulFunctionCall",
"src": "2033:20:1"
},
"variableNames": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "2028:1:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "2062:25:1",
"value": {
"arguments": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "2085:1:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "2067:17:1"
},
"nodeType": "YulFunctionCall",
"src": "2067:20:1"
},
"variableNames": [
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "2062:1:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "2109:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "2111:16:1"
},
"nodeType": "YulFunctionCall",
"src": "2111:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "2111:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "2103:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "2106:1:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "2100:2:1"
},
"nodeType": "YulFunctionCall",
"src": "2100:8:1"
},
"nodeType": "YulIf",
"src": "2097:2:1"
},
{
"nodeType": "YulAssignment",
"src": "2141:17:1",
"value": {
"arguments": [
{
"name": "x",
"nodeType": "YulIdentifier",
"src": "2153:1:1"
},
{
"name": "y",
"nodeType": "YulIdentifier",
"src": "2156:1:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "2149:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2149:9:1"
},
"variableNames": [
{
"name": "diff",
"nodeType": "YulIdentifier",
"src": "2141:4:1"
}
]
}
]
},
"name": "checked_sub_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "x",
"nodeType": "YulTypedName",
"src": "2004:1:1",
"type": ""
},
{
"name": "y",
"nodeType": "YulTypedName",
"src": "2007:1:1",
"type": ""
}
],
"returnVariables": [
{
"name": "diff",
"nodeType": "YulTypedName",
"src": "2013:4:1",
"type": ""
}
],
"src": "1973:191:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2212:48:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2222:32:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "2247:5:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "2240:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2240:13:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "2233:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2233:21:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "2222:7:1"
}
]
}
]
},
"name": "cleanup_t_bool",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2194:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "2204:7:1",
"type": ""
}
],
"src": "2170:90:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2311:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2321:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "2332:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "2321:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2293:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "2303:7:1",
"type": ""
}
],
"src": "2266:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2377:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2394:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2397:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2387:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2387:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "2387:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2491:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2494:4:1",
"type": "",
"value": "0x11"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2484:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2484:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "2484:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2515:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2518:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "2508:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2508:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "2508:15:1"
}
]
},
"name": "panic_error_0x11",
"nodeType": "YulFunctionDefinition",
"src": "2349:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2641:69:1",
"statements": [
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "2663:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2671:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2659:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2659:14:1"
},
{
"kind": "string",
"nodeType": "YulLiteral",
"src": "2675:27:1",
"type": "",
"value": "let the ether bake a lil "
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2652:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2652:51:1"
},
"nodeType": "YulExpressionStatement",
"src": "2652:51:1"
}
]
},
"name": "store_literal_in_memory_edb65d8d42047879924c1ce68433d2eab0c42afedfba1fb806c91a0695420cd8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "2633:6:1",
"type": ""
}
],
"src": "2535:175:1"
}
]
},
"contents": "{\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_t_stringliteral_edb65d8d42047879924c1ce68433d2eab0c42afedfba1fb806c91a0695420cd8_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 25)\n store_literal_in_memory_edb65d8d42047879924c1ce68433d2eab0c42afedfba1fb806c91a0695420cd8(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_stringliteral_edb65d8d42047879924c1ce68433d2eab0c42afedfba1fb806c91a0695420cd8__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_edb65d8d42047879924c1ce68433d2eab0c42afedfba1fb806c91a0695420cd8_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n if lt(x, y) { panic_error_0x11() }\n\n diff := sub(x, y)\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function store_literal_in_memory_edb65d8d42047879924c1ce68433d2eab0c42afedfba1fb806c91a0695420cd8(memPtr) {\n\n mstore(add(memPtr, 0), \"let the ether bake a lil \")\n\n }\n\n}\n",
"id": 1,
"language": "Yul",
"name": "#utility.yul"
}
],
"immutableReferences": {},
"linkReferences": {},
"object": "6080604052600436106100705760003560e01c80631f1871251161004e5780631f187125146100f65780633ccfd60b146101215780634d52614c146101385780636d26ec181461016357610070565b8063047cd8741461007557806312065fe0146100a057806316ada547146100cb575b600080fd5b34801561008157600080fd5b5061008a61016d565b60405161009791906102bb565b60405180910390f35b3480156100ac57600080fd5b506100b5610180565b6040516100c291906102f6565b60405180910390f35b3480156100d757600080fd5b506100e0610188565b6040516100ed91906102f6565b60405180910390f35b34801561010257600080fd5b5061010b61018e565b60405161011891906102f6565b60405180910390f35b34801561012d57600080fd5b506101366101ad565b005b34801561014457600080fd5b5061014d610253565b60405161015a91906102f6565b60405180910390f35b61016b610259565b005b600260009054906101000a900460ff1681565b600047905090565b60015481565b6000603c60015461019f9190610378565b600381905550600354905090565b603c426101ba9190610378565b600154106101fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101f4906102d6565b60405180910390fd5b60003390508073ffffffffffffffffffffffffffffffffffffffff166108fc610224610180565b9081150290604051600060405180830381858888f1935050505015801561024f573d6000803e3d6000fd5b5050565b60035481565b42600181905550346000808282546102719190610322565b92505081905550565b610283816103ac565b82525050565b6000610296601983610311565b91506102a1826103f1565b602082019050919050565b6102b5816103b8565b82525050565b60006020820190506102d0600083018461027a565b92915050565b600060208201905081810360008301526102ef81610289565b9050919050565b600060208201905061030b60008301846102ac565b92915050565b600082825260208201905092915050565b600061032d826103b8565b9150610338836103b8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561036d5761036c6103c2565b5b828201905092915050565b6000610383826103b8565b915061038e836103b8565b9250828210156103a1576103a06103c2565b5b828203905092915050565b60008115159050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f6c6574207468652065746865722062616b652061206c696c200000000000000060008201525056fea2646970667358221220e3b10c2c1c9841a597a7f1076a7d094e7205ab4c40616401ffc9ece57d66e39764736f6c63430008010033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x70 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x1F187125 GT PUSH2 0x4E JUMPI DUP1 PUSH4 0x1F187125 EQ PUSH2 0xF6 JUMPI DUP1 PUSH4 0x3CCFD60B EQ PUSH2 0x121 JUMPI DUP1 PUSH4 0x4D52614C EQ PUSH2 0x138 JUMPI DUP1 PUSH4 0x6D26EC18 EQ PUSH2 0x163 JUMPI PUSH2 0x70 JUMP JUMPDEST DUP1 PUSH4 0x47CD874 EQ PUSH2 0x75 JUMPI DUP1 PUSH4 0x12065FE0 EQ PUSH2 0xA0 JUMPI DUP1 PUSH4 0x16ADA547 EQ PUSH2 0xCB JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x81 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x8A PUSH2 0x16D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x97 SWAP2 SWAP1 PUSH2 0x2BB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xAC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB5 PUSH2 0x180 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xC2 SWAP2 SWAP1 PUSH2 0x2F6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xE0 PUSH2 0x188 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xED SWAP2 SWAP1 PUSH2 0x2F6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x102 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x10B PUSH2 0x18E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x118 SWAP2 SWAP1 PUSH2 0x2F6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x12D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x136 PUSH2 0x1AD JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x144 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x14D PUSH2 0x253 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x15A SWAP2 SWAP1 PUSH2 0x2F6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x16B PUSH2 0x259 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x2 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 SELFBALANCE SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x1 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3C PUSH1 0x1 SLOAD PUSH2 0x19F SWAP2 SWAP1 PUSH2 0x378 JUMP JUMPDEST PUSH1 0x3 DUP2 SWAP1 SSTORE POP PUSH1 0x3 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x3C TIMESTAMP PUSH2 0x1BA SWAP2 SWAP1 PUSH2 0x378 JUMP JUMPDEST PUSH1 0x1 SLOAD LT PUSH2 0x1FD JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1F4 SWAP1 PUSH2 0x2D6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 CALLER SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC PUSH2 0x224 PUSH2 0x180 JUMP JUMPDEST SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x24F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x3 SLOAD DUP2 JUMP JUMPDEST TIMESTAMP PUSH1 0x1 DUP2 SWAP1 SSTORE POP CALLVALUE PUSH1 0x0 DUP1 DUP3 DUP3 SLOAD PUSH2 0x271 SWAP2 SWAP1 PUSH2 0x322 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMP JUMPDEST PUSH2 0x283 DUP2 PUSH2 0x3AC JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x296 PUSH1 0x19 DUP4 PUSH2 0x311 JUMP JUMPDEST SWAP2 POP PUSH2 0x2A1 DUP3 PUSH2 0x3F1 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2B5 DUP2 PUSH2 0x3B8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2D0 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x27A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2EF DUP2 PUSH2 0x289 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x30B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2AC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x32D DUP3 PUSH2 0x3B8 JUMP JUMPDEST SWAP2 POP PUSH2 0x338 DUP4 PUSH2 0x3B8 JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x36D JUMPI PUSH2 0x36C PUSH2 0x3C2 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x383 DUP3 PUSH2 0x3B8 JUMP JUMPDEST SWAP2 POP PUSH2 0x38E DUP4 PUSH2 0x3B8 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 LT ISZERO PUSH2 0x3A1 JUMPI PUSH2 0x3A0 PUSH2 0x3C2 JUMP JUMPDEST JUMPDEST DUP3 DUP3 SUB SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x6C6574207468652065746865722062616B652061206C696C2000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE3 0xB1 0xC 0x2C SHR SWAP9 COINBASE 0xA5 SWAP8 0xA7 CALL SMOD PUSH11 0x7D094E7205AB4C40616401 SELFDESTRUCT 0xC9 0xEC 0xE5 PUSH30 0x66E39764736F6C6343000801003300000000000000000000000000000000 ",
"sourceMap": "62:822:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;213:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;432:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;186:16;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;749:123;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;535:204;;;;;;;;;;;;;:::i;:::-;;273:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;306:116;;;:::i;:::-;;213:54;;;;;;;;;;;;;:::o;432:93::-;474:4;497:21;490:28;;432:93;:::o;186:16::-;;;;:::o;749:123::-;791:4;828:9;821:4;;:16;;;;:::i;:::-;808:10;:29;;;;855:10;;848:17;;749:123;:::o;535:204::-;606:9;588:15;:27;;;;:::i;:::-;581:4;;:34;573:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;655:19;685:10;655:41;;706:3;:12;;:26;719:12;:10;:12::i;:::-;706:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;535:204;:::o;273:22::-;;;;:::o;306:116::-;362:15;355:4;:22;;;;406:9;387:15;;:28;;;;;;;:::i;:::-;;;;;;;;306:116::o;7:109:1:-;88:21;103:5;88:21;:::i;:::-;83:3;76:34;66:50;;:::o;122:366::-;;285:67;349:2;344:3;285:67;:::i;:::-;278:74;;361:93;450:3;361:93;:::i;:::-;479:2;474:3;470:12;463:19;;268:220;;;:::o;494:118::-;581:24;599:5;581:24;:::i;:::-;576:3;569:37;559:53;;:::o;618:210::-;;743:2;732:9;728:18;720:26;;756:65;818:1;807:9;803:17;794:6;756:65;:::i;:::-;710:118;;;;:::o;834:419::-;;1038:2;1027:9;1023:18;1015:26;;1087:9;1081:4;1077:20;1073:1;1062:9;1058:17;1051:47;1115:131;1241:4;1115:131;:::i;:::-;1107:139;;1005:248;;;:::o;1259:222::-;;1390:2;1379:9;1375:18;1367:26;;1403:71;1471:1;1460:9;1456:17;1447:6;1403:71;:::i;:::-;1357:124;;;;:::o;1487:169::-;;1605:6;1600:3;1593:19;1645:4;1640:3;1636:14;1621:29;;1583:73;;;;:::o;1662:305::-;;1721:20;1739:1;1721:20;:::i;:::-;1716:25;;1755:20;1773:1;1755:20;:::i;:::-;1750:25;;1909:1;1841:66;1837:74;1834:1;1831:81;1828:2;;;1915:18;;:::i;:::-;1828:2;1959:1;1956;1952:9;1945:16;;1706:261;;;;:::o;1973:191::-;;2033:20;2051:1;2033:20;:::i;:::-;2028:25;;2067:20;2085:1;2067:20;:::i;:::-;2062:25;;2106:1;2103;2100:8;2097:2;;;2111:18;;:::i;:::-;2097:2;2156:1;2153;2149:9;2141:17;;2018:146;;;;:::o;2170:90::-;;2247:5;2240:13;2233:21;2222:32;;2212:48;;;:::o;2266:77::-;;2332:5;2321:16;;2311:32;;;:::o;2349:180::-;2397:77;2394:1;2387:88;2494:4;2491:1;2484:15;2518:4;2515:1;2508:15;2535:175;2675:27;2671:1;2663:6;2659:14;2652:51;2641:69;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "220800",
"executionCost": "infinite",
"totalCost": "infinite"
},
"external": {
"baked()": "1172",
"checkTimeLapsed()": "infinite",
"getBalance()": "362",
"receiveMoney()": "infinite",
"time()": "1174",
"timeLapsed()": "1173",
"withdraw()": "infinite"
}
},
"methodIdentifiers": {
"baked()": "047cd874",
"checkTimeLapsed()": "1f187125",
"getBalance()": "12065fe0",
"receiveMoney()": "6d26ec18",
"time()": "16ada547",
"timeLapsed()": "4d52614c",
"withdraw()": "3ccfd60b"
}
},
"abi": [
{
"inputs": [],
"name": "baked",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "checkTimeLapsed",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "getBalance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "receiveMoney",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "time",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "timeLapsed",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "withdraw",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.1+commit.df193b15"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"name": "baked",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "checkTimeLapsed",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "getBalance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "receiveMoney",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "time",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "timeLapsed",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "withdraw",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"TimelockedEther.sol": "TimelockedEther"
},
"evmVersion": "istanbul",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"TimelockedEther.sol": {
"keccak256": "0x048ec2ceb8fd1b8db58d2ff67992f101d8ea6f4a8a96a9821cbce25394299881",
"license": "GPL-3.0",
"urls": [
"bzz-raw://5f4b2d73815d086f3bc2f04d166d0748575b0881ec8b772e4c7191840edf8350",
"dweb:/ipfs/QmY2BZHmsL3qzXERQ79EehFWzxo28tppF695yt3b6bQKym"
]
}
},
"version": 1
}
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.1;
contract BooleanExample {
bool public myBool;
function setMyBool(bool _myBool) public {
myBool = _myBool;
}
}
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.7.0 <0.9.0;
/**
* @title Storage
* @dev Store & retrieve value in a variable
*/
contract Storage {
uint256 number;
/**
* @dev Store value in variable
* @param num value to store
*/
function store(uint256 num) public {
number = num;
}
/**
* @dev Return value
* @return value of 'number'
*/
function retrieve() public view returns (uint256){
return number;
}
}
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.7.0 <0.9.0;
/**
* @title Owner
* @dev Set & change owner
*/
contract Owner {
address private owner;
// event for EVM logging
event OwnerSet(address indexed oldOwner, address indexed newOwner);
// modifier to check if caller is owner
modifier isOwner() {
// If the first argument of 'require' evaluates to 'false', execution terminates and all
// changes to the state and to Ether balances are reverted.
// This used to consume all gas in old EVM versions, but not anymore.
// It is often a good idea to use 'require' to check if functions are called correctly.
// As a second argument, you can also provide an explanation about what went wrong.
require(msg.sender == owner, "Caller is not owner");
_;
}
/**
* @dev Set contract deployer as owner
*/
constructor() {
owner = msg.sender; // 'msg.sender' is sender of current call, contract deployer for a constructor
emit OwnerSet(address(0), owner);
}
/**
* @dev Change owner
* @param newOwner address of new owner
*/
function changeOwner(address newOwner) public isOwner {
emit OwnerSet(owner, newOwner);
owner = newOwner;
}
/**
* @dev Return owner address
* @return address of owner
*/
function getOwner() external view returns (address) {
return owner;
}
}
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.7.0 <0.9.0;
/**
* @title Ballot
* @dev Implements voting process along with vote delegation
*/
contract Ballot {
struct Voter {
uint weight; // weight is accumulated by delegation
bool voted; // if true, that person already voted
address delegate; // person delegated to
uint vote; // index of the voted proposal
}
struct Proposal {
// If you can limit the length to a certain number of bytes,
// always use one of bytes1 to bytes32 because they are much cheaper
bytes32 name; // short name (up to 32 bytes)
uint voteCount; // number of accumulated votes
}
address public chairperson;
mapping(address => Voter) public voters;
Proposal[] public proposals;
/**
* @dev Create a new ballot to choose one of 'proposalNames'.
* @param proposalNames names of proposals
*/
constructor(bytes32[] memory proposalNames) {
chairperson = msg.sender;
voters[chairperson].weight = 1;
for (uint i = 0; i < proposalNames.length; i++) {
// 'Proposal({...})' creates a temporary
// Proposal object and 'proposals.push(...)'
// appends it to the end of 'proposals'.
proposals.push(Proposal({
name: proposalNames[i],
voteCount: 0
}));
}
}
/**
* @dev Give 'voter' the right to vote on this ballot. May only be called by 'chairperson'.
* @param voter address of voter
*/
function giveRightToVote(address voter) public {
require(
msg.sender == chairperson,
"Only chairperson can give right to vote."
);
require(
!voters[voter].voted,
"The voter already voted."
);
require(voters[voter].weight == 0);
voters[voter].weight = 1;
}
/**
* @dev Delegate your vote to the voter 'to'.
* @param to address to which vote is delegated
*/
function delegate(address to) public {
Voter storage sender = voters[msg.sender];
require(!sender.voted, "You already voted.");
require(to != msg.sender, "Self-delegation is disallowed.");
while (voters[to].delegate != address(0)) {
to = voters[to].delegate;
// We found a loop in the delegation, not allowed.
require(to != msg.sender, "Found loop in delegation.");
}
sender.voted = true;
sender.delegate = to;
Voter storage delegate_ = voters[to];
if (delegate_.voted) {
// If the delegate already voted,
// directly add to the number of votes
proposals[delegate_.vote].voteCount += sender.weight;
} else {
// If the delegate did not vote yet,
// add to her weight.
delegate_.weight += sender.weight;
}
}
/**
* @dev Give your vote (including votes delegated to you) to proposal 'proposals[proposal].name'.
* @param proposal index of proposal in the proposals array
*/
function vote(uint proposal) public {
Voter storage sender = voters[msg.sender];
require(sender.weight != 0, "Has no right to vote");
require(!sender.voted, "Already voted.");
sender.voted = true;
sender.vote = proposal;
// If 'proposal' is out of the range of the array,
// this will throw automatically and revert all
// changes.
proposals[proposal].voteCount += sender.weight;
}
/**
* @dev Computes the winning proposal taking all previous votes into account.
* @return winningProposal_ index of winning proposal in the proposals array
*/
function winningProposal() public view
returns (uint winningProposal_)
{
uint winningVoteCount = 0;
for (uint p = 0; p < proposals.length; p++) {
if (proposals[p].voteCount > winningVoteCount) {
winningVoteCount = proposals[p].voteCount;
winningProposal_ = p;
}
}
}
/**
* @dev Calls winningProposal() function to get the index of the winner contained in the proposals array and then
* @return winnerName_ the name of the winner
*/
function winnerName() public view
returns (bytes32 winnerName_)
{
winnerName_ = proposals[winningProposal()].name;
}
}
// SPDX-License-Identifier: GPL-3.0
pragma solidity 0.7.0;
contract RooloverExample {
uint8 public myUint8;
function decrement() public {
myUint8--;
}
function incremenat() public {
myUint8++;
}
}
// SPDX-License-Identifier: GPL-3.0
pragma solidity 0.8.0;
contract RolloverExample2 {
uint8 public myUint8;
function decrement() public {
unchecked {
myUint8--;
}
}
function increment() public {
unchecked {
myUint8++;
}
}
}
// Right click on the script name and hit "Run" to execute
(async () => {
try {
console.log('Running deployWithEthers script...')
const contractName = 'Storage' // Change this for other contract
const constructorArgs = [] // Put constructor args (if any) here for your contract
// Note that the script needs the ABI which is generated from the compilation artifact.
// Make sure contract is compiled and artifacts are generated
const artifactsPath = `browser/contracts/artifacts/${contractName}.json` // Change this for different path
const metadata = JSON.parse(await remix.call('fileManager', 'getFile', artifactsPath))
// 'web3Provider' is a remix global variable object
const signer = (new ethers.providers.Web3Provider(web3Provider)).getSigner()
let factory = new ethers.ContractFactory(metadata.abi, metadata.data.bytecode.object, signer);
let contract = await factory.deploy(...constructorArgs);
console.log('Contract Address: ', contract.address);
// The contract is NOT deployed yet; we must wait until it is mined
await contract.deployed()
console.log('Deployment successful.')
} catch (e) {
console.log(e.message)
}
})()
// Right click on the script name and hit "Run" to execute
(async () => {
try {
console.log('Running deployWithWeb3 script...')
const contractName = 'Storage' // Change this for other contract
const constructorArgs = [] // Put constructor args (if any) here for your contract
// Note that the script needs the ABI which is generated from the compilation artifact.
// Make sure contract is compiled and artifacts are generated
const artifactsPath = `browser/contracts/artifacts/${contractName}.json` // Change this for different path
const metadata = JSON.parse(await remix.call('fileManager', 'getFile', artifactsPath))
const accounts = await web3.eth.getAccounts()
let contract = new web3.eth.Contract(metadata.abi)
contract = contract.deploy({
data: metadata.data.bytecode.object,
arguments: constructorArgs
})
const newContractInstance = await contract.send({
from: accounts[0],
gas: 1500000,
gasPrice: '30000000000'
})
console.log('Contract deployed at address: ', newContractInstance.options.address)
} catch (e) {
console.log(e.message)
}
})()
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.1;
contract SendMoneyExample {
uint256 public balanceReceived;
function receiveMoney() public payable {
balanceReceived += msg.value;
}
function getBalance() public view returns(uint) {
return address(this).balance;
}
function withdrawAll() public {
balanceReceived = 0;
address payable to = payable(msg.sender);
to.transfer(getBalance());
}
function withdrawTo(address payable _to) public {
balanceReceived = 0;
payable(_to).transfer(getBalance());
}
function withdraw(address payable _to, uint256 _amount) public {
balanceReceived -= _amount;
payable(_to).transfer(_amount);
}
}
//SPDX-License-Identifier: MIT
pragma solidity ^0.8.3;
contract SimpleMappingExample {
//declare state var for uint to boolean mapping
mapping(uint => bool) public myMapping;
//declare state var for address to boolean mapping
mapping(address => bool) public myAdressMapping;
function setValue(uint _index) public {
myMapping[_index] = true;
}
function setMyAddressToTrue() public {
myAdressMapping[msg.sender] = true;
}
//declare state var for uint to uint to boolean mapping of mappings
mapping(uint => mapping(uint => bool)) public uintUintBoolMapping;
function setUintUintBoolMappiing(uint _index, uint _index2, bool _value) public {
uintUintBoolMapping[_index][_index2] = _value;
}
function getUintUintBoolMapping(uint _index, uint _index2) public view returns(bool) {
return uintUintBoolMapping[_index][_index2];
}
}
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.0;
contract StartStopUpdateExample {
address public owner;
bool public paused;
constructor() {
owner = msg.sender;
paused = false;
}
function pauseContract(bool _state) public {
require(msg.sender == owner, "you aint the owner");
paused = _state;
}
function getBalance() public view returns(uint) {
return address(this).balance;
}
function sendMoney() public payable {
require(paused == false, "sorry, contract is paused atm");
}
function withdrawAllMoney() public {
require(paused == false, "sorry, contract is paused atm");
require(owner == msg.sender, "not your bank account mate");
payable(msg.sender).transfer(address(this).balance);
}
function destoryThyself() public {
require(msg.sender == owner, "you aint the mf owner");
selfdestruct(payable(owner));
}
}
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.7.0 <0.9.0;
import "remix_tests.sol"; // this import is automatically injected by Remix.
import "../contracts/3_Ballot.sol";
contract BallotTest {
bytes32[] proposalNames;
Ballot ballotToTest;
function beforeAll () public {
proposalNames.push(bytes32("candidate1"));
ballotToTest = new Ballot(proposalNames);
}
function checkWinningProposal () public {
ballotToTest.vote(0);
Assert.equal(ballotToTest.winningProposal(), uint(0), "proposal at index 0 should be the winning proposal");
Assert.equal(ballotToTest.winnerName(), bytes32("candidate1"), "candidate1 should be the winner name");
}
function checkWinninProposalWithReturnValue () public view returns (bool) {
return ballotToTest.winningProposal() == 0;
}
}
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.1;
contract TimelockedEther {
//store contract balance
uint balanceReceived;
//store T for time-lock
uint public time;
bool public baked = time < block.timestamp - 1 minutes;
uint public timeLapsed;
function receiveMoney() public payable {
time = block.timestamp;
balanceReceived += msg.value;
}
function getBalance() public view returns(uint) {
return address(this).balance;
}
function withdraw() public {
require(time < block.timestamp - 1 minutes, "let the ether bake a lil ");
address payable _to = payable(msg.sender);
_to.transfer(getBalance());
}
function checkTimeLapsed() public returns(uint) {
timeLapsed = time - 1 minutes;
return timeLapsed;
}
}
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.1;
contract giveMeInt {
uint256 public hey;
function setUint (uint256 _newhey) public {
hey = _newhey;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment