Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save MatthewShelby/cbfcc10af87e7b624afa2e91a9f32ffa to your computer and use it in GitHub Desktop.
Save MatthewShelby/cbfcc10af87e7b624afa2e91a9f32ffa 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.7+commit.e28d00a7.js&optimize=false&runs=200&gist=
// this line is added to create a gist. Empty file is not allowed.
{
"compiler": {
"version": "0.8.7+commit.e28d00a7"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "uint256",
"name": "c",
"type": "uint256"
},
{
"internalType": "string",
"name": "d",
"type": "string"
}
],
"name": "ModifyAddress",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "c",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "d",
"type": "uint256"
}
],
"name": "ViewAddress",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "c",
"type": "uint256"
},
{
"internalType": "string",
"name": "d",
"type": "string"
}
],
"name": "ViewInteger",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "adr",
"type": "address"
}
],
"name": "getAddressSowardDronws",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "adr",
"type": "address"
}
],
"name": "setStorage1Address",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"FIORA/PLATFORM/Contracts/Logic/Logic.sol": "FioraLogic"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"FIORA/PLATFORM/Contracts/Logic/Logic.sol": {
"keccak256": "0x8a37e8c823e8417696e763693d5bc3b52c01fcf69832b149a9bfb057a71bc3aa",
"license": "MIT",
"urls": [
"bzz-raw://a8d82c87eadcd5dda2da011b19984aac13fda5541611159b39c5b799681a6c00",
"dweb:/ipfs/QmVnG3fLgGsabXdXVg4j2XvNmUfRKvWmf1N17YyrpnhzqG"
]
}
},
"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": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "608060405234801561001057600080fd5b506107ca806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c80630862c03914610030575b600080fd5b61004a6004803603810190610045919061055c565b610060565b60405161005791906105c7565b60405180910390f35b6000600583101561022d576100aa826040518060400160405280600381526020017f4f6e6500000000000000000000000000000000000000000000000000000000008152506103f3565b806100f057506100ef826040518060400160405280600381526020017f6f6e6500000000000000000000000000000000000000000000000000000000008152506103f3565b5b156100fe57600190506103ed565b61013d826040518060400160405280600381526020017f54776f00000000000000000000000000000000000000000000000000000000008152506103f3565b806101835750610182826040518060400160405280600381526020017f74776f00000000000000000000000000000000000000000000000000000000008152506103f3565b5b1561019157600290506103ed565b6101d0826040518060400160405280600581526020017f54687265650000000000000000000000000000000000000000000000000000008152506103f3565b806102165750610215826040518060400160405280600581526020017f54687265650000000000000000000000000000000000000000000000000000008152506103f3565b5b1561022457600390506103ed565b600490506103ed565b61026c826040518060400160405280600381526020017f41414100000000000000000000000000000000000000000000000000000000008152506103f3565b806102b257506102b1826040518060400160405280600381526020017f61616100000000000000000000000000000000000000000000000000000000008152506103f3565b5b156102c057606f90506103ed565b6102ff826040518060400160405280600381526020017f42424200000000000000000000000000000000000000000000000000000000008152506103f3565b806103455750610344826040518060400160405280600381526020017f62626200000000000000000000000000000000000000000000000000000000008152506103f3565b5b156103535760de90506103ed565b610392826040518060400160405280600381526020017f43434300000000000000000000000000000000000000000000000000000000008152506103f3565b806103d857506103d7826040518060400160405280600381526020017f63636300000000000000000000000000000000000000000000000000000000008152506103f3565b5b156103e75761014d90506103ed565b6101bc90505b92915050565b60008083905060008390506000825190508151811461041857600093505050506104d1565b60005b818110156104c857828181518110610436576104356106fa565b5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916848281518110610476576104756106fa565b5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146104b55760009450505050506104d1565b80806104c090610682565b91505061041b565b50600193505050505b92915050565b60006104ea6104e584610607565b6105e2565b9050828152602081018484840111156105065761050561075d565b5b610511848285610642565b509392505050565b600082601f83011261052e5761052d610758565b5b813561053e8482602086016104d7565b91505092915050565b6000813590506105568161077d565b92915050565b6000806040838503121561057357610572610767565b5b600061058185828601610547565b925050602083013567ffffffffffffffff8111156105a2576105a1610762565b5b6105ae85828601610519565b9150509250929050565b6105c181610638565b82525050565b60006020820190506105dc60008301846105b8565b92915050565b60006105ec6105fd565b90506105f88282610651565b919050565b6000604051905090565b600067ffffffffffffffff82111561062257610621610729565b5b61062b8261076c565b9050602081019050919050565b6000819050919050565b82818337600083830152505050565b61065a8261076c565b810181811067ffffffffffffffff8211171561067957610678610729565b5b80604052505050565b600061068d82610638565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156106c0576106bf6106cb565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b61078681610638565b811461079157600080fd5b5056fea2646970667358221220cccd9e2fa7525ea8b6916edce2ef9d11af488a51aa20c95380365d19365570d864736f6c63430008070033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7CA 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 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x862C039 EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x45 SWAP2 SWAP1 PUSH2 0x55C JUMP JUMPDEST PUSH2 0x60 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x57 SWAP2 SWAP1 PUSH2 0x5C7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH1 0x5 DUP4 LT ISZERO PUSH2 0x22D JUMPI PUSH2 0xAA DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4F6E650000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH2 0x3F3 JUMP JUMPDEST DUP1 PUSH2 0xF0 JUMPI POP PUSH2 0xEF DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x6F6E650000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH2 0x3F3 JUMP JUMPDEST JUMPDEST ISZERO PUSH2 0xFE JUMPI PUSH1 0x1 SWAP1 POP PUSH2 0x3ED JUMP JUMPDEST PUSH2 0x13D DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x54776F0000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH2 0x3F3 JUMP JUMPDEST DUP1 PUSH2 0x183 JUMPI POP PUSH2 0x182 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x74776F0000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH2 0x3F3 JUMP JUMPDEST JUMPDEST ISZERO PUSH2 0x191 JUMPI PUSH1 0x2 SWAP1 POP PUSH2 0x3ED JUMP JUMPDEST PUSH2 0x1D0 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5468726565000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH2 0x3F3 JUMP JUMPDEST DUP1 PUSH2 0x216 JUMPI POP PUSH2 0x215 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5468726565000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH2 0x3F3 JUMP JUMPDEST JUMPDEST ISZERO PUSH2 0x224 JUMPI PUSH1 0x3 SWAP1 POP PUSH2 0x3ED JUMP JUMPDEST PUSH1 0x4 SWAP1 POP PUSH2 0x3ED JUMP JUMPDEST PUSH2 0x26C DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4141410000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH2 0x3F3 JUMP JUMPDEST DUP1 PUSH2 0x2B2 JUMPI POP PUSH2 0x2B1 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x6161610000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH2 0x3F3 JUMP JUMPDEST JUMPDEST ISZERO PUSH2 0x2C0 JUMPI PUSH1 0x6F SWAP1 POP PUSH2 0x3ED JUMP JUMPDEST PUSH2 0x2FF DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4242420000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH2 0x3F3 JUMP JUMPDEST DUP1 PUSH2 0x345 JUMPI POP PUSH2 0x344 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x6262620000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH2 0x3F3 JUMP JUMPDEST JUMPDEST ISZERO PUSH2 0x353 JUMPI PUSH1 0xDE SWAP1 POP PUSH2 0x3ED JUMP JUMPDEST PUSH2 0x392 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4343430000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH2 0x3F3 JUMP JUMPDEST DUP1 PUSH2 0x3D8 JUMPI POP PUSH2 0x3D7 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x6363630000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH2 0x3F3 JUMP JUMPDEST JUMPDEST ISZERO PUSH2 0x3E7 JUMPI PUSH2 0x14D SWAP1 POP PUSH2 0x3ED JUMP JUMPDEST PUSH2 0x1BC SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 SWAP1 POP PUSH1 0x0 DUP4 SWAP1 POP PUSH1 0x0 DUP3 MLOAD SWAP1 POP DUP2 MLOAD DUP2 EQ PUSH2 0x418 JUMPI PUSH1 0x0 SWAP4 POP POP POP POP PUSH2 0x4D1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x4C8 JUMPI DUP3 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x436 JUMPI PUSH2 0x435 PUSH2 0x6FA JUMP JUMPDEST JUMPDEST PUSH1 0x20 ADD ADD MLOAD PUSH1 0xF8 SHR PUSH1 0xF8 SHL PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP5 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x476 JUMPI PUSH2 0x475 PUSH2 0x6FA JUMP JUMPDEST JUMPDEST PUSH1 0x20 ADD ADD MLOAD PUSH1 0xF8 SHR PUSH1 0xF8 SHL PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x4B5 JUMPI PUSH1 0x0 SWAP5 POP POP POP POP POP PUSH2 0x4D1 JUMP JUMPDEST DUP1 DUP1 PUSH2 0x4C0 SWAP1 PUSH2 0x682 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x41B JUMP JUMPDEST POP PUSH1 0x1 SWAP4 POP POP POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4EA PUSH2 0x4E5 DUP5 PUSH2 0x607 JUMP JUMPDEST PUSH2 0x5E2 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x506 JUMPI PUSH2 0x505 PUSH2 0x75D JUMP JUMPDEST JUMPDEST PUSH2 0x511 DUP5 DUP3 DUP6 PUSH2 0x642 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x52E JUMPI PUSH2 0x52D PUSH2 0x758 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x53E DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x4D7 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x556 DUP2 PUSH2 0x77D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x573 JUMPI PUSH2 0x572 PUSH2 0x767 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x581 DUP6 DUP3 DUP7 ADD PUSH2 0x547 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x5A2 JUMPI PUSH2 0x5A1 PUSH2 0x762 JUMP JUMPDEST JUMPDEST PUSH2 0x5AE DUP6 DUP3 DUP7 ADD PUSH2 0x519 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x5C1 DUP2 PUSH2 0x638 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x5DC PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x5B8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5EC PUSH2 0x5FD JUMP JUMPDEST SWAP1 POP PUSH2 0x5F8 DUP3 DUP3 PUSH2 0x651 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x622 JUMPI PUSH2 0x621 PUSH2 0x729 JUMP JUMPDEST JUMPDEST PUSH2 0x62B DUP3 PUSH2 0x76C JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH2 0x65A DUP3 PUSH2 0x76C JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x679 JUMPI PUSH2 0x678 PUSH2 0x729 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x68D DUP3 PUSH2 0x638 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 EQ ISZERO PUSH2 0x6C0 JUMPI PUSH2 0x6BF PUSH2 0x6CB JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x786 DUP2 PUSH2 0x638 JUMP JUMPDEST DUP2 EQ PUSH2 0x791 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xCC 0xCD SWAP15 0x2F 0xA7 MSTORE 0x5E 0xA8 0xB6 SWAP2 PUSH15 0xDCE2EF9D11AF488A51AA20C9538036 0x5D NOT CALLDATASIZE SSTORE PUSH17 0xD864736F6C634300080700330000000000 ",
"sourceMap": "69:1283:0:-:0;;;;;;;;;;;;;;;;;;;"
},
"deployedBytecode": {
"functionDebugData": {
"@ViewInteger_99": {
"entryPoint": 96,
"id": 99,
"parameterSlots": 2,
"returnSlots": 1
},
"@stringsEquals_159": {
"entryPoint": 1011,
"id": 159,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_available_length_t_string_memory_ptr": {
"entryPoint": 1239,
"id": null,
"parameterSlots": 3,
"returnSlots": 1
},
"abi_decode_t_string_memory_ptr": {
"entryPoint": 1305,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_t_uint256": {
"entryPoint": 1351,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"abi_decode_tuple_t_uint256t_string_memory_ptr": {
"entryPoint": 1372,
"id": null,
"parameterSlots": 2,
"returnSlots": 2
},
"abi_encode_t_uint256_to_t_uint256_fromStack": {
"entryPoint": 1464,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
"entryPoint": 1479,
"id": null,
"parameterSlots": 2,
"returnSlots": 1
},
"allocate_memory": {
"entryPoint": 1506,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"allocate_unbounded": {
"entryPoint": 1533,
"id": null,
"parameterSlots": 0,
"returnSlots": 1
},
"array_allocation_size_t_string_memory_ptr": {
"entryPoint": 1543,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"cleanup_t_uint256": {
"entryPoint": 1592,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"copy_calldata_to_memory": {
"entryPoint": 1602,
"id": null,
"parameterSlots": 3,
"returnSlots": 0
},
"finalize_allocation": {
"entryPoint": 1617,
"id": null,
"parameterSlots": 2,
"returnSlots": 0
},
"increment_t_uint256": {
"entryPoint": 1666,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"panic_error_0x11": {
"entryPoint": 1739,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x32": {
"entryPoint": 1786,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"panic_error_0x41": {
"entryPoint": 1833,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": {
"entryPoint": 1880,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": {
"entryPoint": 1885,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": {
"entryPoint": 1890,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": {
"entryPoint": 1895,
"id": null,
"parameterSlots": 0,
"returnSlots": 0
},
"round_up_to_mul_of_32": {
"entryPoint": 1900,
"id": null,
"parameterSlots": 1,
"returnSlots": 1
},
"validator_revert_t_uint256": {
"entryPoint": 1917,
"id": null,
"parameterSlots": 1,
"returnSlots": 0
}
},
"generatedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:4524:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "91:328:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "101:75:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "168:6:1"
}
],
"functionName": {
"name": "array_allocation_size_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "126:41:1"
},
"nodeType": "YulFunctionCall",
"src": "126:49:1"
}
],
"functionName": {
"name": "allocate_memory",
"nodeType": "YulIdentifier",
"src": "110:15:1"
},
"nodeType": "YulFunctionCall",
"src": "110:66:1"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "101:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "192:5:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "199:6:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "185:6:1"
},
"nodeType": "YulFunctionCall",
"src": "185:21:1"
},
"nodeType": "YulExpressionStatement",
"src": "185:21:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "215:27:1",
"value": {
"arguments": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "230:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "237:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "226:3:1"
},
"nodeType": "YulFunctionCall",
"src": "226:16:1"
},
"variables": [
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "219:3:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "280:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae",
"nodeType": "YulIdentifier",
"src": "282:77:1"
},
"nodeType": "YulFunctionCall",
"src": "282:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "282:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "261:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "266:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "257:3:1"
},
"nodeType": "YulFunctionCall",
"src": "257:16:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "275:3:1"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "254:2:1"
},
"nodeType": "YulFunctionCall",
"src": "254:25:1"
},
"nodeType": "YulIf",
"src": "251:112:1"
},
{
"expression": {
"arguments": [
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "396:3:1"
},
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "401:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "406:6:1"
}
],
"functionName": {
"name": "copy_calldata_to_memory",
"nodeType": "YulIdentifier",
"src": "372:23:1"
},
"nodeType": "YulFunctionCall",
"src": "372:41:1"
},
"nodeType": "YulExpressionStatement",
"src": "372:41:1"
}
]
},
"name": "abi_decode_available_length_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "64:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "69:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "77:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "85:5:1",
"type": ""
}
],
"src": "7:412:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "501:278:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "550:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulIdentifier",
"src": "552:77:1"
},
"nodeType": "YulFunctionCall",
"src": "552:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "552:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "529:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "537:4:1",
"type": "",
"value": "0x1f"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "525:3:1"
},
"nodeType": "YulFunctionCall",
"src": "525:17:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "544:3:1"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "521:3:1"
},
"nodeType": "YulFunctionCall",
"src": "521:27:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "514:6:1"
},
"nodeType": "YulFunctionCall",
"src": "514:35:1"
},
"nodeType": "YulIf",
"src": "511:122:1"
},
{
"nodeType": "YulVariableDeclaration",
"src": "642:34:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "669:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "656:12:1"
},
"nodeType": "YulFunctionCall",
"src": "656:20:1"
},
"variables": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "646:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "685:88:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "746:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "754:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "742:3:1"
},
"nodeType": "YulFunctionCall",
"src": "742:17:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "761:6:1"
},
{
"name": "end",
"nodeType": "YulIdentifier",
"src": "769:3:1"
}
],
"functionName": {
"name": "abi_decode_available_length_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "694:47:1"
},
"nodeType": "YulFunctionCall",
"src": "694:79:1"
},
"variableNames": [
{
"name": "array",
"nodeType": "YulIdentifier",
"src": "685:5:1"
}
]
}
]
},
"name": "abi_decode_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "479:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "487:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "array",
"nodeType": "YulTypedName",
"src": "495:5:1",
"type": ""
}
],
"src": "439:340:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "837:87:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "847:29:1",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "869:6:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "856:12:1"
},
"nodeType": "YulFunctionCall",
"src": "856:20:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "847:5:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "912:5:1"
}
],
"functionName": {
"name": "validator_revert_t_uint256",
"nodeType": "YulIdentifier",
"src": "885:26:1"
},
"nodeType": "YulFunctionCall",
"src": "885:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "885:33:1"
}
]
},
"name": "abi_decode_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "815:6:1",
"type": ""
},
{
"name": "end",
"nodeType": "YulTypedName",
"src": "823:3:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "831:5:1",
"type": ""
}
],
"src": "785:139:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1023:561:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1069:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulIdentifier",
"src": "1071:77:1"
},
"nodeType": "YulFunctionCall",
"src": "1071:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "1071:79:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1044:7:1"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1053:9:1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "1040:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1040:23:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1065:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "1036:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1036:32:1"
},
"nodeType": "YulIf",
"src": "1033:119:1"
},
{
"nodeType": "YulBlock",
"src": "1162:117:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1177:15:1",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1191:1:1",
"type": "",
"value": "0"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1181:6:1",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "1206:63:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1241:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1252:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1237:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1237:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1261:7:1"
}
],
"functionName": {
"name": "abi_decode_t_uint256",
"nodeType": "YulIdentifier",
"src": "1216:20:1"
},
"nodeType": "YulFunctionCall",
"src": "1216:53:1"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1206:6:1"
}
]
}
]
},
{
"nodeType": "YulBlock",
"src": "1289:288:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1304:46:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1335:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1346:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1331:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1331:18:1"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "1318:12:1"
},
"nodeType": "YulFunctionCall",
"src": "1318:32:1"
},
"variables": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "1308:6:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1397:83:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulIdentifier",
"src": "1399:77:1"
},
"nodeType": "YulFunctionCall",
"src": "1399:79:1"
},
"nodeType": "YulExpressionStatement",
"src": "1399:79:1"
}
]
},
"condition": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1369:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1377:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "1366:2:1"
},
"nodeType": "YulFunctionCall",
"src": "1366:30:1"
},
"nodeType": "YulIf",
"src": "1363:117:1"
},
{
"nodeType": "YulAssignment",
"src": "1494:73:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1539:9:1"
},
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "1550:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1535:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1535:22:1"
},
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "1559:7:1"
}
],
"functionName": {
"name": "abi_decode_t_string_memory_ptr",
"nodeType": "YulIdentifier",
"src": "1504:30:1"
},
"nodeType": "YulFunctionCall",
"src": "1504:63:1"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "1494:6:1"
}
]
}
]
}
]
},
"name": "abi_decode_tuple_t_uint256t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "985:9:1",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "996:7:1",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1008:6:1",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "1016:6:1",
"type": ""
}
],
"src": "930:654:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1655:53:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "pos",
"nodeType": "YulIdentifier",
"src": "1672:3:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "1695:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "1677:17:1"
},
"nodeType": "YulFunctionCall",
"src": "1677:24:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1665:6:1"
},
"nodeType": "YulFunctionCall",
"src": "1665:37:1"
},
"nodeType": "YulExpressionStatement",
"src": "1665:37:1"
}
]
},
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "1643:5:1",
"type": ""
},
{
"name": "pos",
"nodeType": "YulTypedName",
"src": "1650:3:1",
"type": ""
}
],
"src": "1590:118:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1812:124:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1822:26:1",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1834:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1845:2:1",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1830:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1830:18:1"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1822:4:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "1902:6:1"
},
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1915:9:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1926:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1911:3:1"
},
"nodeType": "YulFunctionCall",
"src": "1911:17:1"
}
],
"functionName": {
"name": "abi_encode_t_uint256_to_t_uint256_fromStack",
"nodeType": "YulIdentifier",
"src": "1858:43:1"
},
"nodeType": "YulFunctionCall",
"src": "1858:71:1"
},
"nodeType": "YulExpressionStatement",
"src": "1858:71:1"
}
]
},
"name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1784:9:1",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "1796:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "1807:4:1",
"type": ""
}
],
"src": "1714:222:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1983:88:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1993:30:1",
"value": {
"arguments": [],
"functionName": {
"name": "allocate_unbounded",
"nodeType": "YulIdentifier",
"src": "2003:18:1"
},
"nodeType": "YulFunctionCall",
"src": "2003:20:1"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "1993:6:1"
}
]
},
{
"expression": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "2052:6:1"
},
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "2060:4:1"
}
],
"functionName": {
"name": "finalize_allocation",
"nodeType": "YulIdentifier",
"src": "2032:19:1"
},
"nodeType": "YulFunctionCall",
"src": "2032:33:1"
},
"nodeType": "YulExpressionStatement",
"src": "2032:33:1"
}
]
},
"name": "allocate_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "1967:4:1",
"type": ""
}
],
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "1976:6:1",
"type": ""
}
],
"src": "1942:129:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2117:35:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2127:19:1",
"value": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2143:2:1",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "mload",
"nodeType": "YulIdentifier",
"src": "2137:5:1"
},
"nodeType": "YulFunctionCall",
"src": "2137:9:1"
},
"variableNames": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "2127:6:1"
}
]
}
]
},
"name": "allocate_unbounded",
"nodeType": "YulFunctionDefinition",
"returnVariables": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "2110:6:1",
"type": ""
}
],
"src": "2077:75:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2225:241:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "2330:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "2332:16:1"
},
"nodeType": "YulFunctionCall",
"src": "2332:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "2332:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2302:6:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2310:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "2299:2:1"
},
"nodeType": "YulFunctionCall",
"src": "2299:30:1"
},
"nodeType": "YulIf",
"src": "2296:56:1"
},
{
"nodeType": "YulAssignment",
"src": "2362:37:1",
"value": {
"arguments": [
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2392:6:1"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "2370:21:1"
},
"nodeType": "YulFunctionCall",
"src": "2370:29:1"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "2362:4:1"
}
]
},
{
"nodeType": "YulAssignment",
"src": "2436:23:1",
"value": {
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "2448:4:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2454:4:1",
"type": "",
"value": "0x20"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2444:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2444:15:1"
},
"variableNames": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "2436:4:1"
}
]
}
]
},
"name": "array_allocation_size_t_string_memory_ptr",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "length",
"nodeType": "YulTypedName",
"src": "2209:6:1",
"type": ""
}
],
"returnVariables": [
{
"name": "size",
"nodeType": "YulTypedName",
"src": "2220:4:1",
"type": ""
}
],
"src": "2158:308:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2517:32:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "2527:16:1",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "2538:5:1"
},
"variableNames": [
{
"name": "cleaned",
"nodeType": "YulIdentifier",
"src": "2527:7:1"
}
]
}
]
},
"name": "cleanup_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "2499:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "cleaned",
"nodeType": "YulTypedName",
"src": "2509:7:1",
"type": ""
}
],
"src": "2472:77:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2606:103:1",
"statements": [
{
"expression": {
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "2629:3:1"
},
{
"name": "src",
"nodeType": "YulIdentifier",
"src": "2634:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2639:6:1"
}
],
"functionName": {
"name": "calldatacopy",
"nodeType": "YulIdentifier",
"src": "2616:12:1"
},
"nodeType": "YulFunctionCall",
"src": "2616:30:1"
},
"nodeType": "YulExpressionStatement",
"src": "2616:30:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "dst",
"nodeType": "YulIdentifier",
"src": "2687:3:1"
},
{
"name": "length",
"nodeType": "YulIdentifier",
"src": "2692:6:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2683:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2683:16:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2701:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2676:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2676:27:1"
},
"nodeType": "YulExpressionStatement",
"src": "2676:27:1"
}
]
},
"name": "copy_calldata_to_memory",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "src",
"nodeType": "YulTypedName",
"src": "2588:3:1",
"type": ""
},
{
"name": "dst",
"nodeType": "YulTypedName",
"src": "2593:3:1",
"type": ""
},
{
"name": "length",
"nodeType": "YulTypedName",
"src": "2598:6:1",
"type": ""
}
],
"src": "2555:154:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "2758:238:1",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "2768:58:1",
"value": {
"arguments": [
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "2790:6:1"
},
{
"arguments": [
{
"name": "size",
"nodeType": "YulIdentifier",
"src": "2820:4:1"
}
],
"functionName": {
"name": "round_up_to_mul_of_32",
"nodeType": "YulIdentifier",
"src": "2798:21:1"
},
"nodeType": "YulFunctionCall",
"src": "2798:27:1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "2786:3:1"
},
"nodeType": "YulFunctionCall",
"src": "2786:40:1"
},
"variables": [
{
"name": "newFreePtr",
"nodeType": "YulTypedName",
"src": "2772:10:1",
"type": ""
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "2937:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x41",
"nodeType": "YulIdentifier",
"src": "2939:16:1"
},
"nodeType": "YulFunctionCall",
"src": "2939:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "2939:18:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "2880:10:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2892:18:1",
"type": "",
"value": "0xffffffffffffffff"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "2877:2:1"
},
"nodeType": "YulFunctionCall",
"src": "2877:34:1"
},
{
"arguments": [
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "2916:10:1"
},
{
"name": "memPtr",
"nodeType": "YulIdentifier",
"src": "2928:6:1"
}
],
"functionName": {
"name": "lt",
"nodeType": "YulIdentifier",
"src": "2913:2:1"
},
"nodeType": "YulFunctionCall",
"src": "2913:22:1"
}
],
"functionName": {
"name": "or",
"nodeType": "YulIdentifier",
"src": "2874:2:1"
},
"nodeType": "YulFunctionCall",
"src": "2874:62:1"
},
"nodeType": "YulIf",
"src": "2871:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "2975:2:1",
"type": "",
"value": "64"
},
{
"name": "newFreePtr",
"nodeType": "YulIdentifier",
"src": "2979:10:1"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "2968:6:1"
},
"nodeType": "YulFunctionCall",
"src": "2968:22:1"
},
"nodeType": "YulExpressionStatement",
"src": "2968:22:1"
}
]
},
"name": "finalize_allocation",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "memPtr",
"nodeType": "YulTypedName",
"src": "2744:6:1",
"type": ""
},
{
"name": "size",
"nodeType": "YulTypedName",
"src": "2752:4:1",
"type": ""
}
],
"src": "2715:281:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3045:190:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "3055:33:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3082:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "3064:17:1"
},
"nodeType": "YulFunctionCall",
"src": "3064:24:1"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3055:5:1"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "3178:22:1",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "3180:16:1"
},
"nodeType": "YulFunctionCall",
"src": "3180:18:1"
},
"nodeType": "YulExpressionStatement",
"src": "3180:18:1"
}
]
},
"condition": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3103:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3110:66:1",
"type": "",
"value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "3100:2:1"
},
"nodeType": "YulFunctionCall",
"src": "3100:77:1"
},
"nodeType": "YulIf",
"src": "3097:103:1"
},
{
"nodeType": "YulAssignment",
"src": "3209:20:1",
"value": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "3220:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3227:1:1",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "3216:3:1"
},
"nodeType": "YulFunctionCall",
"src": "3216:13:1"
},
"variableNames": [
{
"name": "ret",
"nodeType": "YulIdentifier",
"src": "3209:3:1"
}
]
}
]
},
"name": "increment_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "3031:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "ret",
"nodeType": "YulTypedName",
"src": "3041:3:1",
"type": ""
}
],
"src": "3002:233:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3269:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3286:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3289:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3279:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3279:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "3279:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3383:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3386:4:1",
"type": "",
"value": "0x11"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3376:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3376:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "3376:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3407:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3410:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3400:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3400:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "3400:15:1"
}
]
},
"name": "panic_error_0x11",
"nodeType": "YulFunctionDefinition",
"src": "3241:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3455:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3472:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3475:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3465:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3465:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "3465:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3569:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3572:4:1",
"type": "",
"value": "0x32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3562:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3562:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "3562:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3593:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3596:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3586:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3586:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "3586:15:1"
}
]
},
"name": "panic_error_0x32",
"nodeType": "YulFunctionDefinition",
"src": "3427:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3641:152:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3658:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3661:77:1",
"type": "",
"value": "35408467139433450592217433187231851964531694900788300625387963629091585785856"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3651:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3651:88:1"
},
"nodeType": "YulExpressionStatement",
"src": "3651:88:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3755:1:1",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3758:4:1",
"type": "",
"value": "0x41"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "3748:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3748:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "3748:15:1"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3779:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3782:4:1",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3772:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3772:15:1"
},
"nodeType": "YulExpressionStatement",
"src": "3772:15:1"
}
]
},
"name": "panic_error_0x41",
"nodeType": "YulFunctionDefinition",
"src": "3613:180:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "3888:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3905:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "3908:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "3898:6:1"
},
"nodeType": "YulFunctionCall",
"src": "3898:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "3898:12:1"
}
]
},
"name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d",
"nodeType": "YulFunctionDefinition",
"src": "3799:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4011:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4028:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4031:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "4021:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4021:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "4021:12:1"
}
]
},
"name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae",
"nodeType": "YulFunctionDefinition",
"src": "3922:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4134:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4151:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4154:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "4144:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4144:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "4144:12:1"
}
]
},
"name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db",
"nodeType": "YulFunctionDefinition",
"src": "4045:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4257:28:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4274:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4277:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "4267:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4267:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "4267:12:1"
}
]
},
"name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b",
"nodeType": "YulFunctionDefinition",
"src": "4168:117:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4339:54:1",
"statements": [
{
"nodeType": "YulAssignment",
"src": "4349:38:1",
"value": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4367:5:1"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4374:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "4363:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4363:14:1"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4383:2:1",
"type": "",
"value": "31"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "4379:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4379:7:1"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "4359:3:1"
},
"nodeType": "YulFunctionCall",
"src": "4359:28:1"
},
"variableNames": [
{
"name": "result",
"nodeType": "YulIdentifier",
"src": "4349:6:1"
}
]
}
]
},
"name": "round_up_to_mul_of_32",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "4322:5:1",
"type": ""
}
],
"returnVariables": [
{
"name": "result",
"nodeType": "YulTypedName",
"src": "4332:6:1",
"type": ""
}
],
"src": "4291:102:1"
},
{
"body": {
"nodeType": "YulBlock",
"src": "4442:79:1",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "4499:16:1",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4508:1:1",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "4511:1:1",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "4501:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4501:12:1"
},
"nodeType": "YulExpressionStatement",
"src": "4501:12:1"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4465:5:1"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "4490:5:1"
}
],
"functionName": {
"name": "cleanup_t_uint256",
"nodeType": "YulIdentifier",
"src": "4472:17:1"
},
"nodeType": "YulFunctionCall",
"src": "4472:24:1"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "4462:2:1"
},
"nodeType": "YulFunctionCall",
"src": "4462:35:1"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "4455:6:1"
},
"nodeType": "YulFunctionCall",
"src": "4455:43:1"
},
"nodeType": "YulIf",
"src": "4452:63:1"
}
]
},
"name": "validator_revert_t_uint256",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "4435:5:1",
"type": ""
}
],
"src": "4399:122:1"
}
]
},
"contents": "{\n\n function abi_decode_available_length_t_string_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory(src, dst, length)\n }\n\n // string\n function abi_decode_t_string_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_string_memory_ptr(add(offset, 0x20), length, end)\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_uint256t_string_memory_ptr(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\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 := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_string_memory_ptr(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 allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function array_allocation_size_t_string_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function copy_calldata_to_memory(src, dst, length) {\n calldatacopy(dst, src, length)\n // clear end\n mstore(add(dst, length), 0)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\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": "608060405234801561001057600080fd5b506004361061002b5760003560e01c80630862c03914610030575b600080fd5b61004a6004803603810190610045919061055c565b610060565b60405161005791906105c7565b60405180910390f35b6000600583101561022d576100aa826040518060400160405280600381526020017f4f6e6500000000000000000000000000000000000000000000000000000000008152506103f3565b806100f057506100ef826040518060400160405280600381526020017f6f6e6500000000000000000000000000000000000000000000000000000000008152506103f3565b5b156100fe57600190506103ed565b61013d826040518060400160405280600381526020017f54776f00000000000000000000000000000000000000000000000000000000008152506103f3565b806101835750610182826040518060400160405280600381526020017f74776f00000000000000000000000000000000000000000000000000000000008152506103f3565b5b1561019157600290506103ed565b6101d0826040518060400160405280600581526020017f54687265650000000000000000000000000000000000000000000000000000008152506103f3565b806102165750610215826040518060400160405280600581526020017f54687265650000000000000000000000000000000000000000000000000000008152506103f3565b5b1561022457600390506103ed565b600490506103ed565b61026c826040518060400160405280600381526020017f41414100000000000000000000000000000000000000000000000000000000008152506103f3565b806102b257506102b1826040518060400160405280600381526020017f61616100000000000000000000000000000000000000000000000000000000008152506103f3565b5b156102c057606f90506103ed565b6102ff826040518060400160405280600381526020017f42424200000000000000000000000000000000000000000000000000000000008152506103f3565b806103455750610344826040518060400160405280600381526020017f62626200000000000000000000000000000000000000000000000000000000008152506103f3565b5b156103535760de90506103ed565b610392826040518060400160405280600381526020017f43434300000000000000000000000000000000000000000000000000000000008152506103f3565b806103d857506103d7826040518060400160405280600381526020017f63636300000000000000000000000000000000000000000000000000000000008152506103f3565b5b156103e75761014d90506103ed565b6101bc90505b92915050565b60008083905060008390506000825190508151811461041857600093505050506104d1565b60005b818110156104c857828181518110610436576104356106fa565b5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916848281518110610476576104756106fa565b5b602001015160f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146104b55760009450505050506104d1565b80806104c090610682565b91505061041b565b50600193505050505b92915050565b60006104ea6104e584610607565b6105e2565b9050828152602081018484840111156105065761050561075d565b5b610511848285610642565b509392505050565b600082601f83011261052e5761052d610758565b5b813561053e8482602086016104d7565b91505092915050565b6000813590506105568161077d565b92915050565b6000806040838503121561057357610572610767565b5b600061058185828601610547565b925050602083013567ffffffffffffffff8111156105a2576105a1610762565b5b6105ae85828601610519565b9150509250929050565b6105c181610638565b82525050565b60006020820190506105dc60008301846105b8565b92915050565b60006105ec6105fd565b90506105f88282610651565b919050565b6000604051905090565b600067ffffffffffffffff82111561062257610621610729565b5b61062b8261076c565b9050602081019050919050565b6000819050919050565b82818337600083830152505050565b61065a8261076c565b810181811067ffffffffffffffff8211171561067957610678610729565b5b80604052505050565b600061068d82610638565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156106c0576106bf6106cb565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b61078681610638565b811461079157600080fd5b5056fea2646970667358221220cccd9e2fa7525ea8b6916edce2ef9d11af488a51aa20c95380365d19365570d864736f6c63430008070033",
"opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x862C039 EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x45 SWAP2 SWAP1 PUSH2 0x55C JUMP JUMPDEST PUSH2 0x60 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x57 SWAP2 SWAP1 PUSH2 0x5C7 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH1 0x5 DUP4 LT ISZERO PUSH2 0x22D JUMPI PUSH2 0xAA DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4F6E650000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH2 0x3F3 JUMP JUMPDEST DUP1 PUSH2 0xF0 JUMPI POP PUSH2 0xEF DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x6F6E650000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH2 0x3F3 JUMP JUMPDEST JUMPDEST ISZERO PUSH2 0xFE JUMPI PUSH1 0x1 SWAP1 POP PUSH2 0x3ED JUMP JUMPDEST PUSH2 0x13D DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x54776F0000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH2 0x3F3 JUMP JUMPDEST DUP1 PUSH2 0x183 JUMPI POP PUSH2 0x182 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x74776F0000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH2 0x3F3 JUMP JUMPDEST JUMPDEST ISZERO PUSH2 0x191 JUMPI PUSH1 0x2 SWAP1 POP PUSH2 0x3ED JUMP JUMPDEST PUSH2 0x1D0 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5468726565000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH2 0x3F3 JUMP JUMPDEST DUP1 PUSH2 0x216 JUMPI POP PUSH2 0x215 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x5468726565000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH2 0x3F3 JUMP JUMPDEST JUMPDEST ISZERO PUSH2 0x224 JUMPI PUSH1 0x3 SWAP1 POP PUSH2 0x3ED JUMP JUMPDEST PUSH1 0x4 SWAP1 POP PUSH2 0x3ED JUMP JUMPDEST PUSH2 0x26C DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4141410000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH2 0x3F3 JUMP JUMPDEST DUP1 PUSH2 0x2B2 JUMPI POP PUSH2 0x2B1 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x6161610000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH2 0x3F3 JUMP JUMPDEST JUMPDEST ISZERO PUSH2 0x2C0 JUMPI PUSH1 0x6F SWAP1 POP PUSH2 0x3ED JUMP JUMPDEST PUSH2 0x2FF DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4242420000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH2 0x3F3 JUMP JUMPDEST DUP1 PUSH2 0x345 JUMPI POP PUSH2 0x344 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x6262620000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH2 0x3F3 JUMP JUMPDEST JUMPDEST ISZERO PUSH2 0x353 JUMPI PUSH1 0xDE SWAP1 POP PUSH2 0x3ED JUMP JUMPDEST PUSH2 0x392 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4343430000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH2 0x3F3 JUMP JUMPDEST DUP1 PUSH2 0x3D8 JUMPI POP PUSH2 0x3D7 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x6363630000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH2 0x3F3 JUMP JUMPDEST JUMPDEST ISZERO PUSH2 0x3E7 JUMPI PUSH2 0x14D SWAP1 POP PUSH2 0x3ED JUMP JUMPDEST PUSH2 0x1BC SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 SWAP1 POP PUSH1 0x0 DUP4 SWAP1 POP PUSH1 0x0 DUP3 MLOAD SWAP1 POP DUP2 MLOAD DUP2 EQ PUSH2 0x418 JUMPI PUSH1 0x0 SWAP4 POP POP POP POP PUSH2 0x4D1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x4C8 JUMPI DUP3 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x436 JUMPI PUSH2 0x435 PUSH2 0x6FA JUMP JUMPDEST JUMPDEST PUSH1 0x20 ADD ADD MLOAD PUSH1 0xF8 SHR PUSH1 0xF8 SHL PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP5 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x476 JUMPI PUSH2 0x475 PUSH2 0x6FA JUMP JUMPDEST JUMPDEST PUSH1 0x20 ADD ADD MLOAD PUSH1 0xF8 SHR PUSH1 0xF8 SHL PUSH31 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x4B5 JUMPI PUSH1 0x0 SWAP5 POP POP POP POP POP PUSH2 0x4D1 JUMP JUMPDEST DUP1 DUP1 PUSH2 0x4C0 SWAP1 PUSH2 0x682 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x41B JUMP JUMPDEST POP PUSH1 0x1 SWAP4 POP POP POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4EA PUSH2 0x4E5 DUP5 PUSH2 0x607 JUMP JUMPDEST PUSH2 0x5E2 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x506 JUMPI PUSH2 0x505 PUSH2 0x75D JUMP JUMPDEST JUMPDEST PUSH2 0x511 DUP5 DUP3 DUP6 PUSH2 0x642 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x52E JUMPI PUSH2 0x52D PUSH2 0x758 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x53E DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x4D7 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x556 DUP2 PUSH2 0x77D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x573 JUMPI PUSH2 0x572 PUSH2 0x767 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x581 DUP6 DUP3 DUP7 ADD PUSH2 0x547 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x5A2 JUMPI PUSH2 0x5A1 PUSH2 0x762 JUMP JUMPDEST JUMPDEST PUSH2 0x5AE DUP6 DUP3 DUP7 ADD PUSH2 0x519 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x5C1 DUP2 PUSH2 0x638 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x5DC PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x5B8 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5EC PUSH2 0x5FD JUMP JUMPDEST SWAP1 POP PUSH2 0x5F8 DUP3 DUP3 PUSH2 0x651 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x622 JUMPI PUSH2 0x621 PUSH2 0x729 JUMP JUMPDEST JUMPDEST PUSH2 0x62B DUP3 PUSH2 0x76C JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH2 0x65A DUP3 PUSH2 0x76C JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x679 JUMPI PUSH2 0x678 PUSH2 0x729 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x68D DUP3 PUSH2 0x638 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 EQ ISZERO PUSH2 0x6C0 JUMPI PUSH2 0x6BF PUSH2 0x6CB JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x786 DUP2 PUSH2 0x638 JUMP JUMPDEST DUP2 EQ PUSH2 0x791 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xCC 0xCD SWAP15 0x2F 0xA7 MSTORE 0x5E 0xA8 0xB6 SWAP2 PUSH15 0xDCE2EF9D11AF488A51AA20C9538036 0x5D NOT CALLDATASIZE SSTORE PUSH17 0xD864736F6C634300080700330000000000 ",
"sourceMap": "69:1283:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;93:878;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;159:7;190:1;188;:3;184:778;;;213:22;227:1;213:22;;;;;;;;;;;;;;;;;:13;:22::i;:::-;:48;;;;239:22;253:1;239:22;;;;;;;;;;;;;;;;;:13;:22::i;:::-;213:48;209:97;;;289:1;282:8;;;;209:97;326:22;340:1;326:22;;;;;;;;;;;;;;;;;:13;:22::i;:::-;:48;;;;352:22;366:1;352:22;;;;;;;;;;;;;;;;;:13;:22::i;:::-;326:48;322:97;;;402:1;395:8;;;;322:97;439:24;453:1;439:24;;;;;;;;;;;;;;;;;:13;:24::i;:::-;:52;;;;467:24;481:1;467:24;;;;;;;;;;;;;;;;;:13;:24::i;:::-;439:52;435:101;;;519:1;512:8;;;;435:101;559:1;552:8;;;;184:778;597:22;611:1;597:22;;;;;;;;;;;;;;;;;:13;:22::i;:::-;:48;;;;623:22;637:1;623:22;;;;;;;;;;;;;;;;;:13;:22::i;:::-;597:48;593:99;;;673:3;666:10;;;;593:99;712:22;726:1;712:22;;;;;;;;;;;;;;;;;:13;:22::i;:::-;:48;;;;738:22;752:1;738:22;;;;;;;;;;;;;;;;;:13;:22::i;:::-;712:48;708:99;;;788:3;781:10;;;;708:99;827:22;841:1;827:22;;;;;;;;;;;;;;;;;:13;:22::i;:::-;:48;;;;853:22;867:1;853:22;;;;;;;;;;;;;;;;;:13;:22::i;:::-;827:48;823:99;;;903:3;896:10;;;;823:99;945:3;938:10;;93:878;;;;;:::o;981:368::-;1062:4;1079:15;1103:2;1079:27;;1117:15;1141:2;1117:27;;1155:10;1168:2;:9;1155:22;;1198:2;:9;1192:2;:15;1188:33;;1216:5;1209:12;;;;;;;1188:33;1237:9;1232:88;1252:2;1250:1;:4;1232:88;;;1289:2;1292:1;1289:5;;;;;;;;:::i;:::-;;;;;;;;;;1280:14;;;:2;1283:1;1280:5;;;;;;;;:::i;:::-;;;;;;;;;;:14;;;;1276:32;;1303:5;1296:12;;;;;;;;1276:32;1256:3;;;;;:::i;:::-;;;;1232:88;;;;1337:4;1330:11;;;;;981:368;;;;;:::o;7:412:1:-;85:5;110:66;126:49;168:6;126:49;:::i;:::-;110:66;:::i;:::-;101:75;;199:6;192:5;185:21;237:4;230:5;226:16;275:3;266:6;261:3;257:16;254:25;251:112;;;282:79;;:::i;:::-;251:112;372:41;406:6;401:3;396;372:41;:::i;:::-;91:328;7:412;;;;;:::o;439:340::-;495:5;544:3;537:4;529:6;525:17;521:27;511:122;;552:79;;:::i;:::-;511:122;669:6;656:20;694:79;769:3;761:6;754:4;746:6;742:17;694:79;:::i;:::-;685:88;;501:278;439:340;;;;:::o;785:139::-;831:5;869:6;856:20;847:29;;885:33;912:5;885:33;:::i;:::-;785:139;;;;:::o;930:654::-;1008:6;1016;1065:2;1053:9;1044:7;1040:23;1036:32;1033:119;;;1071:79;;:::i;:::-;1033:119;1191:1;1216:53;1261:7;1252:6;1241:9;1237:22;1216:53;:::i;:::-;1206:63;;1162:117;1346:2;1335:9;1331:18;1318:32;1377:18;1369:6;1366:30;1363:117;;;1399:79;;:::i;:::-;1363:117;1504:63;1559:7;1550:6;1539:9;1535:22;1504:63;:::i;:::-;1494:73;;1289:288;930:654;;;;;:::o;1590:118::-;1677:24;1695:5;1677:24;:::i;:::-;1672:3;1665:37;1590:118;;:::o;1714:222::-;1807:4;1845:2;1834:9;1830:18;1822:26;;1858:71;1926:1;1915:9;1911:17;1902:6;1858:71;:::i;:::-;1714:222;;;;:::o;1942:129::-;1976:6;2003:20;;:::i;:::-;1993:30;;2032:33;2060:4;2052:6;2032:33;:::i;:::-;1942:129;;;:::o;2077:75::-;2110:6;2143:2;2137:9;2127:19;;2077:75;:::o;2158:308::-;2220:4;2310:18;2302:6;2299:30;2296:56;;;2332:18;;:::i;:::-;2296:56;2370:29;2392:6;2370:29;:::i;:::-;2362:37;;2454:4;2448;2444:15;2436:23;;2158:308;;;:::o;2472:77::-;2509:7;2538:5;2527:16;;2472:77;;;:::o;2555:154::-;2639:6;2634:3;2629;2616:30;2701:1;2692:6;2687:3;2683:16;2676:27;2555:154;;;:::o;2715:281::-;2798:27;2820:4;2798:27;:::i;:::-;2790:6;2786:40;2928:6;2916:10;2913:22;2892:18;2880:10;2877:34;2874:62;2871:88;;;2939:18;;:::i;:::-;2871:88;2979:10;2975:2;2968:22;2758:238;2715:281;;:::o;3002:233::-;3041:3;3064:24;3082:5;3064:24;:::i;:::-;3055:33;;3110:66;3103:5;3100:77;3097:103;;;3180:18;;:::i;:::-;3097:103;3227:1;3220:5;3216:13;3209:20;;3002:233;;;:::o;3241:180::-;3289:77;3286:1;3279:88;3386:4;3383:1;3376:15;3410:4;3407:1;3400:15;3427:180;3475:77;3472:1;3465:88;3572:4;3569:1;3562:15;3596:4;3593:1;3586:15;3613:180;3661:77;3658:1;3651:88;3758:4;3755:1;3748:15;3782:4;3779:1;3772:15;3799:117;3908:1;3905;3898:12;3922:117;4031:1;4028;4021:12;4045:117;4154:1;4151;4144:12;4168:117;4277:1;4274;4267:12;4291:102;4332:6;4383:2;4379:7;4374:2;4367:5;4363:14;4359:28;4349:38;;4291:102;;;:::o;4399:122::-;4472:24;4490:5;4472:24;:::i;:::-;4465:5;4462:35;4452:63;;4511:1;4508;4501:12;4452:63;4399:122;:::o"
},
"gasEstimates": {
"creation": {
"codeDepositCost": "398800",
"executionCost": "436",
"totalCost": "399236"
},
"external": {
"ViewInteger(uint256,string)": "infinite"
},
"internal": {
"stringsEquals(string memory,string memory)": "infinite"
}
},
"methodIdentifiers": {
"ViewInteger(uint256,string)": "0862c039"
}
},
"abi": [
{
"inputs": [
{
"internalType": "uint256",
"name": "c",
"type": "uint256"
},
{
"internalType": "string",
"name": "d",
"type": "string"
}
],
"name": "ViewInteger",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.7+commit.e28d00a7"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "uint256",
"name": "c",
"type": "uint256"
},
{
"internalType": "string",
"name": "d",
"type": "string"
}
],
"name": "ViewInteger",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"FIORA/PLATFORM/Contracts/Logic/Logic.sol": "Logic"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"FIORA/PLATFORM/Contracts/Logic/Logic.sol": {
"keccak256": "0xf56a02dc24ef4c21597a1f3a70f103b125323ada9d04158bfa74ba5f7d874b0b",
"license": "MIT",
"urls": [
"bzz-raw://146000e9a44437f2c33711a48e7430924b042bc52b6077cdc189c517364857f7",
"dweb:/ipfs/QmSqKXXtLobQFFeLUG6voHpX3SQST1aN8vnuW8VTLU8G81"
]
}
},
"version": 1
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract FioraLogic {
address _externalStorage1;
uint256 private seats = 0;
mapping (uint256=>address) seatMembers;
string temp = "";
// ========================== STORAGE FUNCTIONS ==========================
function getAddressSowardDronws(address adr) public {
}
function setStorage1Address (address adr) public {
//require (MS() == _secretary);
_externalStorage1 = adr;
}
//
// ========================== EXTERNAL FUNCTIONS ==========================
function ModifyAddress(uint c, string memory d) external {
if(c == 11){
seatMembers[seats] = MS();
seats +=1;
temp = d;
}
}
function ViewAddress(uint c, uint256 d) external view returns(address) {
if(c == 11){
return seatMembers[d];
}
return address(0);
}
function ViewInteger(uint c,string memory d) external pure returns (uint256){
if (c<5){
if( stringsEquals(d,"One") || stringsEquals(d,"one") ){
return 1;
}
if( stringsEquals(d,"Two") || stringsEquals(d,"two") ){
return 2;
}
if( stringsEquals(d,"Three") || stringsEquals(d,"Three") ){
return 3;
}
return 4;
}else{
if( stringsEquals(d,"AAA") || stringsEquals(d,"aaa") ){
return 111;
}
if( stringsEquals(d,"BBB") || stringsEquals(d,"bbb") ){
return 222;
}
if( stringsEquals(d,"CCC") || stringsEquals(d,"ccc") ){
return 333;
}
return 444;
}
}
//
// ========================== LATERAL FUNCTIONS ==========================
/// Converting string to Uint256 Code example:
function stringToUint(string memory s) internal pure returns (uint256, bool) {
bool hasError = false;
bytes memory b = bytes(s);
uint256 result = 0;
uint256 oldResult = 0;
for (uint i = 0; i < b.length; i++) { // c = b[i] was not needed
if (uint256(bytes32(b[i])) >= 48 && uint256(bytes32(b[i])) <= 57) {
// store old value so we can check for overflows
oldResult = result;
result = result * 10 + (uint256(bytes32(b[i])) - 48); // bytes and int are not compatible with the operator -.
// prevent overflows
if(oldResult > result ) {
// we can only get here if the result overflowed and is smaller than last stored value
hasError = true;
}
} else {
hasError = true;
}
}
return (result, hasError);
}
/// Chechk Equality of two strings
function stringsEquals(string memory s1, string memory s2) private pure returns (bool) {
bytes memory b1 = bytes(s1);
bytes memory b2 = bytes(s2);
uint256 l1 = b1.length;
if (l1 != b2.length) return false;
for (uint256 i=0; i<l1; i++) {
if (b1[i] != b2[i]) return false;
}
return true;
}
function MS() internal view returns (address) {
return msg.sender;
}
//
}
{
"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": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"deployedBytecode": {
"functionDebugData": {},
"generatedSources": [],
"immutableReferences": {},
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"gasEstimates": null,
"methodIdentifiers": {
"ModifyAddress(uint256,string)": "2549f7c8",
"ViewAddress(uint256,uint256)": "1f48e6e3",
"ViewInteger(uint256,string)": "0862c039"
}
},
"abi": [
{
"inputs": [
{
"internalType": "uint256",
"name": "c",
"type": "uint256"
},
{
"internalType": "string",
"name": "d",
"type": "string"
}
],
"name": "ModifyAddress",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "c",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "d",
"type": "uint256"
}
],
"name": "ViewAddress",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "c",
"type": "uint256"
},
{
"internalType": "string",
"name": "d",
"type": "string"
}
],
"name": "ViewInteger",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.7+commit.e28d00a7"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "uint256",
"name": "c",
"type": "uint256"
},
{
"internalType": "string",
"name": "d",
"type": "string"
}
],
"name": "ModifyAddress",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "c",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "d",
"type": "uint256"
}
],
"name": "ViewAddress",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "c",
"type": "uint256"
},
{
"internalType": "string",
"name": "d",
"type": "string"
}
],
"name": "ViewInteger",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"FIORA/PLATFORM/Contracts/Proxy/proxy.sol": "FioraLogic"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"FIORA/PLATFORM/Contracts/Proxy/proxy.sol": {
"keccak256": "0x4fdf332d7a3d95f7844c1caa609bbf2943b5dd7d7203ddfae6987574352cf45f",
"license": "MIT",
"urls": [
"bzz-raw://22ad700e6d00ddbd41e01309745b6244f8fd7251577a2542e08a847f758dfbf6",
"dweb:/ipfs/QmV3PUhPR82hzLc2qeVwmyyeDVh69hrJ1WiHKoz7ZEzdWu"
]
},
"FIORA/PLATFORM/Interfaces/IBEP20.sol": {
"keccak256": "0xb0eb39254aff8775c8f54327e182dee6969edcb91ab03e486123cb93daa0f88f",
"license": "MIT",
"urls": [
"bzz-raw://94410b7cc2e89730f9c838e3a6a8c1da5d027fef8b5148bdcb1a525496ec36dc",
"dweb:/ipfs/QmY5JCfgZWnUfXenU7Kt89ucJMWjWMHFLCULqwPJAH94Qr"
]
}
},
"version": 1
}
// this line is added to create a gist. Empty file is not allowed.
{
"compiler": {
"version": "0.8.7+commit.e28d00a7"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Transfer",
"type": "event"
},
{
"inputs": [],
"name": "Init",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "decimals",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "command",
"type": "uint256"
},
{
"internalType": "string",
"name": "_data",
"type": "string"
}
],
"name": "externaModifyAddressCall",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "command",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_data",
"type": "uint256"
}
],
"name": "externaViewAddressCall",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "command",
"type": "uint256"
},
{
"internalType": "string",
"name": "_data",
"type": "string"
}
],
"name": "externaViewIntegerCall",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getContractAddress",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getLogicAddress",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getMyBalance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "name",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "adr",
"type": "address"
}
],
"name": "setLogicAddress",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "symbol",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "transfer",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {
"decimals()": {
"details": "Returns the token decimals."
},
"name()": {
"details": "Returns the token name."
},
"symbol()": {
"details": "Returns the token symbol."
},
"totalSupply()": {
"details": "Returns the amount of tokens in existence."
}
},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"FIORA/PLATFORM/Contracts/Proxy/proxy.sol": "FioraProxy"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"FIORA/PLATFORM/Contracts/Proxy/proxy.sol": {
"keccak256": "0x4fdf332d7a3d95f7844c1caa609bbf2943b5dd7d7203ddfae6987574352cf45f",
"license": "MIT",
"urls": [
"bzz-raw://22ad700e6d00ddbd41e01309745b6244f8fd7251577a2542e08a847f758dfbf6",
"dweb:/ipfs/QmV3PUhPR82hzLc2qeVwmyyeDVh69hrJ1WiHKoz7ZEzdWu"
]
},
"FIORA/PLATFORM/Interfaces/IBEP20.sol": {
"keccak256": "0xb0eb39254aff8775c8f54327e182dee6969edcb91ab03e486123cb93daa0f88f",
"license": "MIT",
"urls": [
"bzz-raw://94410b7cc2e89730f9c838e3a6a8c1da5d027fef8b5148bdcb1a525496ec36dc",
"dweb:/ipfs/QmY5JCfgZWnUfXenU7Kt89ucJMWjWMHFLCULqwPJAH94Qr"
]
}
},
"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": {
"functionDebugData": {},
"generatedSources": [],
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"deployedBytecode": {
"functionDebugData": {},
"generatedSources": [],
"immutableReferences": {},
"linkReferences": {},
"object": "",
"opcodes": "",
"sourceMap": ""
},
"gasEstimates": null,
"methodIdentifiers": {
"ViewInteger(uint256,string)": "0862c039"
}
},
"abi": [
{
"inputs": [
{
"internalType": "uint256",
"name": "c",
"type": "uint256"
},
{
"internalType": "string",
"name": "d",
"type": "string"
}
],
"name": "ViewInteger",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
}
]
}
{
"compiler": {
"version": "0.8.7+commit.e28d00a7"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "uint256",
"name": "c",
"type": "uint256"
},
{
"internalType": "string",
"name": "d",
"type": "string"
}
],
"name": "ViewInteger",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "pure",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"FIORA/PLATFORM/Contracts/Proxy/proxy.sol": "Logic"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"FIORA/PLATFORM/Contracts/Proxy/proxy.sol": {
"keccak256": "0x68536363e59f4d7910a893fed5b569072f6a62150059249601949868e11522d6",
"license": "MIT",
"urls": [
"bzz-raw://8e123e0050ee71abaebdde0b86382f108711c7672341e38fbea7001e6748513e",
"dweb:/ipfs/QmbmunyN2DSebvp1f7AAHtyvEUSyK7zsTzF8ZeJ1YEfmX8"
]
},
"FIORA/PLATFORM/Interfaces/IBEP20.sol": {
"keccak256": "0xb0eb39254aff8775c8f54327e182dee6969edcb91ab03e486123cb93daa0f88f",
"license": "MIT",
"urls": [
"bzz-raw://94410b7cc2e89730f9c838e3a6a8c1da5d027fef8b5148bdcb1a525496ec36dc",
"dweb:/ipfs/QmY5JCfgZWnUfXenU7Kt89ucJMWjWMHFLCULqwPJAH94Qr"
]
}
},
"version": 1
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "../../Interfaces/IBEP20.sol";
contract FioraProxy{
// ========================== GLOBAL VARIABLES ==========================
string private _name;
string private _symbol;
uint256 private _decimals;
uint256 private _totalSupply;
address private _logic;
address private _secretary;
bool private _paused;
// Mapping from Id to account balances
mapping(address => uint256) private _balances;
//
// Transfers
event Transfer(address indexed from, address indexed to, uint value);
constructor() {
_name = "FIORA";
_symbol = "FRA";
_decimals = 0;
_totalSupply = 10000000;
_secretary = msg.sender;
_paused = false;
_logic = 0x78AE4237E70839d7E406750971d1E6086ad4448a;
}
FioraLogic logic;
// ========================== EXTERNAL FUNCTIONS ==========================
function Init() public returns (bool){
logic = FioraLogic(_logic);
return true;
}
function externaViewIntegerCall(uint command, string memory _data) public view returns (uint256){
require(!_paused,"Contract is paaused.");
return logic.ViewInteger( command, _data);
}
function externaViewAddressCall(uint command, uint256 _data) public view returns (address){
require(!_paused,"Contract is paaused.");
return logic.ViewAddress( command, _data);
}
function externaModifyAddressCall(uint command, string memory _data) public {
require(!_paused,"Contract is paaused.");
logic.ModifyAddress( command, _data);
}
function setLogicAddress (address adr) public {
require (MS() == _secretary);
_logic = adr;
Init();
}
function getLogicAddress () public view returns (address) {
return _logic;
}
//
// ========================== BEP20 FUNCTIONS ==========================
// Transfering coins function
function transfer(address to, uint value) public returns(bool) {
address sndr = MS();
require(balanceOf(sndr) >= value, "Insufficient balance");
_beforeTokenTransfer(sndr, to, value);
_balances[to] += value;
_balances[sndr] -= value;
emit Transfer(sndr, to, value);
_afterTokenTransfer(sndr, to, value);
return true;
}
/**
* @dev Returns the amount of tokens in existence.
*/
function totalSupply() external view returns (uint256){
return _totalSupply;
}
/**
* @dev Returns the token decimals.
*/
function decimals() external view returns (uint256){
return _decimals;
}
/**
* @dev Returns the token symbol.
*/
function symbol() external view returns (string memory){
return _symbol;
}
/**
* @dev Returns the token name.
*/
function name() external view returns (string memory){
return _name;
}
function balanceOf(address account) public view returns (uint256){
return _balances[account];
}
function getMyBalance() public view returns (uint256){
return _balances[msg.sender];
}
/**
* @dev Hook that is called before any transfer of tokens.
*
* To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
*/
function _beforeTokenTransfer(
address from,
address to,
uint256 amount
) internal virtual {}
/**
* @dev Hook that is called after any transfer of tokens.
*
* To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
*/
function _afterTokenTransfer(
address from,
address to,
uint256 amount
) internal virtual {}
//
// ========================== OTHER FUNCTIONS ==========================
function MS() internal view returns (address) {
return msg.sender;
}
function getContractAddress () public view returns (address) {
return address(this);
}
//
}
interface FioraLogic{
function ViewInteger(uint c,string memory d) external pure returns (uint256);
function ModifyAddress(uint c, string memory d) external;
function ViewAddress(uint c, uint256 d) external view returns(address);
}
// this line is added to create a gist. Empty file is not allowed.
{
"compiler": {
"version": "0.8.7+commit.e28d00a7"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "TransferSword",
"type": "event"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "IDOChipIn",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "startSteps",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "durationSteps",
"type": "uint256"
}
],
"name": "IDOInit",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "IDOTrigger",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "adr",
"type": "address"
}
],
"name": "getBalance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "adr",
"type": "address"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "mintSwordDrones",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "adr",
"type": "address"
}
],
"name": "setMasterAddress",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "transfer",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
],
"devdoc": {
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {},
"version": 1
}
},
"settings": {
"compilationTarget": {
"FIORA/PLATFORM/Contracts/Storages/Storage1.sol": "FioraStorage1"
},
"evmVersion": "london",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"FIORA/PLATFORM/Contracts/Storages/Storage1.sol": {
"keccak256": "0xf52801e86447d4a2ebdef426e39e8eb582bad8d05db1d5c1592518ccb6f004c7",
"license": "MIT",
"urls": [
"bzz-raw://ae09c99e7a31bf828d2679b57a9aa058f755584f7167aca454fe39e6e5acad04",
"dweb:/ipfs/QmY43wpzSPpp7HQ4aUo6TeDvr2i2fZWuqaCyRNiKpvpLrd"
]
}
},
"version": 1
}
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract FioraStorage1 {
// ========================== STORAGE VARIABLES ==========================
mapping(address=>uint256) private _swordDroneBalances;
uint256 private _maxSwordDrones = 7000000;
uint256 private _totalSwordDrones;
address _secretary;
address _master;
mapping(address=>uint256) private _swordDroneIDOchipIns;
address[] _swordDroneIDOAddresses;
uint256 _swordDroneIDOIndex;
uint256 _swordDroneIDOTotalvalue;
event TransferSword(address indexed from, address indexed to, uint value);
//
constructor(){
_secretary = msg.sender;
_totalSwordDrones = 0;
IDOstarted = false;
IDOended = false;
}
// ========================== STORAGE FUNCTIONS ==========================
function getBalance(address adr) public view returns (uint256) {
return _swordDroneBalances[adr];
}
// Transfering swords
function transfer(address to, uint value) public returns(bool) {
address sndr = msg.sender;
require( getBalance(sndr) >= value, "Insufficient Sword balance");
_swordDroneBalances[to] += value;
_swordDroneBalances[sndr] -= value;
emit TransferSword(sndr, to, value);
return true;
}
function mintSwordDrones(address adr, uint256 amount) public returns (bool){
if(msg.sender == _secretary){
if(_totalSwordDrones <= (_maxSwordDrones - amount)){
_swordDroneBalances[adr] +=amount;
_totalSwordDrones +=amount;
return true;
}
}
return false;
}
function setMasterAddress(address adr) public returns (bool){
_master = adr;
return true;
}
//
// ========================== IDO FUNCTIONS ==========================
/// IDO
// Time Table
uint256 startPoint;
uint256 endPoint;
// vars:
bool IDOstarted;
bool IDOended;
function IDOInit(uint256 startSteps, uint256 durationSteps) external returns (uint){
require(MS() == _master);
require(TO() == _secretary);
startPoint = block.timestamp + startSteps;
endPoint = startPoint + durationSteps;
IDOstarted = true;
IDOended = false;
return 0; // Successful Initialization.
}
function IDOChipIn(uint256 amount) external returns (uint) {
require(MS() == _master);
if(!IDOstarted){return 1;} // The IDO hasn't been started yet.
if(IDOended){return 2;} // The IDO has been finished.
if(block.timestamp < endPoint){
_swordDroneIDOTotalvalue += amount;
if(_swordDroneIDOchipIns[TO()] == 0 ){
_swordDroneIDOIndex++;
_swordDroneIDOAddresses.push(TO());
}
_swordDroneIDOchipIns[TO()] += amount;
return 0; // Successful chip in.
}else{
IDOended = true;
return 2; // The IDO has been finished.
}
}
function IDOTrigger() external returns (uint){
require(MS() == _master);
require(TO() == _secretary);
if(IDOstarted){return 1;} // The IDO hesn't been started yet.
if(block.timestamp < endPoint){return 2;} // The IDO hesn't been finished yet.
IDOended = true;
if(_swordDroneIDOTotalvalue == 0 ){return 3;} // Zero total value.
uint share = _maxSwordDrones / _swordDroneIDOTotalvalue;
for(uint i; i < _swordDroneIDOIndex; i++){
address adr = _swordDroneIDOAddresses[i];
uint256 val = _swordDroneIDOchipIns[adr]*share;
_swordDroneBalances[adr] += val;
emit TransferSword(address(0),adr,val);
}
return 0;
}
//
// ========================== LATERAL FUNCTIONS ==========================
function MS() private view returns (address){
return msg.sender;
}
function TO() private view returns (address){
return tx.origin;
}
//
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment