UNPKG

witnet-solidity-bridge

Version:

Witnet Solidity Bridge contracts for EVM-compatible chains

982 lines (981 loc) 484 kB
{ "contractName": "WitnetOracleDataLib", "abi": [ { "inputs": [ { "internalType": "contract WitnetRequestBytecodes", "name": "registry", "type": "WitnetRequestBytecodes" }, { "internalType": "uint256[]", "name": "queryIds", "type": "uint256[]" } ], "name": "extractWitnetDataRequests", "outputs": [ { "internalType": "bytes[]", "name": "bytecodes", "type": "bytes[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "enum WitnetV2.QueryStatus", "name": "self", "type": "WitnetV2.QueryStatus" } ], "name": "notInStatusRevertMessage", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "pure", "type": "function" } ], "metadata": "{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract WitnetRequestBytecodes\",\"name\":\"registry\",\"type\":\"WitnetRequestBytecodes\"},{\"internalType\":\"uint256[]\",\"name\":\"queryIds\",\"type\":\"uint256[]\"}],\"name\":\"extractWitnetDataRequests\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"bytecodes\",\"type\":\"bytes[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"enum WitnetV2.QueryStatus\",\"name\":\"self\",\"type\":\"WitnetV2.QueryStatus\"}],\"name\":\"notInStatusRevertMessage\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"The Witnet Foundation.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Witnet Request Board base data model library\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/data/WitnetOracleDataLib.sol\":\"WitnetOracleDataLib\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"project:/contracts/WitnetRequestBytecodes.sol\":{\"keccak256\":\"0x2a79d919dd79c0e3f857e6bee08368ad0b463188aced4a52de29270ed0f5f3d2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://290d6013ee9f75fedbbb7726527a637ea2ae7a5da0ad118ecc43b298846f0bb0\",\"dweb:/ipfs/QmU8AZtPyctrrvxdmH297p595ZMS6DgcD6djSFKNxAqYMs\"]},\"project:/contracts/data/WitnetOracleDataLib.sol\":{\"keccak256\":\"0x03c8b61605f0c5324047aa99c896fe189933e3e9a59b070b9b3ea6141f7db960\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cedd0416337f718a44bbbaf53efa99ba490f7de1e6ab45f6bdf29e03082aa29d\",\"dweb:/ipfs/Qmb8RUaZEFX5CvE1VTYpTrm1EhM62gAUcZ4dGt3w39gZBA\"]},\"project:/contracts/interfaces/IWitnetRequestBytecodes.sol\":{\"keccak256\":\"0x8da168bee9a78442216965976b1f29087f760f37dcb09337283242599ed1cbca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e120623262ee0559913bdae56c0a7921147dfe08ada7ea81061b14e2fc38c5e1\",\"dweb:/ipfs/Qmbxe8XRrH6ZjJHiR6YYzcZV1jnSWwo9iBYz5r6GJ6To5G\"]},\"project:/contracts/libs/Witnet.sol\":{\"keccak256\":\"0x65a87375dd79d63a83fb454b7199b6c999bd59c50b3b59d521c5c4d45a7d3cc3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ca865b681d810c2fc5c3672ea6343c3bdf6fd71764ab824d25994744dc85866b\",\"dweb:/ipfs/QmPGcP3xGTNZfsQ9GSKdujNLRVs8dWDdubyUko1rbQqJNv\"]},\"project:/contracts/libs/WitnetBuffer.sol\":{\"keccak256\":\"0xa14570492eb5a313ddbacae0185c850ec99c67211eb33989a5e21d31bf06a150\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e83c11edb49cab6a767c0b685825bc22ece0d3d2897e0d54fe1923df5cc76ba5\",\"dweb:/ipfs/QmdLDgCc3tnKbgRrXwfNzsg6uUDirNmjvBB8V3iMmnD69a\"]},\"project:/contracts/libs/WitnetCBOR.sol\":{\"keccak256\":\"0xb346547ff731163beea2c657c52675cdf7936691d566a76a045577cf9c34ade0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6d4b5b6424a033584b41f1204d635db98fda9ca9bd2a614c9d82539a3e4e6529\",\"dweb:/ipfs/QmW6Qy3wWpzHSECYaCPaf9LWGfPqWDKVoP2kPSNNQu7LMQ\"]},\"project:/contracts/libs/WitnetV2.sol\":{\"keccak256\":\"0xb276a6da373bfbe9cd942dd7e59979cda898215d1e36ab3df95a6d6cc6ff770f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc4890876b9bc64f501ccdd48408bb63724865cb2ce8d2057f6b318540adce7c\",\"dweb:/ipfs/QmPMHPdbCsKBavhiLcaDgQ9EjNSvwwzv8TKffotcCv1ctP\"]}},\"version\":1}", "bytecode": "0x610819610039600b82828239805160001a607314602c57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100405760003560e01c8063014728c414610045578063a7d10ea21461006e575b600080fd5b610058610053366004610476565b61008e565b604051610065919061055a565b60405180910390f35b61008161007c3660046105be565b6102c6565b60405161006591906105e6565b60608167ffffffffffffffff8111156100a9576100a96105f9565b6040519080825280602002602001820160405280156100dc57816020015b60608152602001906001900390816100c75790505b50905060005b828110156102be57600061010d85858481811061010157610101610625565b905060200201356103e2565b600381111561011e5761011e61060f565b146102b65760007ff595240b351bc8f951c2f53b26f4e78c32cb62122cf76c19b7fdda7d4968e1848186868581811061015957610159610625565b90506020020135815260200190815260200160002060000190506000801b81600201541461021d57600281015460405163f4f07e9960e01b81526001600160a01b0388169163f4f07e99916101b69190600386019060040161063b565b600060405180830381865afa1580156101d3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526101fb9190810190610666565b83838151811061020d5761020d610625565b60200260200101819052506102b4565b604051630a09948b60e41b81526001600160a01b0387169063a09948b0906102519060018501906003860190600401610713565b600060405180830381865afa15801561026e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526102969190810190610666565b8383815181106102a8576102a8610625565b60200260200101819052505b505b6001016100e2565b509392505050565b606060018260038111156102dc576102dc61060f565b0361031a57505060408051808201909152601a81527f7175657279206e6f7420696e20506f7374656420737461747573000000000000602082015290565b600282600381111561032e5761032e61060f565b0361036c57505060408051808201909152601c81527f7175657279206e6f7420696e205265706f727465642073746174757300000000602082015290565b60038260038111156103805761038061060f565b036103be57505060408051808201909152601d81527f7175657279206e6f7420696e2046696e616c697a656420737461747573000000602082015290565b5050604080518082019091526008815267189859081b5bdbd960c21b602082015290565b60008181527ff595240b351bc8f951c2f53b26f4e78c32cb62122cf76c19b7fdda7d4968e184602052604081206004810154600160e01b900463ffffffff1615610454576004810154600160a01b900467ffffffffffffffff16431061044b5750600392915050565b50600292915050565b80546001600160a01b03161561046d5750600192915050565b50600092915050565b60008060006040848603121561048b57600080fd5b83356001600160a01b03811681146104a257600080fd5b9250602084013567ffffffffffffffff808211156104bf57600080fd5b818601915086601f8301126104d357600080fd5b8135818111156104e257600080fd5b8760208260051b85010111156104f757600080fd5b6020830194508093505050509250925092565b60005b8381101561052557818101518382015260200161050d565b50506000910152565b6000815180845261054681602086016020860161050a565b601f01601f19169290920160200192915050565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b828110156105b157603f1988860301845261059f85835161052e565b94509285019290850190600101610583565b5092979650505050505050565b6000602082840312156105d057600080fd5b8135600481106105df57600080fd5b9392505050565b6020815260006105df602083018461052e565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b828152606081016105df60208301845460ff8116825260081c67ffffffffffffffff16602090910152565b60006020828403121561067857600080fd5b815167ffffffffffffffff8082111561069057600080fd5b818401915084601f8301126106a457600080fd5b8151818111156106b6576106b66105f9565b604051601f8201601f19908116603f011681019083821181831017156106de576106de6105f9565b816040528281528760208487010111156106f757600080fd5b61070883602083016020880161050a565b979650505050505050565b6060815260008084548160018260011c9150600183168061073557607f831692505b6020808410820361075457634e487b7160e01b86526022600452602486fd5b60608801849052608088018280156107735760018114610789576107b4565b60ff198716825285151560051b820197506107b4565b60008c81526020902060005b878110156107ae57815484820152908601908401610795565b83019850505b50505050505050809150506105df60208301845460ff8116825260081c67ffffffffffffffff1660209091015256fea2646970667358221220cc5cd915eb701df0d3a352731de3a1efcbbd3138a910b34750ef51161758e5ab64736f6c63430008190033", "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100405760003560e01c8063014728c414610045578063a7d10ea21461006e575b600080fd5b610058610053366004610476565b61008e565b604051610065919061055a565b60405180910390f35b61008161007c3660046105be565b6102c6565b60405161006591906105e6565b60608167ffffffffffffffff8111156100a9576100a96105f9565b6040519080825280602002602001820160405280156100dc57816020015b60608152602001906001900390816100c75790505b50905060005b828110156102be57600061010d85858481811061010157610101610625565b905060200201356103e2565b600381111561011e5761011e61060f565b146102b65760007ff595240b351bc8f951c2f53b26f4e78c32cb62122cf76c19b7fdda7d4968e1848186868581811061015957610159610625565b90506020020135815260200190815260200160002060000190506000801b81600201541461021d57600281015460405163f4f07e9960e01b81526001600160a01b0388169163f4f07e99916101b69190600386019060040161063b565b600060405180830381865afa1580156101d3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526101fb9190810190610666565b83838151811061020d5761020d610625565b60200260200101819052506102b4565b604051630a09948b60e41b81526001600160a01b0387169063a09948b0906102519060018501906003860190600401610713565b600060405180830381865afa15801561026e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526102969190810190610666565b8383815181106102a8576102a8610625565b60200260200101819052505b505b6001016100e2565b509392505050565b606060018260038111156102dc576102dc61060f565b0361031a57505060408051808201909152601a81527f7175657279206e6f7420696e20506f7374656420737461747573000000000000602082015290565b600282600381111561032e5761032e61060f565b0361036c57505060408051808201909152601c81527f7175657279206e6f7420696e205265706f727465642073746174757300000000602082015290565b60038260038111156103805761038061060f565b036103be57505060408051808201909152601d81527f7175657279206e6f7420696e2046696e616c697a656420737461747573000000602082015290565b5050604080518082019091526008815267189859081b5bdbd960c21b602082015290565b60008181527ff595240b351bc8f951c2f53b26f4e78c32cb62122cf76c19b7fdda7d4968e184602052604081206004810154600160e01b900463ffffffff1615610454576004810154600160a01b900467ffffffffffffffff16431061044b5750600392915050565b50600292915050565b80546001600160a01b03161561046d5750600192915050565b50600092915050565b60008060006040848603121561048b57600080fd5b83356001600160a01b03811681146104a257600080fd5b9250602084013567ffffffffffffffff808211156104bf57600080fd5b818601915086601f8301126104d357600080fd5b8135818111156104e257600080fd5b8760208260051b85010111156104f757600080fd5b6020830194508093505050509250925092565b60005b8381101561052557818101518382015260200161050d565b50506000910152565b6000815180845261054681602086016020860161050a565b601f01601f19169290920160200192915050565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b828110156105b157603f1988860301845261059f85835161052e565b94509285019290850190600101610583565b5092979650505050505050565b6000602082840312156105d057600080fd5b8135600481106105df57600080fd5b9392505050565b6020815260006105df602083018461052e565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b828152606081016105df60208301845460ff8116825260081c67ffffffffffffffff16602090910152565b60006020828403121561067857600080fd5b815167ffffffffffffffff8082111561069057600080fd5b818401915084601f8301126106a457600080fd5b8151818111156106b6576106b66105f9565b604051601f8201601f19908116603f011681019083821181831017156106de576106de6105f9565b816040528281528760208487010111156106f757600080fd5b61070883602083016020880161050a565b979650505050505050565b6060815260008084548160018260011c9150600183168061073557607f831692505b6020808410820361075457634e487b7160e01b86526022600452602486fd5b60608801849052608088018280156107735760018114610789576107b4565b60ff198716825285151560051b820197506107b4565b60008c81526020902060005b878110156107ae57815484820152908601908401610795565b83019850505b50505050505050809150506105df60208301845460ff8116825260081c67ffffffffffffffff1660209091015256fea2646970667358221220cc5cd915eb701df0d3a352731de3a1efcbbd3138a910b34750ef51161758e5ab64736f6c63430008190033", "immutableReferences": {}, "generatedSources": [], "deployedGeneratedSources": [ { "ast": { "nativeSrc": "0:6222:84", "nodeType": "YulBlock", "src": "0:6222:84", "statements": [ { "nativeSrc": "6:3:84", "nodeType": "YulBlock", "src": "6:3:84", "statements": [] }, { "body": { "nativeSrc": "166:667:84", "nodeType": "YulBlock", "src": "166:667:84", "statements": [ { "body": { "nativeSrc": "212:16:84", "nodeType": "YulBlock", "src": "212:16:84", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nativeSrc": "221:1:84", "nodeType": "YulLiteral", "src": "221:1:84", "type": "", "value": "0" }, { "kind": "number", "nativeSrc": "224:1:84", "nodeType": "YulLiteral", "src": "224:1:84", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nativeSrc": "214:6:84", "nodeType": "YulIdentifier", "src": "214:6:84" }, "nativeSrc": "214:12:84", "nodeType": "YulFunctionCall", "src": "214:12:84" }, "nativeSrc": "214:12:84", "nodeType": "YulExpressionStatement", "src": "214:12:84" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "dataEnd", "nativeSrc": "187:7:84", "nodeType": "YulIdentifier", "src": "187:7:84" }, { "name": "headStart", "nativeSrc": "196:9:84", "nodeType": "YulIdentifier", "src": "196:9:84" } ], "functionName": { "name": "sub", "nativeSrc": "183:3:84", "nodeType": "YulIdentifier", "src": "183:3:84" }, "nativeSrc": "183:23:84", "nodeType": "YulFunctionCall", "src": "183:23:84" }, { "kind": "number", "nativeSrc": "208:2:84", "nodeType": "YulLiteral", "src": "208:2:84", "type": "", "value": "64" } ], "functionName": { "name": "slt", "nativeSrc": "179:3:84", "nodeType": "YulIdentifier", "src": "179:3:84" }, "nativeSrc": "179:32:84", "nodeType": "YulFunctionCall", "src": "179:32:84" }, "nativeSrc": "176:52:84", "nodeType": "YulIf", "src": "176:52:84" }, { "nativeSrc": "237:36:84", "nodeType": "YulVariableDeclaration", "src": "237:36:84", "value": { "arguments": [ { "name": "headStart", "nativeSrc": "263:9:84", "nodeType": "YulIdentifier", "src": "263:9:84" } ], "functionName": { "name": "calldataload", "nativeSrc": "250:12:84", "nodeType": "YulIdentifier", "src": "250:12:84" }, "nativeSrc": "250:23:84", "nodeType": "YulFunctionCall", "src": "250:23:84" }, "variables": [ { "name": "value", "nativeSrc": "241:5:84", "nodeType": "YulTypedName", "src": "241:5:84", "type": "" } ] }, { "body": { "nativeSrc": "336:16:84", "nodeType": "YulBlock", "src": "336:16:84", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nativeSrc": "345:1:84", "nodeType": "YulLiteral", "src": "345:1:84", "type": "", "value": "0" }, { "kind": "number", "nativeSrc": "348:1:84", "nodeType": "YulLiteral", "src": "348:1:84", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nativeSrc": "338:6:84", "nodeType": "YulIdentifier", "src": "338:6:84" }, "nativeSrc": "338:12:84", "nodeType": "YulFunctionCall", "src": "338:12:84" }, "nativeSrc": "338:12:84", "nodeType": "YulExpressionStatement", "src": "338:12:84" } ] }, "condition": { "arguments": [ { "arguments": [ { "name": "value", "nativeSrc": "295:5:84", "nodeType": "YulIdentifier", "src": "295:5:84" }, { "arguments": [ { "name": "value", "nativeSrc": "306:5:84", "nodeType": "YulIdentifier", "src": "306:5:84" }, { "arguments": [ { "arguments": [ { "kind": "number", "nativeSrc": "321:3:84", "nodeType": "YulLiteral", "src": "321:3:84", "type": "", "value": "160" }, { "kind": "number", "nativeSrc": "326:1:84", "nodeType": "YulLiteral", "src": "326:1:84", "type": "", "value": "1" } ], "functionName": { "name": "shl", "nativeSrc": "317:3:84", "nodeType": "YulIdentifier", "src": "317:3:84" }, "nativeSrc": "317:11:84", "nodeType": "YulFunctionCall", "src": "317:11:84" }, { "kind": "number", "nativeSrc": "330:1:84", "nodeType": "YulLiteral", "src": "330:1:84", "type": "", "value": "1" } ], "functionName": { "name": "sub", "nativeSrc": "313:3:84", "nodeType": "YulIdentifier", "src": "313:3:84" }, "nativeSrc": "313:19:84", "nodeType": "YulFunctionCall", "src": "313:19:84" } ], "functionName": { "name": "and", "nativeSrc": "302:3:84", "nodeType": "YulIdentifier", "src": "302:3:84" }, "nativeSrc": "302:31:84", "nodeType": "YulFunctionCall", "src": "302:31:84" } ], "functionName": { "name": "eq", "nativeSrc": "292:2:84", "nodeType": "YulIdentifier", "src": "292:2:84" }, "nativeSrc": "292:42:84", "nodeType": "YulFunctionCall", "src": "292:42:84" } ], "functionName": { "name": "iszero", "nativeSrc": "285:6:84", "nodeType": "YulIdentifier", "src": "285:6:84" }, "nativeSrc": "285:50:84", "nodeType": "YulFunctionCall", "src": "285:50:84" }, "nativeSrc": "282:70:84", "nodeType": "YulIf", "src": "282:70:84" }, { "nativeSrc": "361:15:84", "nodeType": "YulAssignment", "src": "361:15:84", "value": { "name": "value", "nativeSrc": "371:5:84", "nodeType": "YulIdentifier", "src": "371:5:84" }, "variableNames": [ { "name": "value0", "nativeSrc": "361:6:84", "nodeType": "YulIdentifier", "src": "361:6:84" } ] }, { "nativeSrc": "385:46:84", "nodeType": "YulVariableDeclaration", "src": "385:46:84", "value": { "arguments": [ { "arguments": [ { "name": "headStart", "nativeSrc": "416:9:84", "nodeType": "YulIdentifier", "src": "416:9:84" }, { "kind": "number", "nativeSrc": "427:2:84", "nodeType": "YulLiteral", "src": "427:2:84", "type": "", "value": "32" } ], "functionName": { "name": "add", "nativeSrc": "412:3:84", "nodeType": "YulIdentifier", "src": "412:3:84" }, "nativeSrc": "412:18:84", "nodeType": "YulFunctionCall", "src": "412:18:84" } ], "functionName": { "name": "calldataload", "nativeSrc": "399:12:84", "nodeType": "YulIdentifier", "src": "399:12:84" }, "nativeSrc": "399:32:84", "nodeType": "YulFunctionCall", "src": "399:32:84" }, "variables": [ { "name": "offset", "nativeSrc": "389:6:84", "nodeType": "YulTypedName", "src": "389:6:84", "type": "" } ] }, { "nativeSrc": "440:28:84", "nodeType": "YulVariableDeclaration", "src": "440:28:84", "value": { "kind": "number", "nativeSrc": "450:18:84", "nodeType": "YulLiteral", "src": "450:18:84", "type": "", "value": "0xffffffffffffffff" }, "variables": [ { "name": "_1", "nativeSrc": "444:2:84", "nodeType": "YulTypedName", "src": "444:2:84", "type": "" } ] }, { "body": { "nativeSrc": "495:16:84", "nodeType": "YulBlock", "src": "495:16:84", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nativeSrc": "504:1:84", "nodeType": "YulLiteral", "src": "504:1:84", "type": "", "value": "0" }, { "kind": "number", "nativeSrc": "507:1:84", "nodeType": "YulLiteral", "src": "507:1:84", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nativeSrc": "497:6:84", "nodeType": "YulIdentifier", "src": "497:6:84" }, "nativeSrc": "497:12:84", "nodeType": "YulFunctionCall", "src": "497:12:84" }, "nativeSrc": "497:12:84", "nodeType": "YulExpressionStatement", "src": "497:12:84" } ] }, "condition": { "arguments": [ { "name": "offset", "nativeSrc": "483:6:84", "nodeType": "YulIdentifier", "src": "483:6:84" }, { "name": "_1", "nativeSrc": "491:2:84", "nodeType": "YulIdentifier", "src": "491:2:84" } ], "functionName": { "name": "gt", "nativeSrc": "480:2:84", "nodeType": "YulIdentifier", "src": "480:2:84" }, "nativeSrc": "480:14:84", "nodeType": "YulFunctionCall", "src": "480:14:84" }, "nativeSrc": "477:34:84", "nodeType": "YulIf", "src": "477:34:84" }, { "nativeSrc": "520:32:84", "nodeType": "YulVariableDeclaration", "src": "520:32:84", "value": { "arguments": [ { "name": "headStart", "nativeSrc": "534:9:84", "nodeType": "YulIdentifier", "src": "534:9:84" }, { "name": "offset", "nativeSrc": "545:6:84", "nodeType": "YulIdentifier", "src": "545:6:84" } ], "functionName": { "name": "add", "nativeSrc": "530:3:84", "nodeType": "YulIdentifier", "src": "530:3:84" }, "nativeSrc": "530:22:84", "nodeType": "YulFunctionCall", "src": "530:22:84" }, "variables": [ { "name": "_2", "nativeSrc": "524:2:84", "nodeType": "YulTypedName", "src": "524:2:84", "type": "" } ] }, { "body": { "nativeSrc": "600:16:84", "nodeType": "YulBlock", "src": "600:16:84", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nativeSrc": "609:1:84", "nodeType": "YulLiteral", "src": "609:1:84", "type": "", "value": "0" }, { "kind": "number", "nativeSrc": "612:1:84", "nodeType": "YulLiteral", "src": "612:1:84", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nativeSrc": "602:6:84", "nodeType": "YulIdentifier", "src": "602:6:84" }, "nativeSrc": "602:12:84", "nodeType": "YulFunctionCall", "src": "602:12:84" }, "nativeSrc": "602:12:84", "nodeType": "YulExpressionStatement", "src": "602:12:84" } ] }, "condition": { "arguments": [ { "arguments": [ { "arguments": [ { "name": "_2", "nativeSrc": "579:2:84", "nodeType": "YulIdentifier", "src": "579:2:84" }, { "kind": "number", "nativeSrc": "583:4:84", "nodeType": "YulLiteral", "src": "583:4:84", "type": "", "value": "0x1f" } ], "functionName": { "name": "add", "nativeSrc": "575:3:84", "nodeType": "YulIdentifier", "src": "575:3:84" }, "nativeSrc": "575:13:84", "nodeType": "YulFunctionCall", "src": "575:13:84" }, { "name": "dataEnd", "nativeSrc": "590:7:84", "nodeType": "YulIdentifier", "src": "590:7:84" } ], "functionName": { "name": "slt", "nativeSrc": "571:3:84", "nodeType": "YulIdentifier", "src": "571:3:84" }, "nativeSrc": "571:27:84", "nodeType": "YulFunctionCall", "src": "571:27:84" } ], "functionName": { "name": "iszero", "nativeSrc": "564:6:84", "nodeType": "YulIdentifier", "src": "564:6:84" }, "nativeSrc": "564:35:84", "nodeType": "YulFunctionCall", "src": "564:35:84" }, "nativeSrc": "561:55:84", "nodeType": "YulIf", "src": "561:55:84" }, { "nativeSrc": "625:30:84", "nodeType": "YulVariableDeclaration", "src": "625:30:84", "value": { "arguments": [ { "name": "_2", "nativeSrc": "652:2:84", "nodeType": "YulIdentifier", "src": "652:2:84" } ], "functionName": { "name": "calldataload", "nativeSrc": "639:12:84", "nodeType": "YulIdentifier", "src": "639:12:84" }, "nativeSrc": "639:16:84", "nodeType": "YulFunctionCall", "src": "639:16:84" }, "variables": [ { "name": "length", "nativeSrc": "629:6:84", "nodeType": "YulTypedName", "src": "629:6:84", "type": "" } ] }, { "body": { "nativeSrc": "682:16:84", "nodeType": "YulBlock", "src": "682:16:84", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nativeSrc": "691:1:84", "nodeType": "YulLiteral", "src": "691:1:84", "type": "", "value": "0" }, { "kind": "number", "nativeSrc": "694:1:84", "nodeType": "YulLiteral", "src": "694:1:84", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nativeSrc": "684:6:84", "nodeType": "YulIdentifier", "src": "684:6:84" }, "nativeSrc": "684:12:84", "nodeType": "YulFunctionCall", "src": "684:12:84" }, "nativeSrc": "684:12:84", "nodeType": "YulExpressionStatement", "src": "684:12:84" } ] }, "condition": { "arguments": [ { "name": "length", "nativeSrc": "670:6:84", "nodeType": "YulIdentifier", "src": "670:6:84" }, { "name": "_1", "nativeSrc": "678:2:84", "nodeType": "YulIdentifier", "src": "678:2:84" } ], "functionName": { "name": "gt", "nativeSrc": "667:2:84", "nodeType": "YulIdentifier", "src": "667:2:84" }, "nativeSrc": "667:14:84", "nodeType": "YulFunctionCall", "src": "667:14:84" }, "nativeSrc": "664:34:84", "nodeType": "YulIf", "src": "664:34:84" }, { "body": { "nativeSrc": "756:16:84", "nodeType": "YulBlock", "src": "756:16:84", "statements": [ { "expression": { "arguments": [ { "kind": "number", "nativeSrc": "765:1:84", "nodeType": "YulLiteral", "src": "765:1:84", "type": "", "value": "0" }, { "kind": "number", "nativeSrc": "768:1:84", "nodeType": "YulLiteral", "src": "768:1:84", "type": "", "value": "0" } ], "functionName": { "name": "revert", "nativeSrc": "758:6:84", "nodeType": "YulIdentifier", "src": "758:6:84" }, "nativeSrc": "758:12:84", "nodeType": "YulFunctionCall", "src": "758:12:84" }, "nativeSrc": "758:12:84", "nodeType": "YulExpressionStatement", "src": "758:12:84" } ] }, "condition": { "arguments": [ { "arguments": [ { "arguments": [ { "name": "_2", "nativeSrc": "721:2:84", "nodeType": "YulIdentifier", "src": "721:2:84" }, { "arguments": [ { "kind": "number", "nativeSrc": "729:1:84", "nodeType": "YulLiteral", "src": "729:1:84", "type": "", "value": "5" }, { "name": "length", "nativeSrc": "732:6:84", "nodeType": "YulIdentifier", "src": "732:6:84" } ], "functionName": { "name": "shl", "nativeSrc": "725:3:84", "nodeType": "YulIdentifier", "src": "725:3:84" }, "nativeSrc": "725:14:84", "nodeType": "YulFunctionCall", "src": "725:14:84" } ], "functionName": { "name": "add", "nativeSrc": "717:3:84", "nodeType": "YulIdentifier", "src": "717:3:84" }, "nativeSrc": "717:23:84", "nodeType": "YulFunctionCall", "src": "717:23:84" }, { "kind": "number", "nativeSrc": "742:2:84", "nodeType": "YulLiteral", "src": "742:2:84", "type": "", "value": "32" } ], "functionName": { "name": "add", "nativeSrc": "713:3:84", "nodeType": "YulIdentifier", "src": "713:3:84" }, "nativeSrc": "713:32:84", "nodeType": "YulFunctionCall", "src": "713:32:84" }, { "name": "dataEnd", "nativeSrc": "747:7:84", "nodeType": "YulIdentifier", "src": "747:7:84" } ], "functionName": { "name": "gt", "nativeSrc": "710:2:84", "nodeType": "YulIdentifier", "src": "710:2:84" }, "nativeSrc": "710:45:84", "nodeType": "YulFunctionCall", "src": "710:45:84" }, "nativeSrc": "707:65:84", "nodeType": "YulIf", "src": "707:65:84" }, { "nativeSrc": "781:21:84", "nodeType": "YulAssignment", "src": "781:21:84", "value": { "arguments": [ { "name": "_2", "nativeSrc": "795:2:84", "nodeType": "YulIdentifier", "src": "795:2:84" }, { "kind": "number", "nativeSrc": "799:2:84", "nodeType": "YulLiteral", "src": "799:2:84", "type": "", "value": "32" } ], "functionName": { "name": "add", "nativeSrc": "791:3:84", "nodeType": "YulIdentifier", "src": "791:3:84" }, "nativeSrc": "791:11:84", "nodeType": "YulFunctionCall", "src": "791:11:84" }, "variableNames": [ { "name": "value1", "nativeSrc": "781:6:84", "nodeType": "YulIdentifier", "src": "781:6:84" } ] }, { "nativeSrc": "811:16:84", "nodeType": "YulAssignment", "src": "811:16:84", "value": { "name": "length", "nativeSrc": "821:6:84", "nodeType": "YulIdentifier", "src": "821:6:84" }, "variableNames": [ { "name": "value2", "nativeSrc": "811:6:84", "nodeType": "YulIdentifier", "src": "811:6:84" } ] } ] }, "name": "abi_decode_tuple_t_contract$_WitnetRequestBytecodes_$849t_array$_t_uint256_$dyn_calldata_ptr", "nativeSrc": "14:819:84", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nativeSrc": "116:9:84", "nodeType": "YulTypedName", "src": "116:9:84", "type": "" }, { "name": "dataEnd", "nativeSrc": "127:7:84", "nodeType": "YulTypedName", "src": "127:7:84", "type": "" } ], "returnVariables": [ { "name": "value0", "nativeSrc": "139:6:84", "nodeType": "YulTypedName", "src": "139:6:84", "type": "" }, { "name": "value1", "nativeSrc": "147:6:84", "nodeType": "YulTypedName",