witnet-solidity-bridge
Version:
Witnet Solidity Bridge contracts for EVM-compatible chains
1,124 lines (1,123 loc) • 139 kB
JSON
{
"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",