@alpsfinance/core
Version:
This is the official Alps Finance smart contract repository.
1,155 lines (1,154 loc) • 343 kB
JSON
{
"contractName": "PriceConverter",
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "_base",
"type": "address"
},
{
"internalType": "address",
"name": "_quote",
"type": "address"
},
{
"internalType": "uint8",
"name": "_decimals",
"type": "uint8"
}
],
"name": "getDerivedPrice",
"outputs": [
{
"internalType": "int256",
"name": "",
"type": "int256"
}
],
"stateMutability": "view",
"type": "function"
}
],
"metadata": "{\"compiler\":{\"version\":\"0.8.11+commit.d7f03943\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_base\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_quote\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"_decimals\",\"type\":\"uint8\"}],\"name\":\"getDerivedPrice\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/libraries/PriceConverter.sol\":\"PriceConverter\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol\":{\"keccak256\":\"0xf2b6c9adb3552254df1445b73563cf014434ff5e78663e9b961b6c059506ceb5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c1f59e0c7334c22fb54288728fc32546bdc9c8133d6db0d60223e3c28f52120\",\"dweb:/ipfs/QmeuxawUVBhMWQJXaEhhnubCTc4Jwn5wYK8gbhq6NjrpfG\"]},\"project:/contracts/libraries/PriceConverter.sol\":{\"keccak256\":\"0x1c7379e2f032a302a999b9f49bd5b0d79bc5d260aeae8d8e173dfdcae2bebbb8\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://c8968f30c2b173c3fa28a669fe95d09721ffad661b7632d36de73a286e06d124\",\"dweb:/ipfs/QmXCh1gfzimGC3WLPLyUSsdy7UWGNKt6Fsc7f45sRyYRJe\"]}},\"version\":1}",
"bytecode": "0x61063a61003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c8063974366551461003a575b600080fd5b61004d61004836600461034a565b61005f565b60405190815260200160405180910390f35b600060ff8216158015906100775750601260ff831611155b6100bb5760405162461bcd60e51b8152602060048201526011602482015270496e76616c6964205f646563696d616c7360781b604482015260640160405180910390fd5b60006100cb60ff8416600a61048d565b90506000856001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa15801561010d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061013191906104b3565b5050509150506000866001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610177573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061019b9190610503565b90506101a88282876102ab565b91506000866001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa1580156101ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061020e91906104b3565b5050509150506000876001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610254573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102789190610503565b90506102858282896102ab565b9150816102928686610520565b61029c91906105a5565b955050505050505b9392505050565b60008160ff168360ff1610156102e4576102c583836105e1565b6102d39060ff16600a61048d565b6102dd9085610520565b90506102a4565b8160ff168360ff161115610314576102fc82846105e1565b61030a9060ff16600a61048d565b6102dd90856105a5565b509192915050565b80356001600160a01b038116811461033357600080fd5b919050565b60ff8116811461034757600080fd5b50565b60008060006060848603121561035f57600080fd5b6103688461031c565b92506103766020850161031c565b9150604084013561038681610338565b809150509250925092565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156103e25781600019048211156103c8576103c8610391565b808516156103d557918102915b93841c93908002906103ac565b509250929050565b6000826103f957506001610487565b8161040657506000610487565b816001811461041c576002811461042657610442565b6001915050610487565b60ff84111561043757610437610391565b50506001821b610487565b5060208310610133831016604e8410600b8410161715610465575081810a610487565b61046f83836103a7565b806000190482111561048357610483610391565b0290505b92915050565b60006102a483836103ea565b805169ffffffffffffffffffff8116811461033357600080fd5b600080600080600060a086880312156104cb57600080fd5b6104d486610499565b94506020860151935060408601519250606086015191506104f760808701610499565b90509295509295909350565b60006020828403121561051557600080fd5b81516102a481610338565b60006001600160ff1b038184138284138082168684048611161561054657610546610391565b600160ff1b600087128281168783058912161561056557610565610391565b6000871292508782058712848416161561058157610581610391565b8785058712818416161561059757610597610391565b505050929093029392505050565b6000826105c257634e487b7160e01b600052601260045260246000fd5b600160ff1b8214600019841416156105dc576105dc610391565b500590565b600060ff821660ff8416808210156105fb576105fb610391565b9003939250505056fea2646970667358221220dcc34f245f5fa12a286d43e871d260b4db7d2416d656d5cf035e02c7bd9eb7c964736f6c634300080b0033",
"deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c8063974366551461003a575b600080fd5b61004d61004836600461034a565b61005f565b60405190815260200160405180910390f35b600060ff8216158015906100775750601260ff831611155b6100bb5760405162461bcd60e51b8152602060048201526011602482015270496e76616c6964205f646563696d616c7360781b604482015260640160405180910390fd5b60006100cb60ff8416600a61048d565b90506000856001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa15801561010d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061013191906104b3565b5050509150506000866001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610177573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061019b9190610503565b90506101a88282876102ab565b91506000866001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa1580156101ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061020e91906104b3565b5050509150506000876001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610254573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102789190610503565b90506102858282896102ab565b9150816102928686610520565b61029c91906105a5565b955050505050505b9392505050565b60008160ff168360ff1610156102e4576102c583836105e1565b6102d39060ff16600a61048d565b6102dd9085610520565b90506102a4565b8160ff168360ff161115610314576102fc82846105e1565b61030a9060ff16600a61048d565b6102dd90856105a5565b509192915050565b80356001600160a01b038116811461033357600080fd5b919050565b60ff8116811461034757600080fd5b50565b60008060006060848603121561035f57600080fd5b6103688461031c565b92506103766020850161031c565b9150604084013561038681610338565b809150509250925092565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156103e25781600019048211156103c8576103c8610391565b808516156103d557918102915b93841c93908002906103ac565b509250929050565b6000826103f957506001610487565b8161040657506000610487565b816001811461041c576002811461042657610442565b6001915050610487565b60ff84111561043757610437610391565b50506001821b610487565b5060208310610133831016604e8410600b8410161715610465575081810a610487565b61046f83836103a7565b806000190482111561048357610483610391565b0290505b92915050565b60006102a483836103ea565b805169ffffffffffffffffffff8116811461033357600080fd5b600080600080600060a086880312156104cb57600080fd5b6104d486610499565b94506020860151935060408601519250606086015191506104f760808701610499565b90509295509295909350565b60006020828403121561051557600080fd5b81516102a481610338565b60006001600160ff1b038184138284138082168684048611161561054657610546610391565b600160ff1b600087128281168783058912161561056557610565610391565b6000871292508782058712848416161561058157610581610391565b8785058712818416161561059757610597610391565b505050929093029392505050565b6000826105c257634e487b7160e01b600052601260045260246000fd5b600160ff1b8214600019841416156105dc576105dc610391565b500590565b600060ff821660ff8416808210156105fb576105fb610391565b9003939250505056fea2646970667358221220dcc34f245f5fa12a286d43e871d260b4db7d2416d656d5cf035e02c7bd9eb7c964736f6c634300080b0033",
"immutableReferences": {},
"generatedSources": [],
"deployedGeneratedSources": [
{
"ast": {
"nodeType": "YulBlock",
"src": "0:4711:56",
"statements": [
{
"nodeType": "YulBlock",
"src": "6:3:56",
"statements": []
},
{
"body": {
"nodeType": "YulBlock",
"src": "63:124:56",
"statements": [
{
"nodeType": "YulAssignment",
"src": "73:29:56",
"value": {
"arguments": [
{
"name": "offset",
"nodeType": "YulIdentifier",
"src": "95:6:56"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "82:12:56"
},
"nodeType": "YulFunctionCall",
"src": "82:20:56"
},
"variableNames": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "73:5:56"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "165:16:56",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "174:1:56",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "177:1:56",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "167:6:56"
},
"nodeType": "YulFunctionCall",
"src": "167:12:56"
},
"nodeType": "YulExpressionStatement",
"src": "167:12:56"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "124:5:56"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "135:5:56"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "150:3:56",
"type": "",
"value": "160"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "155:1:56",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "146:3:56"
},
"nodeType": "YulFunctionCall",
"src": "146:11:56"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "159:1:56",
"type": "",
"value": "1"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "142:3:56"
},
"nodeType": "YulFunctionCall",
"src": "142:19:56"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "131:3:56"
},
"nodeType": "YulFunctionCall",
"src": "131:31:56"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "121:2:56"
},
"nodeType": "YulFunctionCall",
"src": "121:42:56"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "114:6:56"
},
"nodeType": "YulFunctionCall",
"src": "114:50:56"
},
"nodeType": "YulIf",
"src": "111:70:56"
}
]
},
"name": "abi_decode_address",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "offset",
"nodeType": "YulTypedName",
"src": "42:6:56",
"type": ""
}
],
"returnVariables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "53:5:56",
"type": ""
}
],
"src": "14:173:56"
},
{
"body": {
"nodeType": "YulBlock",
"src": "235:71:56",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "284:16:56",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "293:1:56",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "296:1:56",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "286:6:56"
},
"nodeType": "YulFunctionCall",
"src": "286:12:56"
},
"nodeType": "YulExpressionStatement",
"src": "286:12:56"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "258:5:56"
},
{
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "269:5:56"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "276:4:56",
"type": "",
"value": "0xff"
}
],
"functionName": {
"name": "and",
"nodeType": "YulIdentifier",
"src": "265:3:56"
},
"nodeType": "YulFunctionCall",
"src": "265:16:56"
}
],
"functionName": {
"name": "eq",
"nodeType": "YulIdentifier",
"src": "255:2:56"
},
"nodeType": "YulFunctionCall",
"src": "255:27:56"
}
],
"functionName": {
"name": "iszero",
"nodeType": "YulIdentifier",
"src": "248:6:56"
},
"nodeType": "YulFunctionCall",
"src": "248:35:56"
},
"nodeType": "YulIf",
"src": "245:55:56"
}
]
},
"name": "validator_revert_uint8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "224:5:56",
"type": ""
}
],
"src": "192:114:56"
},
{
"body": {
"nodeType": "YulBlock",
"src": "413:289:56",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "459:16:56",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "468:1:56",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "471:1:56",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "461:6:56"
},
"nodeType": "YulFunctionCall",
"src": "461:12:56"
},
"nodeType": "YulExpressionStatement",
"src": "461:12:56"
}
]
},
"condition": {
"arguments": [
{
"arguments": [
{
"name": "dataEnd",
"nodeType": "YulIdentifier",
"src": "434:7:56"
},
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "443:9:56"
}
],
"functionName": {
"name": "sub",
"nodeType": "YulIdentifier",
"src": "430:3:56"
},
"nodeType": "YulFunctionCall",
"src": "430:23:56"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "455:2:56",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "slt",
"nodeType": "YulIdentifier",
"src": "426:3:56"
},
"nodeType": "YulFunctionCall",
"src": "426:32:56"
},
"nodeType": "YulIf",
"src": "423:52:56"
},
{
"nodeType": "YulAssignment",
"src": "484:39:56",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "513:9:56"
}
],
"functionName": {
"name": "abi_decode_address",
"nodeType": "YulIdentifier",
"src": "494:18:56"
},
"nodeType": "YulFunctionCall",
"src": "494:29:56"
},
"variableNames": [
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "484:6:56"
}
]
},
{
"nodeType": "YulAssignment",
"src": "532:48:56",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "565:9:56"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "576:2:56",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "561:3:56"
},
"nodeType": "YulFunctionCall",
"src": "561:18:56"
}
],
"functionName": {
"name": "abi_decode_address",
"nodeType": "YulIdentifier",
"src": "542:18:56"
},
"nodeType": "YulFunctionCall",
"src": "542:38:56"
},
"variableNames": [
{
"name": "value1",
"nodeType": "YulIdentifier",
"src": "532:6:56"
}
]
},
{
"nodeType": "YulVariableDeclaration",
"src": "589:45:56",
"value": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "619:9:56"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "630:2:56",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "615:3:56"
},
"nodeType": "YulFunctionCall",
"src": "615:18:56"
}
],
"functionName": {
"name": "calldataload",
"nodeType": "YulIdentifier",
"src": "602:12:56"
},
"nodeType": "YulFunctionCall",
"src": "602:32:56"
},
"variables": [
{
"name": "value",
"nodeType": "YulTypedName",
"src": "593:5:56",
"type": ""
}
]
},
{
"expression": {
"arguments": [
{
"name": "value",
"nodeType": "YulIdentifier",
"src": "666:5:56"
}
],
"functionName": {
"name": "validator_revert_uint8",
"nodeType": "YulIdentifier",
"src": "643:22:56"
},
"nodeType": "YulFunctionCall",
"src": "643:29:56"
},
"nodeType": "YulExpressionStatement",
"src": "643:29:56"
},
{
"nodeType": "YulAssignment",
"src": "681:15:56",
"value": {
"name": "value",
"nodeType": "YulIdentifier",
"src": "691:5:56"
},
"variableNames": [
{
"name": "value2",
"nodeType": "YulIdentifier",
"src": "681:6:56"
}
]
}
]
},
"name": "abi_decode_tuple_t_addresst_addresst_uint8",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "363:9:56",
"type": ""
},
{
"name": "dataEnd",
"nodeType": "YulTypedName",
"src": "374:7:56",
"type": ""
}
],
"returnVariables": [
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "386:6:56",
"type": ""
},
{
"name": "value1",
"nodeType": "YulTypedName",
"src": "394:6:56",
"type": ""
},
{
"name": "value2",
"nodeType": "YulTypedName",
"src": "402:6:56",
"type": ""
}
],
"src": "311:391:56"
},
{
"body": {
"nodeType": "YulBlock",
"src": "814:76:56",
"statements": [
{
"nodeType": "YulAssignment",
"src": "824:26:56",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "836:9:56"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "847:2:56",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "832:3:56"
},
"nodeType": "YulFunctionCall",
"src": "832:18:56"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "824:4:56"
}
]
},
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "866:9:56"
},
{
"name": "value0",
"nodeType": "YulIdentifier",
"src": "877:6:56"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "859:6:56"
},
"nodeType": "YulFunctionCall",
"src": "859:25:56"
},
"nodeType": "YulExpressionStatement",
"src": "859:25:56"
}
]
},
"name": "abi_encode_tuple_t_int256__to_t_int256__fromStack_library_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "783:9:56",
"type": ""
},
{
"name": "value0",
"nodeType": "YulTypedName",
"src": "794:6:56",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "805:4:56",
"type": ""
}
],
"src": "707:183:56"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1069:167:56",
"statements": [
{
"expression": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1086:9:56"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1097:2:56",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1079:6:56"
},
"nodeType": "YulFunctionCall",
"src": "1079:21:56"
},
"nodeType": "YulExpressionStatement",
"src": "1079:21:56"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1120:9:56"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1131:2:56",
"type": "",
"value": "32"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1116:3:56"
},
"nodeType": "YulFunctionCall",
"src": "1116:18:56"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1136:2:56",
"type": "",
"value": "17"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1109:6:56"
},
"nodeType": "YulFunctionCall",
"src": "1109:30:56"
},
"nodeType": "YulExpressionStatement",
"src": "1109:30:56"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1159:9:56"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1170:2:56",
"type": "",
"value": "64"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1155:3:56"
},
"nodeType": "YulFunctionCall",
"src": "1155:18:56"
},
{
"hexValue": "496e76616c6964205f646563696d616c73",
"kind": "string",
"nodeType": "YulLiteral",
"src": "1175:19:56",
"type": "",
"value": "Invalid _decimals"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1148:6:56"
},
"nodeType": "YulFunctionCall",
"src": "1148:47:56"
},
"nodeType": "YulExpressionStatement",
"src": "1148:47:56"
},
{
"nodeType": "YulAssignment",
"src": "1204:26:56",
"value": {
"arguments": [
{
"name": "headStart",
"nodeType": "YulIdentifier",
"src": "1216:9:56"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1227:2:56",
"type": "",
"value": "96"
}
],
"functionName": {
"name": "add",
"nodeType": "YulIdentifier",
"src": "1212:3:56"
},
"nodeType": "YulFunctionCall",
"src": "1212:18:56"
},
"variableNames": [
{
"name": "tail",
"nodeType": "YulIdentifier",
"src": "1204:4:56"
}
]
}
]
},
"name": "abi_encode_tuple_t_stringliteral_6f86eb67bd648d27ce4a2d90e695fc1ea799c79d8ef356679c0180998e1c1453__to_t_string_memory_ptr__fromStack_reversed",
"nodeType": "YulFunctionDefinition",
"parameters": [
{
"name": "headStart",
"nodeType": "YulTypedName",
"src": "1046:9:56",
"type": ""
}
],
"returnVariables": [
{
"name": "tail",
"nodeType": "YulTypedName",
"src": "1060:4:56",
"type": ""
}
],
"src": "895:341:56"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1273:95:56",
"statements": [
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1290:1:56",
"type": "",
"value": "0"
},
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1297:3:56",
"type": "",
"value": "224"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1302:10:56",
"type": "",
"value": "0x4e487b71"
}
],
"functionName": {
"name": "shl",
"nodeType": "YulIdentifier",
"src": "1293:3:56"
},
"nodeType": "YulFunctionCall",
"src": "1293:20:56"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1283:6:56"
},
"nodeType": "YulFunctionCall",
"src": "1283:31:56"
},
"nodeType": "YulExpressionStatement",
"src": "1283:31:56"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1330:1:56",
"type": "",
"value": "4"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1333:4:56",
"type": "",
"value": "0x11"
}
],
"functionName": {
"name": "mstore",
"nodeType": "YulIdentifier",
"src": "1323:6:56"
},
"nodeType": "YulFunctionCall",
"src": "1323:15:56"
},
"nodeType": "YulExpressionStatement",
"src": "1323:15:56"
},
{
"expression": {
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1354:1:56",
"type": "",
"value": "0"
},
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1357:4:56",
"type": "",
"value": "0x24"
}
],
"functionName": {
"name": "revert",
"nodeType": "YulIdentifier",
"src": "1347:6:56"
},
"nodeType": "YulFunctionCall",
"src": "1347:15:56"
},
"nodeType": "YulExpressionStatement",
"src": "1347:15:56"
}
]
},
"name": "panic_error_0x11",
"nodeType": "YulFunctionDefinition",
"src": "1241:127:56"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1437:358:56",
"statements": [
{
"nodeType": "YulVariableDeclaration",
"src": "1447:16:56",
"value": {
"kind": "number",
"nodeType": "YulLiteral",
"src": "1462:1:56",
"type": "",
"value": "1"
},
"variables": [
{
"name": "power_1",
"nodeType": "YulTypedName",
"src": "1451:7:56",
"type": ""
}
]
},
{
"nodeType": "YulAssignment",
"src": "1472:16:56",
"value": {
"name": "power_1",
"nodeType": "YulIdentifier",
"src": "1481:7:56"
},
"variableNames": [
{
"name": "power",
"nodeType": "YulIdentifier",
"src": "1472:5:56"
}
]
},
{
"nodeType": "YulAssignment",
"src": "1497:13:56",
"value": {
"name": "_base",
"nodeType": "YulIdentifier",
"src": "1505:5:56"
},
"variableNames": [
{
"name": "base",
"nodeType": "YulIdentifier",
"src": "1497:4:56"
}
]
},
{
"body": {
"nodeType": "YulBlock",
"src": "1561:228:56",
"statements": [
{
"body": {
"nodeType": "YulBlock",
"src": "1606:22:56",
"statements": [
{
"expression": {
"arguments": [],
"functionName": {
"name": "panic_error_0x11",
"nodeType": "YulIdentifier",
"src": "1608:16:56"
},
"nodeType": "YulFunctionCall",
"src": "1608:18:56"
},
"nodeType": "YulExpressionStatement",
"src": "1608:18:56"
}
]
},
"condition": {
"arguments": [
{
"name": "base",
"nodeType": "YulIdentifier",
"src": "1581:4:56"
},
{
"arguments": [
{
"arguments": [
{
"kind": "number",
"nodeType": "YulLiteral",
"src": "1595:1:56",
"type": "",
"value": "0"
}
],
"functionName": {
"name": "not",
"nodeType": "YulIdentifier",
"src": "1591:3:56"
},
"nodeType": "YulFunctionCall",
"src": "1591:6:56"
},
{
"name": "base",
"nodeType": "YulIdentifier",
"src": "1599:4:56"
}
],
"functionName": {
"name": "div",
"nodeType": "YulIdentifier",
"src": "1587:3:56"
},
"nodeType": "YulFunctionCall",
"src": "1587:17:56"
}
],
"functionName": {
"name": "gt",
"nodeType": "YulIdentifier",
"src": "1578:2:56"
},
"nodeType": "YulFunctionCall",
"src": "1578:27:56"
},
"nodeType": "YulIf",
"src": "1575:53:56"
},
{
"body": {
"nodeType": "YulBlock",
"src": "1667:29:56",
"statements": [
{
"nodeType": "YulAssignment",
"src": "1669:25:56",
"value": {
"arguments": [
{
"name": "power",
"nodeType": "YulIdentifier",
"src": "1682:5:56"
},
{
"name": "base",
"nodeType": "YulIdentifier",
"src": "1689:4:56"