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