UNPKG

witnet-solidity-bridge

Version:

Witnet Solidity Bridge contracts for EVM-compatible chains

1,124 lines (1,123 loc) 139 kB
{ "contractName": "WitRngConsumer", "abi": [ { "inputs": [ { "internalType": "contract IWitRandomness", "name": "_witRandomness", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "blockNumber", "type": "uint256" }, { "indexed": false, "internalType": "bytes32", "name": "seed", "type": "bytes32" } ], "name": "Log", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "blockNumber", "type": "uint256" }, { "indexed": false, "internalType": "bytes32", "name": "uuid", "type": "bytes32" }, { "indexed": false, "internalType": "Witnet.Timestamp", "name": "timestamp", "type": "uint64" }, { "indexed": false, "internalType": "Witnet.TransactionHash", "name": "trail", "type": "bytes32" }, { "indexed": false, "internalType": "uint256", "name": "finality", "type": "uint256" } ], "name": "Log", "type": "event" }, { "inputs": [], "name": "witRandomness", "outputs": [ { "internalType": "contract IWitRandomness", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "blockNumber", "type": "uint256" } ], "name": "fetchRandomness", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "blockNumber", "type": "uint256" } ], "name": "fetchRandomnessTrails", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ], "metadata": "{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IWitRandomness\",\"name\":\"_witRandomness\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"seed\",\"type\":\"bytes32\"}],\"name\":\"Log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"uuid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"Witnet.Timestamp\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"Witnet.TransactionHash\",\"name\":\"trail\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"finality\",\"type\":\"uint256\"}],\"name\":\"Log\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"fetchRandomness\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"fetchRandomnessTrails\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"witRandomness\",\"outputs\":[{\"internalType\":\"contract IWitRandomness\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/mockups/tests/WitRngConsumer.sol\":\"WitRngConsumer\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"project:/contracts/interfaces/IWitRandomness.sol\":{\"keccak256\":\"0x349b27a7ecb4ca22f87d4ab13714a010668a7014d9c37fdb91caa407981b889a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a53b9c8d63c973bb98790ef3305fbc24debaa2dadad1b48b82ffdbfce73e08b6\",\"dweb:/ipfs/QmSue9dMNK1V5ChooMBTtccmpx2JoiyktqTP1Ng6bSuUGx\"]},\"project:/contracts/interfaces/IWitRandomnessAdmin.sol\":{\"keccak256\":\"0xb5b9b2375509f03db5b1e198089f4b0cf4e4ebbd31a2a7b5d2480a743bebbcd2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0cade769eec375a3ec1cd4d376be54ee48a0e18786543f6ee396c0debfa4c04c\",\"dweb:/ipfs/QmY7AucsWp54PZVgMFjrJRt1n1DKCXb84ZXzTXnRZULYXF\"]},\"project:/contracts/interfaces/IWitRandomnessConsumer.sol\":{\"keccak256\":\"0x8006c81ac34c0797d31606164e6e0c6a7e97f0ba0f5228505bbc3d4fbcf16cdd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8cc71c0afed6dd296a808513b3119840490f76fb884ad35729669201446348bf\",\"dweb:/ipfs/QmQLs5jg8nugFgNu5psvGaCsMC6X1YoD6qV5nt7Gf5iAuk\"]},\"project:/contracts/interfaces/IWitRandomnessEvents.sol\":{\"keccak256\":\"0x005a56891f103c78ce015fbbcb9cf96f64e3810a70cd20dcdcce2963186788fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6365a0bb99b2ac7990b74b33a4df7b045702362baf11998f8345f1a2530c29ae\",\"dweb:/ipfs/QmY2d5m2E7JwFT4EFzbrXZkiL4sSTowmosMHjSE3fTAwXf\"]},\"project:/contracts/interfaces/IWitRandomnessTypes.sol\":{\"keccak256\":\"0x52d825bf6bd6a2515116f993e939108f5412f5a05e304893ba81e9fcbfce4e09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://60b3db141539544afc2701a873570a7b78639090e36b4bb7a57ae0d0dddeb9f4\",\"dweb:/ipfs/QmTWkwYdF4QMTeCFVcYNi9pWi3PwVeK29xgp946z8xtuiN\"]},\"project:/contracts/libs/Bech32.sol\":{\"keccak256\":\"0x14618323a0efe7586c20906a2e9cee7ad63baa976ff231c57f7f2d7d3707fb8b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a19f05fe84047a7a6d3d6fc39972b432e6e536aa70472386a9d7a6d9aab64a64\",\"dweb:/ipfs/QmcHwUY66yjiotRH4Q3kbRvSzcHyLQ1yHL3KbtQKiMhtZE\"]},\"project:/contracts/libs/Secp256k1.sol\":{\"keccak256\":\"0xbe686002da5004ff39dd70709f3820eba2afe9323ae9cb894009c161e4b1a666\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18fab91775216de0707cea9ad285b10be09127461a13432fea358bf9cb2a0c2e\",\"dweb:/ipfs/QmeRUGsgstnM4hxM9hpkBf3L6cE5btirEaowcMxmuw3utj\"]},\"project:/contracts/libs/Witnet.sol\":{\"keccak256\":\"0x1d446c3e534e40e676d1763bfb2897fadfac8afed904ab757843d7d6770b0a6c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://338fb1073f17d64e8d31bfe492d9475ce906788ee08e6489ce30413f91dc1328\",\"dweb:/ipfs/QmPe5QX2AGTnQFjse1Xttq4ZYWwYAiXoySb5VUui3PqPhk\"]},\"project:/contracts/libs/WitnetBuffer.sol\":{\"keccak256\":\"0x8e07aebe2954ab3e6f2d8eceedb12db7cf915c1f3e8630f4fa9999cecb1c78ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed6c54cc901183d61546e8fd15bd5ea8ef238ebc915642946071d435dd7481ea\",\"dweb:/ipfs/Qmcaqta7YjUSBbBUGqoh44bsCS6UqqoyHjBuz4qnKBShXM\"]},\"project:/contracts/libs/WitnetCBOR.sol\":{\"keccak256\":\"0xd99308373575cc10fb7f2ceb0f6a8625f3911275c1fa27811fae498d98d03d97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b4909a999d7b660a2dc54ca957b6eccfa523e2765fc4d6a2574dee7d5cd67b43\",\"dweb:/ipfs/QmWGQT4KDcfSFe1hcHVoWx6E4PhYMaod5iLpJCWBEeShzh\"]},\"project:/contracts/mockups/tests/WitRngConsumer.sol\":{\"keccak256\":\"0xb50e9558454f0ee57d894de4f282c7eecb47263aebd4c2b96b50e81f2f9b7a1b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d0566d4d8fd7e90d474a435735ec33c1d2fa70bf865f467610c015ec9e1d7aed\",\"dweb:/ipfs/QmUN1ViHW9QuknHL7brnF8WLBcuAwv3PKLbnPtE3HJRQ4Y\"]}},\"version\":1}", "bytecode": "0x60a0604052348015600e575f5ffd5b506040516103a53803806103a5833981016040819052602b91603b565b6001600160a01b03166080526066565b5f60208284031215604a575f5ffd5b81516001600160a01b0381168114605f575f5ffd5b9392505050565b60805161031b61008a5f395f8181605d0152818160b401526101eb015261031b5ff3fe608060405234801561000f575f5ffd5b506004361061003f575f3560e01c8063a9f1851c14610043578063ae5ce03e14610058578063f87de1101461009b575b5f5ffd5b61005661005136600461026f565b6100ae565b005b61007f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200160405180910390f35b6100566100a936600461026f565b6101a9565b5f5f5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166317f45487866040518263ffffffff1660e01b815260040161010091815260200190565b608060405180830381865afa15801561011b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061013f9190610286565b604080518a81526020810186905267ffffffffffffffff8516818301526060810184905260808101839052905194985092965090945092507f3dfc87ac2e15e43d14d2b681dc2c43284e19972fc0ce68426758fe0ba168c4e1919081900360a00190a15050505050565b6040516320ac705d60e21b8152600481018290527f869e334d92a3ccef30bb00b0cc186e212adf165605f0988318728cdcb9819d139082906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906382b1c17490602401602060405180830381865afa158015610230573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061025491906102ce565b6040805192835260208301919091520160405180910390a150565b5f6020828403121561027f575f5ffd5b5035919050565b5f5f5f5f60808587031215610299575f5ffd5b8451602086015190945067ffffffffffffffff811681146102b8575f5ffd5b6040860151606090960151949790965092505050565b5f602082840312156102de575f5ffd5b505191905056fea264697066735822122098c0b9a9d4d04898bd79f7ccb7e93fe5f74d4a96e8f25b4e3374162228b9011064736f6c634300081e0033", "deployedBytecode": "0x608060405234801561000f575f5ffd5b506004361061003f575f3560e01c8063a9f1851c14610043578063ae5ce03e14610058578063f87de1101461009b575b5f5ffd5b61005661005136600461026f565b6100ae565b005b61007f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200160405180910390f35b6100566100a936600461026f565b6101a9565b5f5f5f5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166317f45487866040518263ffffffff1660e01b815260040161010091815260200190565b608060405180830381865afa15801561011b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061013f9190610286565b604080518a81526020810186905267ffffffffffffffff8516818301526060810184905260808101839052905194985092965090945092507f3dfc87ac2e15e43d14d2b681dc2c43284e19972fc0ce68426758fe0ba168c4e1919081900360a00190a15050505050565b6040516320ac705d60e21b8152600481018290527f869e334d92a3ccef30bb00b0cc186e212adf165605f0988318728cdcb9819d139082906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906382b1c17490602401602060405180830381865afa158015610230573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061025491906102ce565b6040805192835260208301919091520160405180910390a150565b5f6020828403121561027f575f5ffd5b5035919050565b5f5f5f5f60808587031215610299575f5ffd5b8451602086015190945067ffffffffffffffff811681146102b8575f5ffd5b6040860151606090960151949790965092505050565b5f602082840312156102de575f5ffd5b505191905056fea264697066735822122098c0b9a9d4d04898bd79f7ccb7e93fe5f74d4a96e8f25b4e3374162228b9011064736f6c634300081e0033", "immutableReferences": { "45287": [ { "length": 32, "start": 93 }, { "length": 32, "start": 180 }, { "length": 32, "start": 491 } ] }, "generatedSources": [ { "ast": { "nativeSrc": "0:330:136", "nodeType": "YulBlock", "src": "0:330:136", "statements": [ { "nativeSrc": "6:3:136", "nodeType": "YulBlock", "src": "6:3:136", "statements": [] }, { "body": { "nativeSrc": "119:209:136", "nodeType": "YulBlock", "src": "119:209:136", "statements": [ { "body": { "nativeSrc": "165:16:136", "nodeType": "YulBlock", "src": "165:16:136", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nativeSrc": "174:1:136", "nodeType": "YulLiteral", "src": "174:1:136", "type": "", "value": "0" }, { "kind": "number", "nativeSrc": "177:1:136", "nodeType": "YulLiteral", "src": "177:1:136", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nativeSrc": "167:6:136", "nodeType": "YulIdentifier", "src": "167:6:136" }, "nativeSrc": "167:12:136", "nodeType": "YulFunctionCall", "src": "167:12:136" }, "nativeSrc": "167:12:136", "nodeType": "YulExpressionStatement", "src": "167:12:136" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "dataEnd", "nativeSrc": "140:7:136", "nodeType": "YulIdentifier", "src": "140:7:136" }, { "name": "headStart", "nativeSrc": "149:9:136", "nodeType": "YulIdentifier", "src": "149:9:136" } ], "functionName": { "name": "sub", "nativeSrc": "136:3:136", "nodeType": "YulIdentifier", "src": "136:3:136" }, "nativeSrc": "136:23:136", "nodeType": "YulFunctionCall", "src": "136:23:136" }, { "kind": "number", "nativeSrc": "161:2:136", "nodeType": "YulLiteral", "src": "161:2:136", "type": "", "value": "32" } ], "functionName": { "name": "slt", "nativeSrc": "132:3:136", "nodeType": "YulIdentifier", "src": "132:3:136" }, "nativeSrc": "132:32:136", "nodeType": "YulFunctionCall", "src": "132:32:136" }, "nativeSrc": "129:52:136", "nodeType": "YulIf", "src": "129:52:136" }, { "nativeSrc": "190:29:136", "nodeType": "YulVariableDeclaration", "src": "190:29:136", "value": { "arguments": [ { "name": "headStart", "nativeSrc": "209:9:136", "nodeType": "YulIdentifier", "src": "209:9:136" } ], "functionName": { "name": "mload", "nativeSrc": "203:5:136", "nodeType": "YulIdentifier", "src": "203:5:136" }, "nativeSrc": "203:16:136", "nodeType": "YulFunctionCall", "src": "203:16:136" }, "variables": [ { "name": "value", "nativeSrc": "194:5:136", "nodeType": "YulTypedName", "src": "194:5:136", "type": "" } ] }, { "body": { "nativeSrc": "282:16:136", "nodeType": "YulBlock", "src": "282:16:136", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nativeSrc": "291:1:136", "nodeType": "YulLiteral", "src": "291:1:136", "type": "", "value": "0" }, { "kind": "number", "nativeSrc": "294:1:136", "nodeType": "YulLiteral", "src": "294:1:136", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nativeSrc": "284:6:136", "nodeType": "YulIdentifier", "src": "284:6:136" }, "nativeSrc": "284:12:136", "nodeType": "YulFunctionCall", "src": "284:12:136" }, "nativeSrc": "284:12:136", "nodeType": "YulExpressionStatement", "src": "284:12:136" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "value", "nativeSrc": "241:5:136", "nodeType": "YulIdentifier", "src": "241:5:136" }, { "arguments": [ { "name": "value", "nativeSrc": "252:5:136", "nodeType": "YulIdentifier", "src": "252:5:136" }, { "arguments": [ { "arguments": [ { "kind": "number", "nativeSrc": "267:3:136", "nodeType": "YulLiteral", "src": "267:3:136", "type": "", "value": "160" }, { "kind": "number", "nativeSrc": "272:1:136", "nodeType": "YulLiteral", "src": "272:1:136", "type": "", "value": "1" } ], "functionName": { "name": "shl", "nativeSrc": "263:3:136", "nodeType": "YulIdentifier", "src": "263:3:136" }, "nativeSrc": "263:11:136", "nodeType": "YulFunctionCall", "src": "263:11:136" }, { "kind": "number", "nativeSrc": "276:1:136", "nodeType": "YulLiteral", "src": "276:1:136", "type": "", "value": "1" } ], "functionName": { "name": "sub", "nativeSrc": "259:3:136", "nodeType": "YulIdentifier", "src": "259:3:136" }, "nativeSrc": "259:19:136", "nodeType": "YulFunctionCall", "src": "259:19:136" } ], "functionName": { "name": "and", "nativeSrc": "248:3:136", "nodeType": "YulIdentifier", "src": "248:3:136" }, "nativeSrc": "248:31:136", "nodeType": "YulFunctionCall", "src": "248:31:136" } ], "functionName": { "name": "eq", "nativeSrc": "238:2:136", "nodeType": "YulIdentifier", "src": "238:2:136" }, "nativeSrc": "238:42:136", "nodeType": "YulFunctionCall", "src": "238:42:136" } ], "functionName": { "name": "iszero", "nativeSrc": "231:6:136", "nodeType": "YulIdentifier", "src": "231:6:136" }, "nativeSrc": "231:50:136", "nodeType": "YulFunctionCall", "src": "231:50:136" }, "nativeSrc": "228:70:136", "nodeType": "YulIf", "src": "228:70:136" }, { "nativeSrc": "307:15:136", "nodeType": "YulAssignment", "src": "307:15:136", "value": { "name": "value", "nativeSrc": "317:5:136", "nodeType": "YulIdentifier", "src": "317:5:136" }, "variableNames": [ { "name": "value0", "nativeSrc": "307:6:136", "nodeType": "YulIdentifier", "src": "307:6:136" } ] } ] }, "name": "abi_decode_tuple_t_contract$_IWitRandomness_$28351_fromMemory", "nativeSrc": "14:314:136", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nativeSrc": "85:9:136", "nodeType": "YulTypedName", "src": "85:9:136", "type": "" }, { "name": "dataEnd", "nativeSrc": "96:7:136", "nodeType": "YulTypedName", "src": "96:7:136", "type": "" } ], "returnVariables": [ { "name": "value0", "nativeSrc": "108:6:136", "nodeType": "YulTypedName", "src": "108:6:136", "type": "" } ], "src": "14:314:136" } ] }, "contents": "{\n { }\n function abi_decode_tuple_t_contract$_IWitRandomness_$28351_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n value0 := value\n }\n}", "id": 136, "language": "Yul", "name": "#utility.yul" } ], "deployedGeneratedSources": [ { "ast": { "nativeSrc": "0:2310:136", "nodeType": "YulBlock", "src": "0:2310:136", "statements": [ { "nativeSrc": "6:3:136", "nodeType": "YulBlock", "src": "6:3:136", "statements": [] }, { "body": { "nativeSrc": "84:110:136", "nodeType": "YulBlock", "src": "84:110:136", "statements": [ { "body": { "nativeSrc": "130:16:136", "nodeType": "YulBlock", "src": "130:16:136", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nativeSrc": "139:1:136", "nodeType": "YulLiteral", "src": "139:1:136", "type": "", "value": "0" }, { "kind": "number", "nativeSrc": "142:1:136", "nodeType": "YulLiteral", "src": "142:1:136", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nativeSrc": "132:6:136", "nodeType": "YulIdentifier", "src": "132:6:136" }, "nativeSrc": "132:12:136", "nodeType": "YulFunctionCall", "src": "132:12:136" }, "nativeSrc": "132:12:136", "nodeType": "YulExpressionStatement", "src": "132:12:136" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "dataEnd", "nativeSrc": "105:7:136", "nodeType": "YulIdentifier", "src": "105:7:136" }, { "name": "headStart", "nativeSrc": "114:9:136", "nodeType": "YulIdentifier", "src": "114:9:136" } ], "functionName": { "name": "sub", "nativeSrc": "101:3:136", "nodeType": "YulIdentifier", "src": "101:3:136" }, "nativeSrc": "101:23:136", "nodeType": "YulFunctionCall", "src": "101:23:136" }, { "kind": "number", "nativeSrc": "126:2:136", "nodeType": "YulLiteral", "src": "126:2:136", "type": "", "value": "32" } ], "functionName": { "name": "slt", "nativeSrc": "97:3:136", "nodeType": "YulIdentifier", "src": "97:3:136" }, "nativeSrc": "97:32:136", "nodeType": "YulFunctionCall", "src": "97:32:136" }, "nativeSrc": "94:52:136", "nodeType": "YulIf", "src": "94:52:136" }, { "nativeSrc": "155:33:136", "nodeType": "YulAssignment", "src": "155:33:136", "value": { "arguments": [ { "name": "headStart", "nativeSrc": "178:9:136", "nodeType": "YulIdentifier", "src": "178:9:136" } ], "functionName": { "name": "calldataload", "nativeSrc": "165:12:136", "nodeType": "YulIdentifier", "src": "165:12:136" }, "nativeSrc": "165:23:136", "nodeType": "YulFunctionCall", "src": "165:23:136" }, "variableNames": [ { "name": "value0", "nativeSrc": "155:6:136", "nodeType": "YulIdentifier", "src": "155:6:136" } ] } ] }, "name": "abi_decode_tuple_t_uint256", "nativeSrc": "14:180:136", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nativeSrc": "50:9:136", "nodeType": "YulTypedName", "src": "50:9:136", "type": "" }, { "name": "dataEnd", "nativeSrc": "61:7:136", "nodeType": "YulTypedName", "src": "61:7:136", "type": "" } ], "returnVariables": [ { "name": "value0", "nativeSrc": "73:6:136", "nodeType": "YulTypedName", "src": "73:6:136", "type": "" } ], "src": "14:180:136" }, { "body": { "nativeSrc": "324:102:136", "nodeType": "YulBlock", "src": "324:102:136", "statements": [ { "nativeSrc": "334:26:136", "nodeType": "YulAssignment", "src": "334:26:136", "value": { "arguments": [ { "name": "headStart", "nativeSrc": "346:9:136", "nodeType": "YulIdentifier", "src": "346:9:136" }, { "kind": "number", "nativeSrc": "357:2:136", "nodeType": "YulLiteral", "src": "357:2:136", "type": "", "value": "32" } ], "functionName": { "name": "add", "nativeSrc": "342:3:136", "nodeType": "YulIdentifier", "src": "342:3:136" }, "nativeSrc": "342:18:136", "nodeType": "YulFunctionCall", "src": "342:18:136" }, "variableNames": [ { "name": "tail", "nativeSrc": "334:4:136", "nodeType": "YulIdentifier", "src": "334:4:136" } ] }, { "expression": { "arguments": [ { "name": "headStart", "nativeSrc": "376:9:136", "nodeType": "YulIdentifier", "src": "376:9:136" }, { "arguments": [ { "name": "value0", "nativeSrc": "391:6:136", "nodeType": "YulIdentifier", "src": "391:6:136" }, { "arguments": [ { "arguments": [ { "kind": "number", "nativeSrc": "407:3:136", "nodeType": "YulLiteral", "src": "407:3:136", "type": "", "value": "160" }, { "kind": "number", "nativeSrc": "412:1:136", "nodeType": "YulLiteral", "src": "412:1:136", "type": "", "value": "1" } ], "functionName": { "name": "shl", "nativeSrc": "403:3:136", "nodeType": "YulIdentifier", "src": "403:3:136" }, "nativeSrc": "403:11:136", "nodeType": "YulFunctionCall", "src": "403:11:136" }, { "kind": "number", "nativeSrc": "416:1:136", "nodeType": "YulLiteral", "src": "416:1:136", "type": "", "value": "1" } ], "functionName": { "name": "sub", "nativeSrc": "399:3:136", "nodeType": "YulIdentifier", "src": "399:3:136" }, "nativeSrc": "399:19:136", "nodeType": "YulFunctionCall", "src": "399:19:136" } ], "functionName": { "name": "and", "nativeSrc": "387:3:136", "nodeType": "YulIdentifier", "src": "387:3:136" }, "nativeSrc": "387:32:136", "nodeType": "YulFunctionCall", "src": "387:32:136" } ], "functionName": { "name": "mstore", "nativeSrc": "369:6:136", "nodeType": "YulIdentifier", "src": "369:6:136" }, "nativeSrc": "369:51:136", "nodeType": "YulFunctionCall", "src": "369:51:136" }, "nativeSrc": "369:51:136", "nodeType": "YulExpressionStatement", "src": "369:51:136" } ] }, "name": "abi_encode_tuple_t_contract$_IWitRandomness_$28351__to_t_address__fromStack_reversed", "nativeSrc": "199:227:136", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nativeSrc": "293:9:136", "nodeType": "YulTypedName", "src": "293:9:136", "type": "" }, { "name": "value0", "nativeSrc": "304:6:136", "nodeType": "YulTypedName", "src": "304:6:136", "type": "" } ], "returnVariables": [ { "name": "tail", "nativeSrc": "315:4:136", "nodeType": "YulTypedName", "src": "315:4:136", "type": "" } ], "src": "199:227:136" }, { "body": { "nativeSrc": "532:76:136", "nodeType": "YulBlock", "src": "532:76:136", "statements": [ { "nativeSrc": "542:26:136", "nodeType": "YulAssignment", "src": "542:26:136", "value": { "arguments": [ { "name": "headStart", "nativeSrc": "554:9:136", "nodeType": "YulIdentifier", "src": "554:9:136" }, { "kind": "number", "nativeSrc": "565:2:136", "nodeType": "YulLiteral", "src": "565:2:136", "type": "", "value": "32" } ], "functionName": { "name": "add", "nativeSrc": "550:3:136", "nodeType": "YulIdentifier", "src": "550:3:136" }, "nativeSrc": "550:18:136", "nodeType": "YulFunctionCall", "src": "550:18:136" }, "variableNames": [ { "name": "tail", "nativeSrc": "542:4:136", "nodeType": "YulIdentifier", "src": "542:4:136" } ] }, { "expression": { "arguments": [ { "name": "headStart", "nativeSrc": "584:9:136", "nodeType": "YulIdentifier", "src": "584:9:136" }, { "name": "value0", "nativeSrc": "595:6:136", "nodeType": "YulIdentifier", "src": "595:6:136" } ], "functionName": { "name": "mstore", "nativeSrc": "577:6:136", "nodeType": "YulIdentifier", "src": "577:6:136" }, "nativeSrc": "577:25:136", "nodeType": "YulFunctionCall", "src": "577:25:136" }, "nativeSrc": "577:25:136", "nodeType": "YulExpressionStatement", "src": "577:25:136" } ] }, "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", "nativeSrc": "431:177:136", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nativeSrc": "501:9:136", "nodeType": "YulTypedName", "src": "501:9:136", "type": "" }, { "name": "value0", "nativeSrc": "512:6:136", "nodeType": "YulTypedName", "src": "512:6:136", "type": "" } ], "returnVariables": [ { "name": "tail", "nativeSrc": "523:4:136", "nodeType": "YulTypedName", "src": "523:4:136", "type": "" } ], "src": "431:177:136" }, { "body": { "nativeSrc": "813:447:136", "nodeType": "YulBlock", "src": "813:447:136", "statements": [ { "body": { "nativeSrc": "860:16:136", "nodeType": "YulBlock", "src": "860:16:136", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nativeSrc": "869:1:136", "nodeType": "YulLiteral", "src": "869:1:136", "type": "", "value": "0" }, { "kind": "number", "nativeSrc": "872:1:136", "nodeType": "YulLiteral", "src": "872:1:136", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nativeSrc": "862:6:136", "nodeType": "YulIdentifier", "src": "862:6:136" }, "nativeSrc": "862:12:136", "nodeType": "YulFunctionCall", "src": "862:12:136" }, "nativeSrc": "862:12:136", "nodeType": "YulExpressionStatement", "src": "862:12:136" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "dataEnd", "nativeSrc": "834:7:136", "nodeType": "YulIdentifier", "src": "834:7:136" }, { "name": "headStart", "nativeSrc": "843:9:136", "nodeType": "YulIdentifier", "src": "843:9:136" } ], "functionName": { "name": "sub", "nativeSrc": "830:3:136", "nodeType": "YulIdentifier", "src": "830:3:136" }, "nativeSrc": "830:23:136", "nodeType": "YulFunctionCall", "src": "830:23:136" }, { "kind": "number", "nativeSrc": "855:3:136", "nodeType": "YulLiteral", "src": "855:3:136", "type": "", "value": "128" } ], "functionName": { "name": "slt", "nativeSrc": "826:3:136", "nodeType": "YulIdentifier", "src": "826:3:136" }, "nativeSrc": "826:33:136", "nodeType": "YulFunctionCall", "src": "826:33:136" }, "nativeSrc": "823:53:136", "nodeType": "YulIf", "src": "823:53:136" }, { "nativeSrc": "885:14:136", "nodeType": "YulVariableDeclaration", "src": "885:14:136", "value": { "kind": "number", "nativeSrc": "898:1:136", "nodeType": "YulLiteral", "src": "898:1:136", "type": "", "value": "0" }, "variables": [ { "name": "value", "nativeSrc": "889:5:136", "nodeType": "YulTypedName", "src": "889:5:136", "type": "" } ] }, { "nativeSrc": "908:25:136", "nodeType": "YulAssignment", "src": "908:25:136", "value": { "arguments": [ { "name": "headStart", "nativeSrc": "923:9:136", "nodeType": "YulIdentifier", "src": "923:9:136" } ], "functionName": { "name": "mload", "nativeSrc": "917:5:136", "nodeType": "YulIdentifier", "src": "917:5:136" }, "nativeSrc": "917:16:136", "nodeType": "YulFunctionCall", "src": "917:16:136" }, "variableNames": [ { "name": "value", "nativeSrc": "908:5:136", "nodeType": "YulIdentifier", "src": "908:5:136" } ] }, { "nativeSrc": "942:15:136", "nodeType": "YulAssignment", "src": "942:15:136", "value": { "name": "value", "nativeSrc": "952:5:136", "nodeType": "YulIdentifier", "src": "952:5:136" }, "variableNames": [ { "name": "value0", "nativeSrc": "942:6:136", "nodeType": "YulIdentifier", "src": "942:6:136" } ] }, { "nativeSrc": "966:40:136", "nodeType": "YulVariableDeclaration", "src": "966:40:136", "value": { "arguments": [ { "arguments": [ { "name": "headStart", "nativeSrc": "991:9:136", "nodeType": "YulIdentifier", "src": "991:9:136" }, { "kind": "number", "nativeSrc": "1002:2:136", "nodeType": "YulLiteral", "src": "1002:2:136",