UNPKG

@alpsfinance/core

Version:

This is the official Alps Finance smart contract repository.

1,155 lines (1,154 loc) 343 kB
{ "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"