diff --git a/extensions/cactus-plugin-htlc-coordinator-besu/package.json b/extensions/cactus-plugin-htlc-coordinator-besu/package.json index baaaa5f1d1f..8dac806c47c 100644 --- a/extensions/cactus-plugin-htlc-coordinator-besu/package.json +++ b/extensions/cactus-plugin-htlc-coordinator-besu/package.json @@ -66,9 +66,11 @@ "@hyperledger/cactus-test-plugin-htlc-eth-besu-erc20": "2.0.0-alpha.1", "axios": "0.21.4", "body-parser": "1.19.0", + "fast-safe-stringify": "2.1.1", "joi": "14.3.1", "openapi-types": "7.0.1", "prom-client": "13.1.0", + "run-time-error": "1.4.0", "socket.io-client": "4.5.4", "typescript-optional": "2.0.1" }, @@ -77,7 +79,9 @@ "@hyperledger/cactus-test-tooling": "2.0.0-alpha.1", "@types/express": "4.17.8", "express": "4.17.3", - "socket.io": "4.5.4" + "socket.io": "4.5.4", + "web3-eth-abi": "4.0.3", + "web3-utils": "4.0.3" }, "engines": { "node": ">=10", diff --git a/extensions/cactus-plugin-htlc-coordinator-besu/src/main/typescript/plugin-htlc-coordinator-besu.ts b/extensions/cactus-plugin-htlc-coordinator-besu/src/main/typescript/plugin-htlc-coordinator-besu.ts index 1c5e9ce0b76..43cbf6e4bca 100644 --- a/extensions/cactus-plugin-htlc-coordinator-besu/src/main/typescript/plugin-htlc-coordinator-besu.ts +++ b/extensions/cactus-plugin-htlc-coordinator-besu/src/main/typescript/plugin-htlc-coordinator-besu.ts @@ -4,6 +4,8 @@ import { v4 as uuidv4 } from "uuid"; import { Express } from "express"; import { promisify } from "util"; import { Optional } from "typescript-optional"; +import { RuntimeError } from "run-time-error"; +import fastSafeStringify from "fast-safe-stringify"; import OAS from "../json/openapi.json"; import { ICactusPlugin, @@ -328,8 +330,13 @@ export class PluginHTLCCoordinatorBesu connectorId: withdrawCounterpartyRequest.connectorInstanceId, keychainId: withdrawCounterpartyRequest.keychainId, }; - const res = await pluginHtlc.withdraw(withdrawRequest); - return res; + try { + const res = await pluginHtlc.withdraw(withdrawRequest); + return res; + } catch (ex: unknown) { + const cause = ex instanceof Error ? ex : fastSafeStringify(ex); + throw new WithdrawCounterpartyTxReverted(`EVM tx reverted:`, cause); + } } case HtlcPackage.Besu: { const pluginOptions: IPluginHtlcEthBesuOptions = { @@ -361,3 +368,5 @@ export class PluginHTLCCoordinatorBesu } } } + +export class WithdrawCounterpartyTxReverted extends RuntimeError {} diff --git a/extensions/cactus-plugin-htlc-coordinator-besu/src/main/typescript/web-services/withdraw-counterparty-endpoint.ts b/extensions/cactus-plugin-htlc-coordinator-besu/src/main/typescript/web-services/withdraw-counterparty-endpoint.ts index 833e8077968..db35bf9ca32 100644 --- a/extensions/cactus-plugin-htlc-coordinator-besu/src/main/typescript/web-services/withdraw-counterparty-endpoint.ts +++ b/extensions/cactus-plugin-htlc-coordinator-besu/src/main/typescript/web-services/withdraw-counterparty-endpoint.ts @@ -1,4 +1,5 @@ -import { Express, Request, Response } from "express"; +import type { Express, Request, Response } from "express"; +import fastSafeStringify from "fast-safe-stringify"; import { IWebServiceEndpoint, @@ -19,6 +20,7 @@ import { } from "@hyperledger/cactus-core"; import { WithdrawCounterpartyRequest } from "../generated/openapi/typescript-axios"; import { PluginHTLCCoordinatorBesu } from "../plugin-htlc-coordinator-besu"; +import { WithdrawCounterpartyTxReverted } from "../plugin-htlc-coordinator-besu"; import OAS from "../../json/openapi.json"; export interface IWithdrawCounterpartyOptions { @@ -101,11 +103,17 @@ export class WithdrawCounterpartyEndpoint implements IWebServiceEndpoint { }) as unknown) as PluginHTLCCoordinatorBesu; const resBody = await connector.withdrawCounterparty(request); res.json(resBody); - } catch (ex) { - res.status(500).json({ - message: "Internal Server Error", - error: ex, - }); + } catch (ex: unknown) { + if (ex instanceof WithdrawCounterpartyTxReverted) { + this.log.debug("%o %o", reqTag, ex); + res.status(400).json(ex); + } else { + const error = ex instanceof Error ? ex.message : fastSafeStringify(ex); + res.status(500).json({ + message: "Internal Server Error", + error, + }); + } } } } diff --git a/extensions/cactus-plugin-htlc-coordinator-besu/src/test/typescript/integration/plugin-htlc-coordinator/withdraw-counterparty-endpoint.test.ts b/extensions/cactus-plugin-htlc-coordinator-besu/src/test/typescript/integration/plugin-htlc-coordinator/withdraw-counterparty-endpoint.test.ts index 12000794842..2991dc60b05 100644 --- a/extensions/cactus-plugin-htlc-coordinator-besu/src/test/typescript/integration/plugin-htlc-coordinator/withdraw-counterparty-endpoint.test.ts +++ b/extensions/cactus-plugin-htlc-coordinator-besu/src/test/typescript/integration/plugin-htlc-coordinator/withdraw-counterparty-endpoint.test.ts @@ -5,6 +5,8 @@ import express from "express"; import bodyParser from "body-parser"; import http from "http"; import { Server as SocketIoServer } from "socket.io"; +import { encodeParameter } from "web3-eth-abi"; +import { keccak256 } from "web3-utils"; import { DefaultApi as HtlcCoordinatorBesuApi, PluginFactoryHTLCCoordinatorBesu, @@ -44,14 +46,12 @@ import HashTimeLockJSON from "@hyperledger/cactus-plugin-htlc-eth-besu-erc20/src import TestTokenJSON from "@hyperledger/cactus-test-plugin-htlc-eth-besu-erc20/src/test/solidity/token-erc20-contract/Test_Token.json"; import DemoHelperJSON from "@hyperledger/cactus-test-plugin-htlc-eth-besu-erc20/src/test/solidity/token-erc20-contract/DemoHelpers.json"; -const logLevel: LogLevelDesc = "INFO"; +const logLevel: LogLevelDesc = "DEBUG"; const estimatedGas = 6721975; const expiration = 2147483648; const secret = "0x3853485acd2bfc3c632026ee365279743af107a30492e3ceaa7aefc30c2a048a"; const receiver = "0x627306090abaB3A6e1400e9345bC60c78a8BEf57"; -const hashLock = - "0x3c335ba7f06a8b01d0596589f73c19069e21c81e5013b91f408165d1bf623d32"; const firstHighNetWorthAccount = "0x90F8bf6A479f320ead074411a4B0e7944Ea8c9C1"; const privateKey = "0x4f3edf983ac636a65a842ce7c78d9aa706d3b113bce9c46f30d7d21715b23b1d"; @@ -72,6 +72,10 @@ test("BEFORE " + testCase, async (t: Test) => { }); test(testCase, async (t: Test) => { + + const secretEthAbiEncoded = encodeParameter("uint256", secret); + const hashLock = keccak256(secretEthAbiEncoded); + t.comment("Starting Besu Test Ledger"); const besuTestLedger = new BesuTestLedger(); await besuTestLedger.start(); diff --git a/packages/cactus-plugin-htlc-eth-besu-erc20/src/main/solidity/contracts/HashedTimeLockContract.json b/packages/cactus-plugin-htlc-eth-besu-erc20/src/main/solidity/contracts/HashedTimeLockContract.json index 2b9a3544e2f..2a6a797c478 100644 --- a/packages/cactus-plugin-htlc-eth-besu-erc20/src/main/solidity/contracts/HashedTimeLockContract.json +++ b/packages/cactus-plugin-htlc-eth-besu-erc20/src/main/solidity/contracts/HashedTimeLockContract.json @@ -1,38978 +1,14102 @@ { - "contractName": "HashedTimeLockContract", - "abi": [ - { - "anonymous": false, - "inputs": [ + "contractName": "HashedTimeLockContract", + "abi": [ { - "indexed": false, - "internalType": "uint256", - "name": "inputAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "outputAmount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "expiration", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "id", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "hashLock", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "tokenAddress", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "indexed": false, - "internalType": "string", - "name": "outputNetwork", - "type": "string" - }, - { - "indexed": false, - "internalType": "string", - "name": "outputAddress", - "type": "string" - } - ], - "name": "NewContract", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "id", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "hashLock", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "tokenAddress", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "receiver", - "type": "address" - } - ], - "name": "Refund", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "id", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "secret", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "hashLock", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "tokenAddress", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "receiver", - "type": "address" - } - ], - "name": "Withdraw", - "type": "event" - }, - { - "inputs": [], - "name": "ACTIVE", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "EXPIRED", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "INVALID", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "REFUNDED", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "WITHDRAWN", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "name": "contracts", - "outputs": [ - { - "internalType": "uint256", - "name": "inputAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "outputAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expiration", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "status", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "hashLock", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "tokenAddress", - "type": "address" - }, - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "internalType": "string", - "name": "outputNetwork", - "type": "string" - }, - { - "internalType": "string", - "name": "outputAddress", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "inputAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "outputAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "expiration", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "hashLock", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "tokenAddress", - "type": "address" - }, - { - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "internalType": "string", - "name": "outputNetwork", - "type": "string" - }, - { - "internalType": "string", - "name": "outputAddress", - "type": "string" - } - ], - "name": "newContract", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "id", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "secret", - "type": "bytes32" - } - ], - "name": "withdraw", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "id", - "type": "bytes32" - } - ], - "name": "refund", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32[]", - "name": "ids", - "type": "bytes32[]" - } - ], - "name": "getStatus", - "outputs": [ - { - "internalType": "uint256[]", - "name": "", - "type": "uint256[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "id", - "type": "bytes32" - } - ], - "name": "getSingleStatus", - "outputs": [ - { - "internalType": "uint256", - "name": "result", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "metadata": "{\"compiler\":{\"version\":\"0.8.0+commit.c7dfd78e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"inputAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"outputAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"hashLock\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"outputNetwork\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"outputAddress\",\"type\":\"string\"}],\"name\":\"NewContract\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"hashLock\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"Refund\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"secret\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"hashLock\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ACTIVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"EXPIRED\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"INVALID\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"REFUNDED\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WITHDRAWN\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"contracts\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"inputAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"outputAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"status\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"hashLock\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"outputNetwork\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"outputAddress\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"getSingleStatus\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"ids\",\"type\":\"bytes32[]\"}],\"name\":\"getStatus\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"inputAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"outputAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"hashLock\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"outputNetwork\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"outputAddress\",\"type\":\"string\"}],\"name\":\"newContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"refund\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"secret\",\"type\":\"bytes32\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/Users/jordigironamezcua/pruebas/contracts/HashTimeLock.sol\":\"HashedTimeLockContract\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/jordigironamezcua/pruebas/contracts/HashTimeLock.sol\":{\"keccak256\":\"0x3d79bf8e90234f1a28e8f0429c37f6cb5a17226e8160d665e9b9128bb9ed8216\",\"urls\":[\"bzz-raw://4b05bcebe44fe23a6320e193ffca4f7504420bb6fa8cd8402e28ef83026e652c\",\"dweb:/ipfs/Qmau7GaNEnyxfKd7QsvPRbANcZJTgfreQD8vieuBrN1Dqm\"]}},\"version\":1}", - "bytecode": "608060405234801561001057600080fd5b50611f8a806100206000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c806394e15c8f1161007157806394e15c8f14610152578063af78feef14610170578063c90bd0471461018e578063d2fd8b76146101ac578063ec56a373146101c8578063fbdf3b4314610201576100a9565b80632f21a663146100ae578063414ac85b146100de57806363615149146100fc5780637249fbb6146101185780637fcce2a914610134575b600080fd5b6100c860048036038101906100c39190611423565b610231565b6040516100d591906119d6565b60405180910390f35b6100e661035e565b6040516100f39190611af8565b60405180910390f35b610116600480360381019061011191906114df565b610363565b005b610132600480360381019061012d919061148d565b610693565b005b61013c61090d565b6040516101499190611af8565b60405180910390f35b61015a610912565b6040516101679190611af8565b60405180910390f35b610178610917565b6040516101859190611af8565b60405180910390f35b61019661091c565b6040516101a39190611af8565b60405180910390f35b6101c660048036038101906101c1919061151b565b610921565b005b6101e260048036038101906101dd919061148d565b610dc5565b6040516101f89a99989796959493929190611b94565b60405180910390f35b61021b6004803603810190610216919061148d565b610f89565b6040516102289190611af8565b60405180910390f35b60606000825167ffffffffffffffff811115610276577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156102a45781602001602082028036833780820191505090505b50905060005b8351811015610354576102fc8482815181106102ef577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151610f89565b828281518110610335577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001018181525050808061034c90611dcc565b9150506102aa565b5080915050919050565b600481565b6000806000848152602001908152602001600020905060018160030154146103c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103b790611a98565b60405180910390fd5b42816002015411610406576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103fd90611ab8565b60405180910390fd5b6002826040516020016104199190611944565b604051602081830303815290604052604051610435919061195f565b602060405180830381855afa158015610452573d6000803e3d6000fd5b5050506040513d601f19601f8201168201806040525081019061047591906114b6565b8160040154146104ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104b190611a78565b60405180910390fd5b600381600301819055508060050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8260070160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683600001546040518363ffffffff1660e01b815260040161054b9291906119ad565b602060405180830381600087803b15801561056557600080fd5b505af1158015610579573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061059d9190611464565b508060070160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168160060160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fbab3eb11a71b2cd82a010d4d5b2c3df5cd25ee8c9f1a75baff879a1b87942cb88686866004015460405161068693929190611a21565b60405180910390a4505050565b6000806000838152602001908152602001600020905060018160030154146106f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e790611a98565b60405180910390fd5b4281600201541115610737576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072e90611ab8565b60405180910390fd5b600281600301819055508060050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8260060160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683600001546040518363ffffffff1660e01b81526004016107c89291906119ad565b602060405180830381600087803b1580156107e257600080fd5b505af11580156107f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081a9190611464565b508060070160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168160060160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f0d4cdc2fe2a785f03bf5481e13bee5cdcb7743166bcadafebfd3f09db61081178585600401546040516109019291906119f8565b60405180910390a45050565b600081565b600281565b600381565b600181565b428811610963576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095a90611ab8565b60405180910390fd5b60008a116109a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099d90611ad8565b60405180910390fd5b8573ffffffffffffffffffffffffffffffffffffffff166323b872dd33308d6040518463ffffffff1660e01b81526004016109e393929190611976565b602060405180830381600087803b1580156109fd57600080fd5b505af1158015610a11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a359190611464565b50600033868c8a8c8b604051602001610a53969594939291906118d4565b60405160208183030381529060405280519060200120905060008060008381526020019081526020016000206003015414610ac3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aba90611a58565b60405180910390fd5b6040518061014001604052808c81526020018b81526020018a8152602001600181526020018981526020018873ffffffffffffffffffffffffffffffffffffffff1681526020013373ffffffffffffffffffffffffffffffffffffffff1681526020018773ffffffffffffffffffffffffffffffffffffffff16815260200186868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050815260200184848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050815250600080838152602001908152602001600020600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a08201518160050160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060c08201518160060160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060e08201518160070160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610100820151816008019080519060200190610d0a929190611237565b50610120820151816009019080519060200190610d28929190611237565b509050508573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f448581ece7da63e54a320119f9f2b80c868a954c441e70c88ecdfc95919751248e8e8e878f8d8d8d8d604051610db099989796959493929190611b13565b60405180910390a45050505050505050505050565b60006020528060005260406000206000915090508060000154908060010154908060020154908060030154908060040154908060050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060060160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060070160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690806008018054610e7890611d9a565b80601f0160208091040260200160405190810160405280929190818152602001828054610ea490611d9a565b8015610ef15780601f10610ec657610100808354040283529160200191610ef1565b820191906000526020600020905b815481529060010190602001808311610ed457829003601f168201915b505050505090806009018054610f0690611d9a565b80601f0160208091040260200160405190810160405280929190818152602001828054610f3290611d9a565b8015610f7f5780601f10610f5457610100808354040283529160200191610f7f565b820191906000526020600020905b815481529060010190602001808311610f6257829003601f168201915b505050505090508a565b6000806000808481526020019081526020016000206040518061014001604052908160008201548152602001600182015481526020016002820154815260200160038201548152602001600482015481526020016005820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016006820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016007820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016008820180546110ee90611d9a565b80601f016020809104026020016040519081016040528092919081815260200182805461111a90611d9a565b80156111675780601f1061113c57610100808354040283529160200191611167565b820191906000526020600020905b81548152906001019060200180831161114a57829003601f168201915b5050505050815260200160098201805461118090611d9a565b80601f01602080910402602001604051908101604052809291908181526020018280546111ac90611d9a565b80156111f95780601f106111ce576101008083540402835291602001916111f9565b820191906000526020600020905b8154815290600101906020018083116111dc57829003601f168201915b50505050508152505090506001816060015114801561121b5750428160400151105b156112295760049150611231565b806060015191505b50919050565b82805461124390611d9a565b90600052602060002090601f01602090048101928261126557600085556112ac565b82601f1061127e57805160ff19168380011785556112ac565b828001600101855582156112ac579182015b828111156112ab578251825591602001919060010190611290565b5b5090506112b991906112bd565b5090565b5b808211156112d65760008160009055506001016112be565b5090565b60006112ed6112e884611c6f565b611c3e565b9050808382526020820190508285602086028201111561130c57600080fd5b60005b8581101561133c5781611322888261139a565b84526020840193506020830192505060018101905061130f565b5050509392505050565b60008135905061135581611ef8565b92915050565b600082601f83011261136c57600080fd5b813561137c8482602086016112da565b91505092915050565b60008151905061139481611f0f565b92915050565b6000813590506113a981611f26565b92915050565b6000815190506113be81611f26565b92915050565b60008083601f8401126113d657600080fd5b8235905067ffffffffffffffff8111156113ef57600080fd5b60208301915083600182028301111561140757600080fd5b9250929050565b60008135905061141d81611f3d565b92915050565b60006020828403121561143557600080fd5b600082013567ffffffffffffffff81111561144f57600080fd5b61145b8482850161135b565b91505092915050565b60006020828403121561147657600080fd5b600061148484828501611385565b91505092915050565b60006020828403121561149f57600080fd5b60006114ad8482850161139a565b91505092915050565b6000602082840312156114c857600080fd5b60006114d6848285016113af565b91505092915050565b600080604083850312156114f257600080fd5b60006115008582860161139a565b92505060206115118582860161139a565b9150509250929050565b6000806000806000806000806000806101008b8d03121561153b57600080fd5b60006115498d828e0161140e565b9a5050602061155a8d828e0161140e565b995050604061156b8d828e0161140e565b985050606061157c8d828e0161139a565b975050608061158d8d828e01611346565b96505060a061159e8d828e01611346565b95505060c08b013567ffffffffffffffff8111156115bb57600080fd5b6115c78d828e016113c4565b945094505060e08b013567ffffffffffffffff8111156115e657600080fd5b6115f28d828e016113c4565b92509250509295989b9194979a5092959850565b6000611612838361189f565b60208301905092915050565b61162781611d06565b82525050565b61163e61163982611d06565b611e15565b82525050565b600061164f82611cab565b6116598185611cd9565b935061166483611c9b565b8060005b8381101561169557815161167c8882611606565b975061168783611ccc565b925050600181019050611668565b5085935050505092915050565b6116ab81611d24565b82525050565b6116c26116bd82611d24565b611e27565b82525050565b60006116d382611cb6565b6116dd8185611cea565b93506116ed818560208601611d67565b80840191505092915050565b60006117058385611cf5565b9350611712838584611d58565b61171b83611eda565b840190509392505050565b600061173182611cc1565b61173b8185611cf5565b935061174b818560208601611d67565b61175481611eda565b840191505092915050565b600061176c600b83611cf5565b91507f535741505f4558495354530000000000000000000000000000000000000000006000830152602082019050919050565b60006117ac600e83611cf5565b91507f494e56414c49445f5345435245540000000000000000000000000000000000006000830152602082019050919050565b60006117ec600f83611cf5565b91507f535741505f4e4f545f41435449564500000000000000000000000000000000006000830152602082019050919050565b600061182c600c83611cf5565b91507f494e56414c49445f54494d4500000000000000000000000000000000000000006000830152602082019050919050565b600061186c600e83611cf5565b91507f494e56414c49445f414d4f554e540000000000000000000000000000000000006000830152602082019050919050565b6118a881611d4e565b82525050565b6118b781611d4e565b82525050565b6118ce6118c982611d4e565b611e43565b82525050565b60006118e0828961162d565b6014820191506118f0828861162d565b60148201915061190082876118bd565b60208201915061191082866116b1565b60208201915061192082856118bd565b602082019150611930828461162d565b601482019150819050979650505050505050565b600061195082846116b1565b60208201915081905092915050565b600061196b82846116c8565b915081905092915050565b600060608201905061198b600083018661161e565b611998602083018561161e565b6119a560408301846118ae565b949350505050565b60006040820190506119c2600083018561161e565b6119cf60208301846118ae565b9392505050565b600060208201905081810360008301526119f08184611644565b905092915050565b6000604082019050611a0d60008301856116a2565b611a1a60208301846116a2565b9392505050565b6000606082019050611a3660008301866116a2565b611a4360208301856116a2565b611a5060408301846116a2565b949350505050565b60006020820190508181036000830152611a718161175f565b9050919050565b60006020820190508181036000830152611a918161179f565b9050919050565b60006020820190508181036000830152611ab1816117df565b9050919050565b60006020820190508181036000830152611ad18161181f565b9050919050565b60006020820190508181036000830152611af18161185f565b9050919050565b6000602082019050611b0d60008301846118ae565b92915050565b600060e082019050611b28600083018c6118ae565b611b35602083018b6118ae565b611b42604083018a6118ae565b611b4f60608301896116a2565b611b5c60808301886116a2565b81810360a0830152611b6f8186886116f9565b905081810360c0830152611b848184866116f9565b90509a9950505050505050505050565b600061014082019050611baa600083018d6118ae565b611bb7602083018c6118ae565b611bc4604083018b6118ae565b611bd1606083018a6118ae565b611bde60808301896116a2565b611beb60a083018861161e565b611bf860c083018761161e565b611c0560e083018661161e565b818103610100830152611c188185611726565b9050818103610120830152611c2d8184611726565b90509b9a5050505050505050505050565b6000604051905081810181811067ffffffffffffffff82111715611c6557611c64611eab565b5b8060405250919050565b600067ffffffffffffffff821115611c8a57611c89611eab565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000611d1182611d2e565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015611d85578082015181840152602081019050611d6a565b83811115611d94576000848401525b50505050565b60006002820490506001821680611db257607f821691505b60208210811415611dc657611dc5611e7c565b5b50919050565b6000611dd782611d4e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611e0a57611e09611e4d565b5b600182019050919050565b6000611e2082611e31565b9050919050565b6000819050919050565b6000611e3c82611eeb565b9050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b60008160601b9050919050565b611f0181611d06565b8114611f0c57600080fd5b50565b611f1881611d18565b8114611f2357600080fd5b50565b611f2f81611d24565b8114611f3a57600080fd5b50565b611f4681611d4e565b8114611f5157600080fd5b5056fea26469706673582212203474e3dc7efee77e857e5c03e2a82e12688650f31a9fbe65e28797b2545cca1064736f6c63430008000033", - "deployedBytecode": "608060405234801561001057600080fd5b50600436106100a95760003560e01c806394e15c8f1161007157806394e15c8f14610152578063af78feef14610170578063c90bd0471461018e578063d2fd8b76146101ac578063ec56a373146101c8578063fbdf3b4314610201576100a9565b80632f21a663146100ae578063414ac85b146100de57806363615149146100fc5780637249fbb6146101185780637fcce2a914610134575b600080fd5b6100c860048036038101906100c39190611423565b610231565b6040516100d591906119d6565b60405180910390f35b6100e661035e565b6040516100f39190611af8565b60405180910390f35b610116600480360381019061011191906114df565b610363565b005b610132600480360381019061012d919061148d565b610693565b005b61013c61090d565b6040516101499190611af8565b60405180910390f35b61015a610912565b6040516101679190611af8565b60405180910390f35b610178610917565b6040516101859190611af8565b60405180910390f35b61019661091c565b6040516101a39190611af8565b60405180910390f35b6101c660048036038101906101c1919061151b565b610921565b005b6101e260048036038101906101dd919061148d565b610dc5565b6040516101f89a99989796959493929190611b94565b60405180910390f35b61021b6004803603810190610216919061148d565b610f89565b6040516102289190611af8565b60405180910390f35b60606000825167ffffffffffffffff811115610276577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156102a45781602001602082028036833780820191505090505b50905060005b8351811015610354576102fc8482815181106102ef577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010151610f89565b828281518110610335577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001018181525050808061034c90611dcc565b9150506102aa565b5080915050919050565b600481565b6000806000848152602001908152602001600020905060018160030154146103c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103b790611a98565b60405180910390fd5b42816002015411610406576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103fd90611ab8565b60405180910390fd5b6002826040516020016104199190611944565b604051602081830303815290604052604051610435919061195f565b602060405180830381855afa158015610452573d6000803e3d6000fd5b5050506040513d601f19601f8201168201806040525081019061047591906114b6565b8160040154146104ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104b190611a78565b60405180910390fd5b600381600301819055508060050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8260070160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683600001546040518363ffffffff1660e01b815260040161054b9291906119ad565b602060405180830381600087803b15801561056557600080fd5b505af1158015610579573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061059d9190611464565b508060070160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168160060160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fbab3eb11a71b2cd82a010d4d5b2c3df5cd25ee8c9f1a75baff879a1b87942cb88686866004015460405161068693929190611a21565b60405180910390a4505050565b6000806000838152602001908152602001600020905060018160030154146106f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e790611a98565b60405180910390fd5b4281600201541115610737576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072e90611ab8565b60405180910390fd5b600281600301819055508060050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8260060160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683600001546040518363ffffffff1660e01b81526004016107c89291906119ad565b602060405180830381600087803b1580156107e257600080fd5b505af11580156107f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081a9190611464565b508060070160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168160060160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f0d4cdc2fe2a785f03bf5481e13bee5cdcb7743166bcadafebfd3f09db61081178585600401546040516109019291906119f8565b60405180910390a45050565b600081565b600281565b600381565b600181565b428811610963576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095a90611ab8565b60405180910390fd5b60008a116109a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099d90611ad8565b60405180910390fd5b8573ffffffffffffffffffffffffffffffffffffffff166323b872dd33308d6040518463ffffffff1660e01b81526004016109e393929190611976565b602060405180830381600087803b1580156109fd57600080fd5b505af1158015610a11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a359190611464565b50600033868c8a8c8b604051602001610a53969594939291906118d4565b60405160208183030381529060405280519060200120905060008060008381526020019081526020016000206003015414610ac3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aba90611a58565b60405180910390fd5b6040518061014001604052808c81526020018b81526020018a8152602001600181526020018981526020018873ffffffffffffffffffffffffffffffffffffffff1681526020013373ffffffffffffffffffffffffffffffffffffffff1681526020018773ffffffffffffffffffffffffffffffffffffffff16815260200186868080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050815260200184848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050815250600080838152602001908152602001600020600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a08201518160050160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060c08201518160060160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060e08201518160070160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610100820151816008019080519060200190610d0a929190611237565b50610120820151816009019080519060200190610d28929190611237565b509050508573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f448581ece7da63e54a320119f9f2b80c868a954c441e70c88ecdfc95919751248e8e8e878f8d8d8d8d604051610db099989796959493929190611b13565b60405180910390a45050505050505050505050565b60006020528060005260406000206000915090508060000154908060010154908060020154908060030154908060040154908060050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060060160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060070160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690806008018054610e7890611d9a565b80601f0160208091040260200160405190810160405280929190818152602001828054610ea490611d9a565b8015610ef15780601f10610ec657610100808354040283529160200191610ef1565b820191906000526020600020905b815481529060010190602001808311610ed457829003601f168201915b505050505090806009018054610f0690611d9a565b80601f0160208091040260200160405190810160405280929190818152602001828054610f3290611d9a565b8015610f7f5780601f10610f5457610100808354040283529160200191610f7f565b820191906000526020600020905b815481529060010190602001808311610f6257829003601f168201915b505050505090508a565b6000806000808481526020019081526020016000206040518061014001604052908160008201548152602001600182015481526020016002820154815260200160038201548152602001600482015481526020016005820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016006820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016007820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016008820180546110ee90611d9a565b80601f016020809104026020016040519081016040528092919081815260200182805461111a90611d9a565b80156111675780601f1061113c57610100808354040283529160200191611167565b820191906000526020600020905b81548152906001019060200180831161114a57829003601f168201915b5050505050815260200160098201805461118090611d9a565b80601f01602080910402602001604051908101604052809291908181526020018280546111ac90611d9a565b80156111f95780601f106111ce576101008083540402835291602001916111f9565b820191906000526020600020905b8154815290600101906020018083116111dc57829003601f168201915b50505050508152505090506001816060015114801561121b5750428160400151105b156112295760049150611231565b806060015191505b50919050565b82805461124390611d9a565b90600052602060002090601f01602090048101928261126557600085556112ac565b82601f1061127e57805160ff19168380011785556112ac565b828001600101855582156112ac579182015b828111156112ab578251825591602001919060010190611290565b5b5090506112b991906112bd565b5090565b5b808211156112d65760008160009055506001016112be565b5090565b60006112ed6112e884611c6f565b611c3e565b9050808382526020820190508285602086028201111561130c57600080fd5b60005b8581101561133c5781611322888261139a565b84526020840193506020830192505060018101905061130f565b5050509392505050565b60008135905061135581611ef8565b92915050565b600082601f83011261136c57600080fd5b813561137c8482602086016112da565b91505092915050565b60008151905061139481611f0f565b92915050565b6000813590506113a981611f26565b92915050565b6000815190506113be81611f26565b92915050565b60008083601f8401126113d657600080fd5b8235905067ffffffffffffffff8111156113ef57600080fd5b60208301915083600182028301111561140757600080fd5b9250929050565b60008135905061141d81611f3d565b92915050565b60006020828403121561143557600080fd5b600082013567ffffffffffffffff81111561144f57600080fd5b61145b8482850161135b565b91505092915050565b60006020828403121561147657600080fd5b600061148484828501611385565b91505092915050565b60006020828403121561149f57600080fd5b60006114ad8482850161139a565b91505092915050565b6000602082840312156114c857600080fd5b60006114d6848285016113af565b91505092915050565b600080604083850312156114f257600080fd5b60006115008582860161139a565b92505060206115118582860161139a565b9150509250929050565b6000806000806000806000806000806101008b8d03121561153b57600080fd5b60006115498d828e0161140e565b9a5050602061155a8d828e0161140e565b995050604061156b8d828e0161140e565b985050606061157c8d828e0161139a565b975050608061158d8d828e01611346565b96505060a061159e8d828e01611346565b95505060c08b013567ffffffffffffffff8111156115bb57600080fd5b6115c78d828e016113c4565b945094505060e08b013567ffffffffffffffff8111156115e657600080fd5b6115f28d828e016113c4565b92509250509295989b9194979a5092959850565b6000611612838361189f565b60208301905092915050565b61162781611d06565b82525050565b61163e61163982611d06565b611e15565b82525050565b600061164f82611cab565b6116598185611cd9565b935061166483611c9b565b8060005b8381101561169557815161167c8882611606565b975061168783611ccc565b925050600181019050611668565b5085935050505092915050565b6116ab81611d24565b82525050565b6116c26116bd82611d24565b611e27565b82525050565b60006116d382611cb6565b6116dd8185611cea565b93506116ed818560208601611d67565b80840191505092915050565b60006117058385611cf5565b9350611712838584611d58565b61171b83611eda565b840190509392505050565b600061173182611cc1565b61173b8185611cf5565b935061174b818560208601611d67565b61175481611eda565b840191505092915050565b600061176c600b83611cf5565b91507f535741505f4558495354530000000000000000000000000000000000000000006000830152602082019050919050565b60006117ac600e83611cf5565b91507f494e56414c49445f5345435245540000000000000000000000000000000000006000830152602082019050919050565b60006117ec600f83611cf5565b91507f535741505f4e4f545f41435449564500000000000000000000000000000000006000830152602082019050919050565b600061182c600c83611cf5565b91507f494e56414c49445f54494d4500000000000000000000000000000000000000006000830152602082019050919050565b600061186c600e83611cf5565b91507f494e56414c49445f414d4f554e540000000000000000000000000000000000006000830152602082019050919050565b6118a881611d4e565b82525050565b6118b781611d4e565b82525050565b6118ce6118c982611d4e565b611e43565b82525050565b60006118e0828961162d565b6014820191506118f0828861162d565b60148201915061190082876118bd565b60208201915061191082866116b1565b60208201915061192082856118bd565b602082019150611930828461162d565b601482019150819050979650505050505050565b600061195082846116b1565b60208201915081905092915050565b600061196b82846116c8565b915081905092915050565b600060608201905061198b600083018661161e565b611998602083018561161e565b6119a560408301846118ae565b949350505050565b60006040820190506119c2600083018561161e565b6119cf60208301846118ae565b9392505050565b600060208201905081810360008301526119f08184611644565b905092915050565b6000604082019050611a0d60008301856116a2565b611a1a60208301846116a2565b9392505050565b6000606082019050611a3660008301866116a2565b611a4360208301856116a2565b611a5060408301846116a2565b949350505050565b60006020820190508181036000830152611a718161175f565b9050919050565b60006020820190508181036000830152611a918161179f565b9050919050565b60006020820190508181036000830152611ab1816117df565b9050919050565b60006020820190508181036000830152611ad18161181f565b9050919050565b60006020820190508181036000830152611af18161185f565b9050919050565b6000602082019050611b0d60008301846118ae565b92915050565b600060e082019050611b28600083018c6118ae565b611b35602083018b6118ae565b611b42604083018a6118ae565b611b4f60608301896116a2565b611b5c60808301886116a2565b81810360a0830152611b6f8186886116f9565b905081810360c0830152611b848184866116f9565b90509a9950505050505050505050565b600061014082019050611baa600083018d6118ae565b611bb7602083018c6118ae565b611bc4604083018b6118ae565b611bd1606083018a6118ae565b611bde60808301896116a2565b611beb60a083018861161e565b611bf860c083018761161e565b611c0560e083018661161e565b818103610100830152611c188185611726565b9050818103610120830152611c2d8184611726565b90509b9a5050505050505050505050565b6000604051905081810181811067ffffffffffffffff82111715611c6557611c64611eab565b5b8060405250919050565b600067ffffffffffffffff821115611c8a57611c89611eab565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b6000611d1182611d2e565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015611d85578082015181840152602081019050611d6a565b83811115611d94576000848401525b50505050565b60006002820490506001821680611db257607f821691505b60208210811415611dc657611dc5611e7c565b5b50919050565b6000611dd782611d4e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611e0a57611e09611e4d565b5b600182019050919050565b6000611e2082611e31565b9050919050565b6000819050919050565b6000611e3c82611eeb565b9050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b60008160601b9050919050565b611f0181611d06565b8114611f0c57600080fd5b50565b611f1881611d18565b8114611f2357600080fd5b50565b611f2f81611d24565b8114611f3a57600080fd5b50565b611f4681611d4e565b8114611f5157600080fd5b5056fea26469706673582212203474e3dc7efee77e857e5c03e2a82e12688650f31a9fbe65e28797b2545cca1064736f6c63430008000033", - "immutableReferences": {}, - "generatedSources": [], - "deployedGeneratedSources": [ - { - "ast": { - "nodeType": "YulBlock", - "src": "0:23114:2", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "126:520:2", - "statements": [ + "anonymous": false, + "inputs": [ { - "nodeType": "YulAssignment", - "src": "136:89:2", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "217:6:2" - } - ], - "functionName": { - "name": "array_allocation_size_t_array$_t_bytes32_$dyn_memory_ptr", - "nodeType": "YulIdentifier", - "src": "160:56:2" - }, - "nodeType": "YulFunctionCall", - "src": "160:64:2" - } - ], - "functionName": { - "name": "allocateMemory", - "nodeType": "YulIdentifier", - "src": "145:14:2" - }, - "nodeType": "YulFunctionCall", - "src": "145:80:2" - }, - "variableNames": [ - { - "name": "array", - "nodeType": "YulIdentifier", - "src": "136:5:2" - } - ] + "indexed": false, + "internalType": "uint256", + "name": "inputAmount", + "type": "uint256" }, { - "nodeType": "YulVariableDeclaration", - "src": "234:16:2", - "value": { - "name": "array", - "nodeType": "YulIdentifier", - "src": "245:5:2" - }, - "variables": [ - { - "name": "dst", - "nodeType": "YulTypedName", - "src": "238:3:2", - "type": "" - } - ] + "indexed": false, + "internalType": "uint256", + "name": "outputAmount", + "type": "uint256" }, { - "expression": { - "arguments": [ - { - "name": "array", - "nodeType": "YulIdentifier", - "src": "266:5:2" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "273:6:2" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "259:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "259:21:2" - }, - "nodeType": "YulExpressionStatement", - "src": "259:21:2" + "indexed": false, + "internalType": "uint256", + "name": "expiration", + "type": "uint256" }, { - "nodeType": "YulAssignment", - "src": "281:23:2", - "value": { - "arguments": [ - { - "name": "array", - "nodeType": "YulIdentifier", - "src": "292:5:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "299:4:2", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "288:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "288:16:2" - }, - "variableNames": [ - { - "name": "dst", - "nodeType": "YulIdentifier", - "src": "281:3:2" - } - ] + "indexed": false, + "internalType": "bytes32", + "name": "id", + "type": "bytes32" }, { - "nodeType": "YulVariableDeclaration", - "src": "313:17:2", - "value": { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "324:6:2" - }, - "variables": [ - { - "name": "src", - "nodeType": "YulTypedName", - "src": "317:3:2", - "type": "" - } - ] + "indexed": false, + "internalType": "bytes32", + "name": "hashLock", + "type": "bytes32" }, { - "body": { - "nodeType": "YulBlock", - "src": "379:16:2", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "388:1:2", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "391:1:2", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "381:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "381:12:2" - }, - "nodeType": "YulExpressionStatement", - "src": "381:12:2" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nodeType": "YulIdentifier", - "src": "349:3:2" - }, - { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "358:6:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "366:4:2", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "mul", - "nodeType": "YulIdentifier", - "src": "354:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "354:17:2" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "345:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "345:27:2" - }, - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "374:3:2" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "342:2:2" - }, - "nodeType": "YulFunctionCall", - "src": "342:36:2" - }, - "nodeType": "YulIf", - "src": "339:2:2" + "indexed": true, + "internalType": "address", + "name": "tokenAddress", + "type": "address" }, { - "body": { - "nodeType": "YulBlock", - "src": "464:176:2", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "478:21:2", - "value": { - "name": "src", - "nodeType": "YulIdentifier", - "src": "496:3:2" - }, - "variables": [ - { - "name": "elementPos", - "nodeType": "YulTypedName", - "src": "482:10:2", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "dst", - "nodeType": "YulIdentifier", - "src": "519:3:2" - }, - { - "arguments": [ - { - "name": "elementPos", - "nodeType": "YulIdentifier", - "src": "545:10:2" - }, - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "557:3:2" - } - ], - "functionName": { - "name": "abi_decode_t_bytes32", - "nodeType": "YulIdentifier", - "src": "524:20:2" - }, - "nodeType": "YulFunctionCall", - "src": "524:37:2" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "512:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "512:50:2" - }, - "nodeType": "YulExpressionStatement", - "src": "512:50:2" - }, - { - "nodeType": "YulAssignment", - "src": "575:21:2", - "value": { - "arguments": [ - { - "name": "dst", - "nodeType": "YulIdentifier", - "src": "586:3:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "591:4:2", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "582:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "582:14:2" - }, - "variableNames": [ - { - "name": "dst", - "nodeType": "YulIdentifier", - "src": "575:3:2" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "609:21:2", - "value": { - "arguments": [ - { - "name": "src", - "nodeType": "YulIdentifier", - "src": "620:3:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "625:4:2", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "616:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "616:14:2" - }, - "variableNames": [ - { - "name": "src", - "nodeType": "YulIdentifier", - "src": "609:3:2" - } - ] - } - ] - }, - "condition": { - "arguments": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "426:1:2" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "429:6:2" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "423:2:2" - }, - "nodeType": "YulFunctionCall", - "src": "423:13:2" - }, - "nodeType": "YulForLoop", - "post": { - "nodeType": "YulBlock", - "src": "437:18:2", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "439:14:2", - "value": { - "arguments": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "448:1:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "451:1:2", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "444:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "444:9:2" - }, - "variableNames": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "439:1:2" - } - ] - } - ] - }, - "pre": { - "nodeType": "YulBlock", - "src": "408:14:2", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "410:10:2", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "419:1:2", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "i", - "nodeType": "YulTypedName", - "src": "414:1:2", - "type": "" - } - ] - } - ] - }, - "src": "404:236:2" - } - ] - }, - "name": "abi_decode_available_length_t_array$_t_bytes32_$dyn_memory_ptr", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "96:6:2", - "type": "" - }, - { - "name": "length", - "nodeType": "YulTypedName", - "src": "104:6:2", - "type": "" - }, - { - "name": "end", - "nodeType": "YulTypedName", - "src": "112:3:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "array", - "nodeType": "YulTypedName", - "src": "120:5:2", - "type": "" - } - ], - "src": "24:622:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "704:87:2", - "statements": [ + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + }, { - "nodeType": "YulAssignment", - "src": "714:29:2", - "value": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "736:6:2" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "723:12:2" - }, - "nodeType": "YulFunctionCall", - "src": "723:20:2" - }, - "variableNames": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "714:5:2" - } - ] + "indexed": true, + "internalType": "address", + "name": "receiver", + "type": "address" }, { - "expression": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "779:5:2" - } - ], - "functionName": { - "name": "validator_revert_t_address", - "nodeType": "YulIdentifier", - "src": "752:26:2" - }, - "nodeType": "YulFunctionCall", - "src": "752:33:2" - }, - "nodeType": "YulExpressionStatement", - "src": "752:33:2" + "indexed": false, + "internalType": "string", + "name": "outputNetwork", + "type": "string" + }, + { + "indexed": false, + "internalType": "string", + "name": "outputAddress", + "type": "string" } - ] - }, - "name": "abi_decode_t_address", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "682:6:2", - "type": "" - }, - { - "name": "end", - "nodeType": "YulTypedName", - "src": "690:3:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "698:5:2", - "type": "" - } ], - "src": "652:139:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "891:226:2", - "statements": [ + "name": "NewContract", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ { - "body": { - "nodeType": "YulBlock", - "src": "940:16:2", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "949:1:2", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "952:1:2", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "942:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "942:12:2" - }, - "nodeType": "YulExpressionStatement", - "src": "942:12:2" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "919:6:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "927:4:2", - "type": "", - "value": "0x1f" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "915:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "915:17:2" - }, - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "934:3:2" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "911:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "911:27:2" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "904:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "904:35:2" - }, - "nodeType": "YulIf", - "src": "901:2:2" + "indexed": false, + "internalType": "bytes32", + "name": "id", + "type": "bytes32" }, { - "nodeType": "YulVariableDeclaration", - "src": "965:34:2", - "value": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "992:6:2" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "979:12:2" - }, - "nodeType": "YulFunctionCall", - "src": "979:20:2" - }, - "variables": [ - { - "name": "length", - "nodeType": "YulTypedName", - "src": "969:6:2", - "type": "" - } - ] + "indexed": false, + "internalType": "bytes32", + "name": "hashLock", + "type": "bytes32" }, { - "nodeType": "YulAssignment", - "src": "1008:103:2", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "1084:6:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1092:4:2", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1080:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "1080:17:2" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "1099:6:2" - }, - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "1107:3:2" - } - ], - "functionName": { - "name": "abi_decode_available_length_t_array$_t_bytes32_$dyn_memory_ptr", - "nodeType": "YulIdentifier", - "src": "1017:62:2" - }, - "nodeType": "YulFunctionCall", - "src": "1017:94:2" - }, - "variableNames": [ - { - "name": "array", - "nodeType": "YulIdentifier", - "src": "1008:5:2" - } - ] - } - ] - }, - "name": "abi_decode_t_array$_t_bytes32_$dyn_memory_ptr", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "869:6:2", - "type": "" - }, - { - "name": "end", - "nodeType": "YulTypedName", - "src": "877:3:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "array", - "nodeType": "YulTypedName", - "src": "885:5:2", - "type": "" - } - ], - "src": "814:303:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1183:77:2", - "statements": [ + "indexed": true, + "internalType": "address", + "name": "tokenAddress", + "type": "address" + }, { - "nodeType": "YulAssignment", - "src": "1193:22:2", - "value": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "1208:6:2" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "1202:5:2" - }, - "nodeType": "YulFunctionCall", - "src": "1202:13:2" - }, - "variableNames": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "1193:5:2" - } - ] + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" }, { - "expression": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "1248:5:2" - } - ], - "functionName": { - "name": "validator_revert_t_bool", - "nodeType": "YulIdentifier", - "src": "1224:23:2" - }, - "nodeType": "YulFunctionCall", - "src": "1224:30:2" - }, - "nodeType": "YulExpressionStatement", - "src": "1224:30:2" + "indexed": true, + "internalType": "address", + "name": "receiver", + "type": "address" } - ] - }, - "name": "abi_decode_t_bool_fromMemory", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "1161:6:2", - "type": "" - }, - { - "name": "end", - "nodeType": "YulTypedName", - "src": "1169:3:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "1177:5:2", - "type": "" - } ], - "src": "1123:137:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1318:87:2", - "statements": [ + "name": "Refund", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ { - "nodeType": "YulAssignment", - "src": "1328:29:2", - "value": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "1350:6:2" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "1337:12:2" - }, - "nodeType": "YulFunctionCall", - "src": "1337:20:2" - }, - "variableNames": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "1328:5:2" - } - ] + "indexed": false, + "internalType": "bytes32", + "name": "id", + "type": "bytes32" }, { - "expression": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "1393:5:2" - } - ], - "functionName": { - "name": "validator_revert_t_bytes32", - "nodeType": "YulIdentifier", - "src": "1366:26:2" - }, - "nodeType": "YulFunctionCall", - "src": "1366:33:2" - }, - "nodeType": "YulExpressionStatement", - "src": "1366:33:2" - } - ] - }, - "name": "abi_decode_t_bytes32", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "1296:6:2", - "type": "" - }, - { - "name": "end", - "nodeType": "YulTypedName", - "src": "1304:3:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "1312:5:2", - "type": "" - } - ], - "src": "1266:139:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1474:80:2", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "1484:22:2", - "value": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "1499:6:2" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "1493:5:2" - }, - "nodeType": "YulFunctionCall", - "src": "1493:13:2" - }, - "variableNames": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "1484:5:2" - } - ] + "indexed": false, + "internalType": "bytes32", + "name": "secret", + "type": "bytes32" }, { - "expression": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "1542:5:2" - } - ], - "functionName": { - "name": "validator_revert_t_bytes32", - "nodeType": "YulIdentifier", - "src": "1515:26:2" - }, - "nodeType": "YulFunctionCall", - "src": "1515:33:2" - }, - "nodeType": "YulExpressionStatement", - "src": "1515:33:2" - } - ] - }, - "name": "abi_decode_t_bytes32_fromMemory", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "1452:6:2", - "type": "" - }, - { - "name": "end", - "nodeType": "YulTypedName", - "src": "1460:3:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "1468:5:2", - "type": "" - } - ], - "src": "1411:143:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1649:277:2", - "statements": [ + "indexed": false, + "internalType": "bytes32", + "name": "hashLock", + "type": "bytes32" + }, { - "body": { - "nodeType": "YulBlock", - "src": "1698:16:2", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1707:1:2", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1710:1:2", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "1700:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "1700:12:2" - }, - "nodeType": "YulExpressionStatement", - "src": "1700:12:2" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "1677:6:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1685:4:2", - "type": "", - "value": "0x1f" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1673:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "1673:17:2" - }, - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "1692:3:2" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "1669:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "1669:27:2" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "1662:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "1662:35:2" - }, - "nodeType": "YulIf", - "src": "1659:2:2" + "indexed": true, + "internalType": "address", + "name": "tokenAddress", + "type": "address" }, { - "nodeType": "YulAssignment", - "src": "1723:30:2", - "value": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "1746:6:2" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "1733:12:2" - }, - "nodeType": "YulFunctionCall", - "src": "1733:20:2" - }, - "variableNames": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "1723:6:2" - } - ] + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" }, { - "body": { - "nodeType": "YulBlock", - "src": "1796:16:2", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1805:1:2", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1808:1:2", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "1798:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "1798:12:2" - }, - "nodeType": "YulExpressionStatement", - "src": "1798:12:2" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "1768:6:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1776:18:2", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "1765:2:2" - }, - "nodeType": "YulFunctionCall", - "src": "1765:30:2" - }, - "nodeType": "YulIf", - "src": "1762:2:2" - }, + "indexed": true, + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "Withdraw", + "type": "event" + }, + { + "inputs": [], + "name": "ACTIVE", + "outputs": [ { - "nodeType": "YulAssignment", - "src": "1821:29:2", - "value": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "1837:6:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1845:4:2", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1833:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "1833:17:2" - }, - "variableNames": [ - { - "name": "arrayPos", - "nodeType": "YulIdentifier", - "src": "1821:8:2" - } - ] - }, + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "EXPIRED", + "outputs": [ { - "body": { - "nodeType": "YulBlock", - "src": "1904:16:2", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1913:1:2", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1916:1:2", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "1906:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "1906:12:2" - }, - "nodeType": "YulExpressionStatement", - "src": "1906:12:2" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "arrayPos", - "nodeType": "YulIdentifier", - "src": "1869:8:2" - }, - { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "1883:6:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1891:4:2", - "type": "", - "value": "0x01" - } - ], - "functionName": { - "name": "mul", - "nodeType": "YulIdentifier", - "src": "1879:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "1879:17:2" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1865:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "1865:32:2" - }, - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "1899:3:2" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "1862:2:2" - }, - "nodeType": "YulFunctionCall", - "src": "1862:41:2" - }, - "nodeType": "YulIf", - "src": "1859:2:2" + "internalType": "uint256", + "name": "", + "type": "uint256" } - ] - }, - "name": "abi_decode_t_string_calldata_ptr", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "1616:6:2", - "type": "" - }, - { - "name": "end", - "nodeType": "YulTypedName", - "src": "1624:3:2", - "type": "" - } ], - "returnVariables": [ - { - "name": "arrayPos", - "nodeType": "YulTypedName", - "src": "1632:8:2", - "type": "" - }, - { - "name": "length", - "nodeType": "YulTypedName", - "src": "1642:6:2", - "type": "" - } + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "INVALID", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } ], - "src": "1574:352:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1984:87:2", - "statements": [ + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "REFUNDED", + "outputs": [ { - "nodeType": "YulAssignment", - "src": "1994:29:2", - "value": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "2016:6:2" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "2003:12:2" - }, - "nodeType": "YulFunctionCall", - "src": "2003:20:2" - }, - "variableNames": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "1994:5:2" - } - ] - }, + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "WITHDRAWN", + "outputs": [ { - "expression": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "2059:5:2" - } - ], - "functionName": { - "name": "validator_revert_t_uint256", - "nodeType": "YulIdentifier", - "src": "2032:26:2" - }, - "nodeType": "YulFunctionCall", - "src": "2032:33:2" - }, - "nodeType": "YulExpressionStatement", - "src": "2032:33:2" + "internalType": "uint256", + "name": "", + "type": "uint256" } - ] - }, - "name": "abi_decode_t_uint256", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "1962:6:2", - "type": "" - }, - { - "name": "end", - "nodeType": "YulTypedName", - "src": "1970:3:2", - "type": "" - } ], - "returnVariables": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "1978:5:2", - "type": "" - } + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } ], - "src": "1932:139:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "2168:314:2", - "statements": [ + "name": "contracts", + "outputs": [ { - "body": { - "nodeType": "YulBlock", - "src": "2214:16:2", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2223:1:2", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2226:1:2", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "2216:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "2216:12:2" - }, - "nodeType": "YulExpressionStatement", - "src": "2216:12:2" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "2189:7:2" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "2198:9:2" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "2185:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "2185:23:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2210:2:2", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "2181:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "2181:32:2" - }, - "nodeType": "YulIf", - "src": "2178:2:2" + "internalType": "uint256", + "name": "inputAmount", + "type": "uint256" }, { - "nodeType": "YulBlock", - "src": "2240:235:2", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "2255:45:2", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "2286:9:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2297:1:2", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2282:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "2282:17:2" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "2269:12:2" - }, - "nodeType": "YulFunctionCall", - "src": "2269:31:2" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "2259:6:2", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "2347:16:2", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2356:1:2", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2359:1:2", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "2349:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "2349:12:2" - }, - "nodeType": "YulExpressionStatement", - "src": "2349:12:2" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "2319:6:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2327:18:2", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "2316:2:2" - }, - "nodeType": "YulFunctionCall", - "src": "2316:30:2" - }, - "nodeType": "YulIf", - "src": "2313:2:2" - }, - { - "nodeType": "YulAssignment", - "src": "2377:88:2", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "2437:9:2" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "2448:6:2" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2433:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "2433:22:2" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "2457:7:2" - } - ], - "functionName": { - "name": "abi_decode_t_array$_t_bytes32_$dyn_memory_ptr", - "nodeType": "YulIdentifier", - "src": "2387:45:2" - }, - "nodeType": "YulFunctionCall", - "src": "2387:78:2" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "2377:6:2" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_array$_t_bytes32_$dyn_memory_ptr", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "2138:9:2", - "type": "" - }, - { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "2149:7:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "2161:6:2", - "type": "" - } - ], - "src": "2077:405:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "2562:204:2", - "statements": [ + "internalType": "uint256", + "name": "outputAmount", + "type": "uint256" + }, { - "body": { - "nodeType": "YulBlock", - "src": "2608:16:2", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2617:1:2", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2620:1:2", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "2610:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "2610:12:2" - }, - "nodeType": "YulExpressionStatement", - "src": "2610:12:2" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "2583:7:2" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "2592:9:2" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "2579:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "2579:23:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2604:2:2", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "2575:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "2575:32:2" - }, - "nodeType": "YulIf", - "src": "2572:2:2" + "internalType": "uint256", + "name": "expiration", + "type": "uint256" }, { - "nodeType": "YulBlock", - "src": "2634:125:2", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "2649:15:2", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2663:1:2", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "2653:6:2", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "2678:71:2", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "2721:9:2" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "2732:6:2" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2717:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "2717:22:2" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "2741:7:2" - } - ], - "functionName": { - "name": "abi_decode_t_bool_fromMemory", - "nodeType": "YulIdentifier", - "src": "2688:28:2" - }, - "nodeType": "YulFunctionCall", - "src": "2688:61:2" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "2678:6:2" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_bool_fromMemory", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "2532:9:2", - "type": "" - }, - { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "2543:7:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "2555:6:2", - "type": "" - } - ], - "src": "2488:278:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "2838:196:2", - "statements": [ + "internalType": "uint256", + "name": "status", + "type": "uint256" + }, { - "body": { - "nodeType": "YulBlock", - "src": "2884:16:2", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2893:1:2", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2896:1:2", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "2886:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "2886:12:2" - }, - "nodeType": "YulExpressionStatement", - "src": "2886:12:2" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "2859:7:2" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "2868:9:2" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "2855:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "2855:23:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2880:2:2", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "2851:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "2851:32:2" - }, - "nodeType": "YulIf", - "src": "2848:2:2" + "internalType": "bytes32", + "name": "hashLock", + "type": "bytes32" }, { - "nodeType": "YulBlock", - "src": "2910:117:2", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "2925:15:2", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2939:1:2", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "2929:6:2", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "2954:63:2", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "2989:9:2" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "3000:6:2" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2985:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "2985:22:2" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "3009:7:2" - } - ], - "functionName": { - "name": "abi_decode_t_bytes32", - "nodeType": "YulIdentifier", - "src": "2964:20:2" - }, - "nodeType": "YulFunctionCall", - "src": "2964:53:2" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "2954:6:2" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_bytes32", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "2808:9:2", - "type": "" - }, - { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "2819:7:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "2831:6:2", - "type": "" - } - ], - "src": "2772:262:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "3117:207:2", - "statements": [ + "internalType": "address", + "name": "tokenAddress", + "type": "address" + }, { - "body": { - "nodeType": "YulBlock", - "src": "3163:16:2", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3172:1:2", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3175:1:2", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "3165:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "3165:12:2" - }, - "nodeType": "YulExpressionStatement", - "src": "3165:12:2" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "3138:7:2" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3147:9:2" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "3134:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "3134:23:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3159:2:2", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "3130:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "3130:32:2" - }, - "nodeType": "YulIf", - "src": "3127:2:2" + "internalType": "address", + "name": "sender", + "type": "address" }, { - "nodeType": "YulBlock", - "src": "3189:128:2", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "3204:15:2", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3218:1:2", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "3208:6:2", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "3233:74:2", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3279:9:2" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "3290:6:2" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3275:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "3275:22:2" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "3299:7:2" - } - ], - "functionName": { - "name": "abi_decode_t_bytes32_fromMemory", - "nodeType": "YulIdentifier", - "src": "3243:31:2" - }, - "nodeType": "YulFunctionCall", - "src": "3243:64:2" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "3233:6:2" - } - ] - } - ] + "internalType": "address", + "name": "receiver", + "type": "address" + }, + { + "internalType": "string", + "name": "outputNetwork", + "type": "string" + }, + { + "internalType": "string", + "name": "outputAddress", + "type": "string" } - ] - }, - "name": "abi_decode_tuple_t_bytes32_fromMemory", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "3087:9:2", - "type": "" - }, - { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "3098:7:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "3110:6:2", - "type": "" - } ], - "src": "3040:284:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "3413:324:2", - "statements": [ + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ { - "body": { - "nodeType": "YulBlock", - "src": "3459:16:2", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3468:1:2", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3471:1:2", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "3461:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "3461:12:2" - }, - "nodeType": "YulExpressionStatement", - "src": "3461:12:2" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "3434:7:2" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3443:9:2" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "3430:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "3430:23:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3455:2:2", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "3426:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "3426:32:2" - }, - "nodeType": "YulIf", - "src": "3423:2:2" - }, + "internalType": "bytes32", + "name": "id", + "type": "bytes32" + } + ], + "name": "getSingleStatus", + "outputs": [ { - "nodeType": "YulBlock", - "src": "3485:117:2", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "3500:15:2", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3514:1:2", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "3504:6:2", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "3529:63:2", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3564:9:2" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "3575:6:2" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3560:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "3560:22:2" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "3584:7:2" - } - ], - "functionName": { - "name": "abi_decode_t_bytes32", - "nodeType": "YulIdentifier", - "src": "3539:20:2" - }, - "nodeType": "YulFunctionCall", - "src": "3539:53:2" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "3529:6:2" - } - ] - } - ] - }, + "internalType": "uint256", + "name": "result", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ { - "nodeType": "YulBlock", - "src": "3612:118:2", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "3627:16:2", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3641:2:2", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "3631:6:2", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "3657:63:2", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3692:9:2" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "3703:6:2" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3688:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "3688:22:2" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "3712:7:2" - } - ], - "functionName": { - "name": "abi_decode_t_bytes32", - "nodeType": "YulIdentifier", - "src": "3667:20:2" - }, - "nodeType": "YulFunctionCall", - "src": "3667:53:2" - }, - "variableNames": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "3657:6:2" - } - ] - } - ] + "internalType": "bytes32[]", + "name": "ids", + "type": "bytes32[]" } - ] - }, - "name": "abi_decode_tuple_t_bytes32t_bytes32", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "3375:9:2", - "type": "" - }, - { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "3386:7:2", - "type": "" - } ], - "returnVariables": [ - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "3398:6:2", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "3406:6:2", - "type": "" - } + "name": "getStatus", + "outputs": [ + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + } ], - "src": "3330:407:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "3968:1323:2", - "statements": [ + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ { - "body": { - "nodeType": "YulBlock", - "src": "4015:16:2", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4024:1:2", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4027:1:2", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "4017:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "4017:12:2" - }, - "nodeType": "YulExpressionStatement", - "src": "4017:12:2" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "3989:7:2" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3998:9:2" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "3985:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "3985:23:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4010:3:2", - "type": "", - "value": "256" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "3981:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "3981:33:2" - }, - "nodeType": "YulIf", - "src": "3978:2:2" + "internalType": "uint256", + "name": "inputAmount", + "type": "uint256" }, { - "nodeType": "YulBlock", - "src": "4041:117:2", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "4056:15:2", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4070:1:2", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "4060:6:2", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "4085:63:2", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4120:9:2" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "4131:6:2" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4116:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "4116:22:2" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "4140:7:2" - } - ], - "functionName": { - "name": "abi_decode_t_uint256", - "nodeType": "YulIdentifier", - "src": "4095:20:2" - }, - "nodeType": "YulFunctionCall", - "src": "4095:53:2" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "4085:6:2" - } - ] - } - ] + "internalType": "uint256", + "name": "outputAmount", + "type": "uint256" }, { - "nodeType": "YulBlock", - "src": "4168:118:2", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "4183:16:2", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4197:2:2", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "4187:6:2", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "4213:63:2", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4248:9:2" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "4259:6:2" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4244:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "4244:22:2" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "4268:7:2" - } - ], - "functionName": { - "name": "abi_decode_t_uint256", - "nodeType": "YulIdentifier", - "src": "4223:20:2" - }, - "nodeType": "YulFunctionCall", - "src": "4223:53:2" - }, - "variableNames": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "4213:6:2" - } - ] - } - ] + "internalType": "uint256", + "name": "expiration", + "type": "uint256" }, { - "nodeType": "YulBlock", - "src": "4296:118:2", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "4311:16:2", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4325:2:2", - "type": "", - "value": "64" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "4315:6:2", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "4341:63:2", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4376:9:2" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "4387:6:2" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4372:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "4372:22:2" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "4396:7:2" - } - ], - "functionName": { - "name": "abi_decode_t_uint256", - "nodeType": "YulIdentifier", - "src": "4351:20:2" - }, - "nodeType": "YulFunctionCall", - "src": "4351:53:2" - }, - "variableNames": [ - { - "name": "value2", - "nodeType": "YulIdentifier", - "src": "4341:6:2" - } - ] - } - ] + "internalType": "bytes32", + "name": "hashLock", + "type": "bytes32" }, { - "nodeType": "YulBlock", - "src": "4424:118:2", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "4439:16:2", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4453:2:2", - "type": "", - "value": "96" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "4443:6:2", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "4469:63:2", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4504:9:2" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "4515:6:2" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4500:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "4500:22:2" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "4524:7:2" - } - ], - "functionName": { - "name": "abi_decode_t_bytes32", - "nodeType": "YulIdentifier", - "src": "4479:20:2" - }, - "nodeType": "YulFunctionCall", - "src": "4479:53:2" - }, - "variableNames": [ - { - "name": "value3", - "nodeType": "YulIdentifier", - "src": "4469:6:2" - } - ] - } - ] + "internalType": "address", + "name": "tokenAddress", + "type": "address" }, { - "nodeType": "YulBlock", - "src": "4552:119:2", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "4567:17:2", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4581:3:2", - "type": "", - "value": "128" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "4571:6:2", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "4598:63:2", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4633:9:2" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "4644:6:2" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4629:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "4629:22:2" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "4653:7:2" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nodeType": "YulIdentifier", - "src": "4608:20:2" - }, - "nodeType": "YulFunctionCall", - "src": "4608:53:2" - }, - "variableNames": [ - { - "name": "value4", - "nodeType": "YulIdentifier", - "src": "4598:6:2" - } - ] - } - ] + "internalType": "address", + "name": "receiver", + "type": "address" }, { - "nodeType": "YulBlock", - "src": "4681:119:2", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "4696:17:2", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4710:3:2", - "type": "", - "value": "160" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "4700:6:2", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "4727:63:2", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4762:9:2" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "4773:6:2" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4758:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "4758:22:2" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "4782:7:2" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nodeType": "YulIdentifier", - "src": "4737:20:2" - }, - "nodeType": "YulFunctionCall", - "src": "4737:53:2" - }, - "variableNames": [ - { - "name": "value5", - "nodeType": "YulIdentifier", - "src": "4727:6:2" - } - ] - } - ] + "internalType": "string", + "name": "outputNetwork", + "type": "string" }, { - "nodeType": "YulBlock", - "src": "4810:232:2", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "4825:47:2", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4856:9:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4867:3:2", - "type": "", - "value": "192" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4852:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "4852:19:2" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "4839:12:2" - }, - "nodeType": "YulFunctionCall", - "src": "4839:33:2" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "4829:6:2", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "4919:16:2", - "statements": [ - { - "expression": { - "arguments": [ + "internalType": "string", + "name": "outputAddress", + "type": "string" + } + ], + "name": "newContract", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "id", + "type": "bytes32" + } + ], + "name": "refund", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "id", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "secret", + "type": "bytes32" + } + ], + "name": "withdraw", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"inputAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"outputAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"hashLock\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"outputNetwork\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"outputAddress\",\"type\":\"string\"}],\"name\":\"NewContract\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"hashLock\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"Refund\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"secret\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"hashLock\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ACTIVE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"EXPIRED\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"INVALID\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"REFUNDED\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WITHDRAWN\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"contracts\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"inputAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"outputAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"status\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"hashLock\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"outputNetwork\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"outputAddress\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"getSingleStatus\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"ids\",\"type\":\"bytes32[]\"}],\"name\":\"getStatus\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"inputAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"outputAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"hashLock\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"outputNetwork\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"outputAddress\",\"type\":\"string\"}],\"name\":\"newContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"refund\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"secret\",\"type\":\"bytes32\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/peter/a/cacti-1/packages/cactus-plugin-htlc-eth-besu-erc20/src/main/solidity/contracts/HashedTimeLockContract.sol\":\"HashedTimeLockContract\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/peter/a/cacti-1/packages/cactus-plugin-htlc-eth-besu-erc20/src/main/solidity/contracts/HashedTimeLockContract.sol\":{\"keccak256\":\"0x47e31bd971d3cb9d37bfb8e78845eb7b4f446a1d83eb596e7e035d8a9caeff8e\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c61cf12cdaa3991b644bd0578c176b3fc5c6c8bb975964a5f41095cad4499024\",\"dweb:/ipfs/QmZRmrEMccT28ZnQUL57Zsf7NgcowUVZjVxqw8Y5vLrptG\"]}},\"version\":1}", + "bytecode": "608060405234801561001057600080fd5b506111dd806100206000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c806394e15c8f1161007157806394e15c8f1461011d578063af78feef14610125578063c90bd0471461012d578063d2fd8b7614610135578063ec56a37314610148578063fbdf3b431461017157600080fd5b80632f21a663146100ae578063414ac85b146100d757806363615149146100ed5780637249fbb6146101025780637fcce2a914610115575b600080fd5b6100c16100bc366004610c3e565b610184565b6040516100ce9190610cfc565b60405180910390f35b6100df600481565b6040519081526020016100ce565b6101006100fb366004610d40565b610232565b005b610100610110366004610d62565b610407565b6100df600081565b6100df600281565b6100df600381565b6100df600181565b610100610143366004610de0565b61056d565b61015b610156366004610d62565b6108e1565b6040516100ce9a99989796959493929190610ee1565b6100df61017f366004610d62565b610a52565b60606000825167ffffffffffffffff8111156101a2576101a2610c28565b6040519080825280602002602001820160405280156101cb578160200160208202803683370190505b50905060005b835181101561022b576101fc8482815181106101ef576101ef610f5a565b6020026020010151610a52565b82828151811061020e5761020e610f5a565b60209081029190910101528061022381610f70565b9150506101d1565b5092915050565b6000828152602081905260409020600381015460011461028b5760405162461bcd60e51b815260206004820152600f60248201526e535741505f4e4f545f41435449564560881b60448201526064015b60405180910390fd5b428160020154116102ae5760405162461bcd60e51b815260040161028290610f97565b604080516020810184905201604051602081830303815290604052805190602001208160040154146103135760405162461bcd60e51b815260206004820152600e60248201526d1253959053125117d4d150d4915560921b6044820152606401610282565b60038181015560058101546007820154825460405163a9059cbb60e01b81526001600160a01b039283166004820152602481019190915291169063a9059cbb906044016020604051808303816000875af1158015610375573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103999190610fbd565b506007810154600682015460058301546004840154604080518881526020810188905280820192909252516001600160a01b039485169493841693909216917fbab3eb11a71b2cd82a010d4d5b2c3df5cd25ee8c9f1a75baff879a1b87942cb89181900360600190a4505050565b6000818152602081905260409020600381015460011461045b5760405162461bcd60e51b815260206004820152600f60248201526e535741505f4e4f545f41435449564560881b6044820152606401610282565b428160020154111561047f5760405162461bcd60e51b815260040161028290610f97565b6002600382015560058101546006820154825460405163a9059cbb60e01b81526001600160a01b039283166004820152602481019190915291169063a9059cbb906044016020604051808303816000875af11580156104e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105069190610fbd565b5060078101546006820154600583015460048401546040805187815260208101929092526001600160a01b039485169493841693909216917f0d4cdc2fe2a785f03bf5481e13bee5cdcb7743166bcadafebfd3f09db6108117910160405180910390a45050565b42881161058c5760405162461bcd60e51b815260040161028290610f97565b60008a116105cd5760405162461bcd60e51b815260206004820152600e60248201526d1253959053125117d05353d5539560921b6044820152606401610282565b6040516323b872dd60e01b8152336004820152306024820152604481018b90526001600160a01b038716906323b872dd906064016020604051808303816000875af1158015610620573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106449190610fbd565b50604080513360208201526001600160a01b0380881692820192909252606081018c90526080810189905260a081018a905290871660c082015260009060e00160408051601f198184030181529181528151602092830120600081815292839052912060030154909150156106e95760405162461bcd60e51b815260206004820152600b60248201526a535741505f45584953545360a81b6044820152606401610282565b6040518061014001604052808c81526020018b81526020018a815260200160018152602001898152602001886001600160a01b03168152602001336001600160a01b03168152602001876001600160a01b0316815260200186868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250604080516020601f8701819004810282018101909252858152918101919086908690819084018382808284376000920182905250939094525050838152602081815260409182902084518155908401516001820155908301516002820155606083015160038201556080830151600482015560a08301516005820180546001600160a01b039283166001600160a01b03199182161790915560c085015160068401805491841691831691909117905560e085015160078401805491909316911617905561010083015190915060088201906108559082611069565b50610120820151600982019061086b9082611069565b50905050856001600160a01b0316336001600160a01b0316886001600160a01b03167f448581ece7da63e54a320119f9f2b80c868a954c441e70c88ecdfc95919751248e8e8e878f8d8d8d8d6040516108cc99989796959493929190611152565b60405180910390a45050505050505050505050565b600060208190529081526040902080546001820154600283015460038401546004850154600586015460068701546007880154600889018054989997989697959694956001600160a01b0394851695938516949092169261094190610fe6565b80601f016020809104026020016040519081016040528092919081815260200182805461096d90610fe6565b80156109ba5780601f1061098f576101008083540402835291602001916109ba565b820191906000526020600020905b81548152906001019060200180831161099d57829003601f168201915b5050505050908060090180546109cf90610fe6565b80601f01602080910402602001604051908101604052809291908181526020018280546109fb90610fe6565b8015610a485780601f10610a1d57610100808354040283529160200191610a48565b820191906000526020600020905b815481529060010190602001808311610a2b57829003601f168201915b505050505090508a565b60008181526020818152604080832081516101408101835281548152600182015493810193909352600281015491830191909152600381015460608301526004810154608083015260058101546001600160a01b0390811660a08401526006820154811660c084015260078201541660e083015260088101805484939291610100840191610adf90610fe6565b80601f0160208091040260200160405190810160405280929190818152602001828054610b0b90610fe6565b8015610b585780601f10610b2d57610100808354040283529160200191610b58565b820191906000526020600020905b815481529060010190602001808311610b3b57829003601f168201915b50505050508152602001600982018054610b7190610fe6565b80601f0160208091040260200160405190810160405280929190818152602001828054610b9d90610fe6565b8015610bea5780601f10610bbf57610100808354040283529160200191610bea565b820191906000526020600020905b815481529060010190602001808311610bcd57829003601f168201915b505050505081525050905060018160600151148015610c0c5750428160400151105b15610c1a5760049150610c22565b806060015191505b50919050565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215610c5157600080fd5b823567ffffffffffffffff80821115610c6957600080fd5b818501915085601f830112610c7d57600080fd5b813581811115610c8f57610c8f610c28565b8060051b604051601f19603f83011681018181108582111715610cb457610cb4610c28565b604052918252848201925083810185019188831115610cd257600080fd5b938501935b82851015610cf057843584529385019392850192610cd7565b98975050505050505050565b6020808252825182820181905260009190848201906040850190845b81811015610d3457835183529284019291840191600101610d18565b50909695505050505050565b60008060408385031215610d5357600080fd5b50508035926020909101359150565b600060208284031215610d7457600080fd5b5035919050565b80356001600160a01b0381168114610d9257600080fd5b919050565b60008083601f840112610da957600080fd5b50813567ffffffffffffffff811115610dc157600080fd5b602083019150836020828501011115610dd957600080fd5b9250929050565b6000806000806000806000806000806101008b8d031215610e0057600080fd5b8a35995060208b0135985060408b0135975060608b01359650610e2560808c01610d7b565b9550610e3360a08c01610d7b565b945060c08b013567ffffffffffffffff80821115610e5057600080fd5b610e5c8e838f01610d97565b909650945060e08d0135915080821115610e7557600080fd5b50610e828d828e01610d97565b915080935050809150509295989b9194979a5092959850565b6000815180845260005b81811015610ec157602081850181015186830182015201610ea5565b506000602082860101526020601f19601f83011685010191505092915050565b60006101408c83528b60208401528a604084015289606084015288608084015260018060a01b0380891660a085015280881660c085015280871660e08501525080610100840152610f3481840186610e9b565b9050828103610120840152610f498185610e9b565b9d9c50505050505050505050505050565b634e487b7160e01b600052603260045260246000fd5b600060018201610f9057634e487b7160e01b600052601160045260246000fd5b5060010190565b6020808252600c908201526b494e56414c49445f54494d4560a01b604082015260600190565b600060208284031215610fcf57600080fd5b81518015158114610fdf57600080fd5b9392505050565b600181811c90821680610ffa57607f821691505b602082108103610c2257634e487b7160e01b600052602260045260246000fd5b601f82111561106457600081815260208120601f850160051c810160208610156110415750805b601f850160051c820191505b818110156110605782815560010161104d565b5050505b505050565b815167ffffffffffffffff81111561108357611083610c28565b611097816110918454610fe6565b8461101a565b602080601f8311600181146110cc57600084156110b45750858301515b600019600386901b1c1916600185901b178555611060565b600085815260208120601f198616915b828110156110fb578886015182559484019460019091019084016110dc565b50858210156111195787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b89815288602082015287604082015286606082015285608082015260e060a0820152600061118460e083018688611129565b82810360c0840152611197818587611129565b9c9b50505050505050505050505056fea26469706673582212205eae60be9c1c08bbd70551f1fad9ddf248e60861c2744f3f84860dae3dbdddb464736f6c63430008130033", + "deployedBytecode": "608060405234801561001057600080fd5b50600436106100a95760003560e01c806394e15c8f1161007157806394e15c8f1461011d578063af78feef14610125578063c90bd0471461012d578063d2fd8b7614610135578063ec56a37314610148578063fbdf3b431461017157600080fd5b80632f21a663146100ae578063414ac85b146100d757806363615149146100ed5780637249fbb6146101025780637fcce2a914610115575b600080fd5b6100c16100bc366004610c3e565b610184565b6040516100ce9190610cfc565b60405180910390f35b6100df600481565b6040519081526020016100ce565b6101006100fb366004610d40565b610232565b005b610100610110366004610d62565b610407565b6100df600081565b6100df600281565b6100df600381565b6100df600181565b610100610143366004610de0565b61056d565b61015b610156366004610d62565b6108e1565b6040516100ce9a99989796959493929190610ee1565b6100df61017f366004610d62565b610a52565b60606000825167ffffffffffffffff8111156101a2576101a2610c28565b6040519080825280602002602001820160405280156101cb578160200160208202803683370190505b50905060005b835181101561022b576101fc8482815181106101ef576101ef610f5a565b6020026020010151610a52565b82828151811061020e5761020e610f5a565b60209081029190910101528061022381610f70565b9150506101d1565b5092915050565b6000828152602081905260409020600381015460011461028b5760405162461bcd60e51b815260206004820152600f60248201526e535741505f4e4f545f41435449564560881b60448201526064015b60405180910390fd5b428160020154116102ae5760405162461bcd60e51b815260040161028290610f97565b604080516020810184905201604051602081830303815290604052805190602001208160040154146103135760405162461bcd60e51b815260206004820152600e60248201526d1253959053125117d4d150d4915560921b6044820152606401610282565b60038181015560058101546007820154825460405163a9059cbb60e01b81526001600160a01b039283166004820152602481019190915291169063a9059cbb906044016020604051808303816000875af1158015610375573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103999190610fbd565b506007810154600682015460058301546004840154604080518881526020810188905280820192909252516001600160a01b039485169493841693909216917fbab3eb11a71b2cd82a010d4d5b2c3df5cd25ee8c9f1a75baff879a1b87942cb89181900360600190a4505050565b6000818152602081905260409020600381015460011461045b5760405162461bcd60e51b815260206004820152600f60248201526e535741505f4e4f545f41435449564560881b6044820152606401610282565b428160020154111561047f5760405162461bcd60e51b815260040161028290610f97565b6002600382015560058101546006820154825460405163a9059cbb60e01b81526001600160a01b039283166004820152602481019190915291169063a9059cbb906044016020604051808303816000875af11580156104e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105069190610fbd565b5060078101546006820154600583015460048401546040805187815260208101929092526001600160a01b039485169493841693909216917f0d4cdc2fe2a785f03bf5481e13bee5cdcb7743166bcadafebfd3f09db6108117910160405180910390a45050565b42881161058c5760405162461bcd60e51b815260040161028290610f97565b60008a116105cd5760405162461bcd60e51b815260206004820152600e60248201526d1253959053125117d05353d5539560921b6044820152606401610282565b6040516323b872dd60e01b8152336004820152306024820152604481018b90526001600160a01b038716906323b872dd906064016020604051808303816000875af1158015610620573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106449190610fbd565b50604080513360208201526001600160a01b0380881692820192909252606081018c90526080810189905260a081018a905290871660c082015260009060e00160408051601f198184030181529181528151602092830120600081815292839052912060030154909150156106e95760405162461bcd60e51b815260206004820152600b60248201526a535741505f45584953545360a81b6044820152606401610282565b6040518061014001604052808c81526020018b81526020018a815260200160018152602001898152602001886001600160a01b03168152602001336001600160a01b03168152602001876001600160a01b0316815260200186868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250604080516020601f8701819004810282018101909252858152918101919086908690819084018382808284376000920182905250939094525050838152602081815260409182902084518155908401516001820155908301516002820155606083015160038201556080830151600482015560a08301516005820180546001600160a01b039283166001600160a01b03199182161790915560c085015160068401805491841691831691909117905560e085015160078401805491909316911617905561010083015190915060088201906108559082611069565b50610120820151600982019061086b9082611069565b50905050856001600160a01b0316336001600160a01b0316886001600160a01b03167f448581ece7da63e54a320119f9f2b80c868a954c441e70c88ecdfc95919751248e8e8e878f8d8d8d8d6040516108cc99989796959493929190611152565b60405180910390a45050505050505050505050565b600060208190529081526040902080546001820154600283015460038401546004850154600586015460068701546007880154600889018054989997989697959694956001600160a01b0394851695938516949092169261094190610fe6565b80601f016020809104026020016040519081016040528092919081815260200182805461096d90610fe6565b80156109ba5780601f1061098f576101008083540402835291602001916109ba565b820191906000526020600020905b81548152906001019060200180831161099d57829003601f168201915b5050505050908060090180546109cf90610fe6565b80601f01602080910402602001604051908101604052809291908181526020018280546109fb90610fe6565b8015610a485780601f10610a1d57610100808354040283529160200191610a48565b820191906000526020600020905b815481529060010190602001808311610a2b57829003601f168201915b505050505090508a565b60008181526020818152604080832081516101408101835281548152600182015493810193909352600281015491830191909152600381015460608301526004810154608083015260058101546001600160a01b0390811660a08401526006820154811660c084015260078201541660e083015260088101805484939291610100840191610adf90610fe6565b80601f0160208091040260200160405190810160405280929190818152602001828054610b0b90610fe6565b8015610b585780601f10610b2d57610100808354040283529160200191610b58565b820191906000526020600020905b815481529060010190602001808311610b3b57829003601f168201915b50505050508152602001600982018054610b7190610fe6565b80601f0160208091040260200160405190810160405280929190818152602001828054610b9d90610fe6565b8015610bea5780601f10610bbf57610100808354040283529160200191610bea565b820191906000526020600020905b815481529060010190602001808311610bcd57829003601f168201915b505050505081525050905060018160600151148015610c0c5750428160400151105b15610c1a5760049150610c22565b806060015191505b50919050565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215610c5157600080fd5b823567ffffffffffffffff80821115610c6957600080fd5b818501915085601f830112610c7d57600080fd5b813581811115610c8f57610c8f610c28565b8060051b604051601f19603f83011681018181108582111715610cb457610cb4610c28565b604052918252848201925083810185019188831115610cd257600080fd5b938501935b82851015610cf057843584529385019392850192610cd7565b98975050505050505050565b6020808252825182820181905260009190848201906040850190845b81811015610d3457835183529284019291840191600101610d18565b50909695505050505050565b60008060408385031215610d5357600080fd5b50508035926020909101359150565b600060208284031215610d7457600080fd5b5035919050565b80356001600160a01b0381168114610d9257600080fd5b919050565b60008083601f840112610da957600080fd5b50813567ffffffffffffffff811115610dc157600080fd5b602083019150836020828501011115610dd957600080fd5b9250929050565b6000806000806000806000806000806101008b8d031215610e0057600080fd5b8a35995060208b0135985060408b0135975060608b01359650610e2560808c01610d7b565b9550610e3360a08c01610d7b565b945060c08b013567ffffffffffffffff80821115610e5057600080fd5b610e5c8e838f01610d97565b909650945060e08d0135915080821115610e7557600080fd5b50610e828d828e01610d97565b915080935050809150509295989b9194979a5092959850565b6000815180845260005b81811015610ec157602081850181015186830182015201610ea5565b506000602082860101526020601f19601f83011685010191505092915050565b60006101408c83528b60208401528a604084015289606084015288608084015260018060a01b0380891660a085015280881660c085015280871660e08501525080610100840152610f3481840186610e9b565b9050828103610120840152610f498185610e9b565b9d9c50505050505050505050505050565b634e487b7160e01b600052603260045260246000fd5b600060018201610f9057634e487b7160e01b600052601160045260246000fd5b5060010190565b6020808252600c908201526b494e56414c49445f54494d4560a01b604082015260600190565b600060208284031215610fcf57600080fd5b81518015158114610fdf57600080fd5b9392505050565b600181811c90821680610ffa57607f821691505b602082108103610c2257634e487b7160e01b600052602260045260246000fd5b601f82111561106457600081815260208120601f850160051c810160208610156110415750805b601f850160051c820191505b818110156110605782815560010161104d565b5050505b505050565b815167ffffffffffffffff81111561108357611083610c28565b611097816110918454610fe6565b8461101a565b602080601f8311600181146110cc57600084156110b45750858301515b600019600386901b1c1916600185901b178555611060565b600085815260208120601f198616915b828110156110fb578886015182559484019460019091019084016110dc565b50858210156111195787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b89815288602082015287604082015286606082015285608082015260e060a0820152600061118460e083018688611129565b82810360c0840152611197818587611129565b9c9b50505050505050505050505056fea26469706673582212205eae60be9c1c08bbd70551f1fad9ddf248e60861c2744f3f84860dae3dbdddb464736f6c63430008130033", + "sourceMap": "14086:4776:0:-:0;;;;;;;;;;;;;;;;;;;", + "deployedSourceMap": "14086:4776:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18160:331;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14657:35;;14691:1;14657:35;;;;;2049:25:1;;;2037:2;2022:18;14657:35:0;1903:177:1;17131:628:0;;;;;;:::i;:::-;;:::i;:::-;;17765:389;;;;;;:::i;:::-;;:::i;14326:35::-;;14360:1;14326:35;;14499:36;;14534:1;14499:36;;14577:37;;14613:1;14577:37;;14410:34;;14443:1;14410:34;;15753:1372;;;;;;:::i;:::-;;:::i;14156:49::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;:::i;18497:363::-;;;;;;:::i;:::-;;:::i;18160:331::-;18246:16;18278:23;18318:3;:10;18304:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18304:25:0;;18278:51;;18345:13;18340:121;18372:3;:10;18364:5;:18;18340:121;;;18423:27;18439:3;18443:5;18439:10;;;;;;;;:::i;:::-;;;;;;;18423:15;:27::i;:::-;18407:6;18414:5;18407:13;;;;;;;;:::i;:::-;;;;;;;;;;:43;18384:7;;;;:::i;:::-;;;;18340:121;;;-1:-1:-1;18478:6:0;18160:331;-1:-1:-1;;18160:331:0:o;17131:628::-;17208:22;17233:13;;;;;;;;;;17265:8;;;;14443:1;17265:18;17257:46;;;;-1:-1:-1;;;17257:46:0;;6253:2:1;17257:46:0;;;6235:21:1;6292:2;6272:18;;;6265:30;-1:-1:-1;;;6311:18:1;;;6304:45;6366:18;;17257:46:0;;;;;;;;;17337:15;17322:1;:12;;;:30;17314:55;;;;-1:-1:-1;;;17314:55:0;;;;;;;:::i;:::-;17425:18;;;;;;2049:25:1;;;2022:18;17425::0;;;;;;;;;;;;17415:29;;;;;;17401:1;:10;;;:43;17380:104;;;;-1:-1:-1;;;17380:104:0;;7120:2:1;17380:104:0;;;7102:21:1;7159:2;7139:18;;;7132:30;-1:-1:-1;;;7178:18:1;;;7171:44;7232:18;;17380:104:0;6918:338:1;17380:104:0;14613:1;17495:8;;;:20;17533:14;;;;17558:10;;;;17570:13;;17526:58;;-1:-1:-1;;;17526:58:0;;-1:-1:-1;;;;;17558:10:0;;;17526:58;;;7435:51:1;7502:18;;;7495:34;;;;17533:14:0;;;17526:31;;7408:18:1;;17526:58:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;17732:10:0;;;;17710:8;;;;17682:14;;;;17658:10;;;;17600:152;;;8024:25:1;;;8080:2;8065:18;;8058:34;;;8108:18;;;8101:34;;;;17600:152:0;-1:-1:-1;;;;;17732:10:0;;;;17710:8;;;;17682:14;;;;17600:152;;;;;8012:2:1;17600:152:0;;;17198:561;17131:628;;:::o;17765:389::-;17812:22;17837:13;;;;;;;;;;17869:8;;;;14443:1;17869:18;17861:46;;;;-1:-1:-1;;;17861:46:0;;6253:2:1;17861:46:0;;;6235:21:1;6292:2;6272:18;;;6265:30;-1:-1:-1;;;6311:18:1;;;6304:45;6366:18;;17861:46:0;6051:339:1;17861:46:0;17942:15;17926:1;:12;;;:31;;17918:56;;;;-1:-1:-1;;;17918:56:0;;;;;;;:::i;:::-;14534:1;17985:8;;;:19;18022:14;;;;18047:8;;;;18057:13;;18015:56;;-1:-1:-1;;;18015:56:0;;-1:-1:-1;;;;;18047:8:0;;;18015:56;;;7435:51:1;7502:18;;;7495:34;;;;18022:14:0;;;18015:31;;7408:18:1;;18015:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;18136:10:0;;;;18126:8;;;;18110:14;;;;18098:10;;;;18087:60;;;8320:25:1;;;8376:2;8361:18;;8354:34;;;;-1:-1:-1;;;;;18136:10:0;;;;18126:8;;;;18110:14;;;;18087:60;;8293:18:1;18087:60:0;;;;;;;17802:352;17765:389;:::o;15753:1372::-;16067:15;16054:10;:28;16046:53;;;;-1:-1:-1;;;16046:53:0;;;;;;;:::i;:::-;16132:1;16118:11;:15;16110:42;;;;-1:-1:-1;;;16110:42:0;;8601:2:1;16110:42:0;;;8583:21:1;8640:2;8620:18;;;8613:30;-1:-1:-1;;;8659:18:1;;;8652:44;8713:18;;16110:42:0;8399:338:1;16110:42:0;16163:73;;-1:-1:-1;;;16163:73:0;;16197:10;16163:73;;;8982:34:1;16217:4:0;9032:18:1;;;9025:43;9084:18;;;9077:34;;;-1:-1:-1;;;;;16163:33:0;;;;;8917:18:1;;16163:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;16283:191:0;;;16311:10;16283:191;;;9447:34:1;-1:-1:-1;;;;;9517:15:1;;;9497:18;;;9490:43;;;;9549:18;;;9542:34;;;9592:18;;;9585:34;;;9635:19;;;9628:35;;;9700:15;;;9679:19;;;9672:44;16247:10:0;;9381:19:1;;16283:191:0;;;-1:-1:-1;;16283:191:0;;;;;;;;;16260:224;;16283:191;16260:224;;;;14360:1;16503:13;;;;;;;;;:20;;;16260:224;;-1:-1:-1;16503:31:0;16495:55;;;;-1:-1:-1;;;16495:55:0;;9929:2:1;16495:55:0;;;9911:21:1;9968:2;9948:18;;;9941:30;-1:-1:-1;;;9987:18:1;;;9980:41;10038:18;;16495:55:0;9727:335:1;16495:55:0;16577:265;;;;;;;;16603:11;16577:265;;;;16628:12;16577:265;;;;16654:10;16577:265;;;;14443:1;16577:265;;;;16698:8;16577:265;;;;16720:12;-1:-1:-1;;;;;16577:265:0;;;;;16746:10;-1:-1:-1;;;;;16577:265:0;;;;;16770:8;-1:-1:-1;;;;;16577:265:0;;;;;16792:13;;16577:265;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;16577:265:0;;;-1:-1:-1;16577:265:0;;;;;;;;;;;;;;;;;;;;;;;;;;;16819:13;;;;;;16577:265;;16819:13;;;;16577:265;;;;;;;;-1:-1:-1;16577:265:0;;;;-1:-1:-1;;16561:13:0;;;;;;;;;;;;:281;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16561:281:0;;;-1:-1:-1;;;;;;16561:281:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:13;;-1:-1:-1;16561:281:0;;;;;;;;:::i;:::-;-1:-1:-1;16561:281:0;;;;;;;;;;;;:::i;:::-;;;;;17046:8;-1:-1:-1;;;;;16858:260:0;17022:10;-1:-1:-1;;;;;16858:260:0;16996:12;-1:-1:-1;;;;;16858:260:0;;16883:11;16908:12;16934:10;16958:2;16974:8;17068:13;;17095;;16858:260;;;;;;;;;;;;;;:::i;:::-;;;;;;;;16036:1089;15753:1372;;;;;;;;;;:::o;14156:49::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14156:49:0;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;18497:363::-;18555:14;18616:13;;;;;;;;;;;18581:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18581:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18555:14;;18581:48;18616:13;18581:48;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14443:1;18657:12;:19;;;:29;:86;;;;;18728:15;18702:12;:23;;;:41;18657:86;18640:214;;;14691:1;18768:16;;18640:214;;;18824:12;:19;;;18815:28;;18640:214;18571:289;18497:363;;;:::o;14:127:1:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:1115;230:6;261:2;304;292:9;283:7;279:23;275:32;272:52;;;320:1;317;310:12;272:52;360:9;347:23;389:18;430:2;422:6;419:14;416:34;;;446:1;443;436:12;416:34;484:6;473:9;469:22;459:32;;529:7;522:4;518:2;514:13;510:27;500:55;;551:1;548;541:12;500:55;587:2;574:16;609:2;605;602:10;599:36;;;615:18;;:::i;:::-;661:2;658:1;654:10;693:2;687:9;756:2;752:7;747:2;743;739:11;735:25;727:6;723:38;811:6;799:10;796:22;791:2;779:10;776:18;773:46;770:72;;;822:18;;:::i;:::-;858:2;851:22;908:18;;;942:15;;;;-1:-1:-1;984:11:1;;;980:20;;;1012:19;;;1009:39;;;1044:1;1041;1034:12;1009:39;1068:11;;;;1088:142;1104:6;1099:3;1096:15;1088:142;;;1170:17;;1158:30;;1121:12;;;;1208;;;;1088:142;;;1249:6;146:1115;-1:-1:-1;;;;;;;;146:1115:1:o;1266:632::-;1437:2;1489:21;;;1559:13;;1462:18;;;1581:22;;;1408:4;;1437:2;1660:15;;;;1634:2;1619:18;;;1408:4;1703:169;1717:6;1714:1;1711:13;1703:169;;;1778:13;;1766:26;;1847:15;;;;1812:12;;;;1739:1;1732:9;1703:169;;;-1:-1:-1;1889:3:1;;1266:632;-1:-1:-1;;;;;;1266:632:1:o;2085:248::-;2153:6;2161;2214:2;2202:9;2193:7;2189:23;2185:32;2182:52;;;2230:1;2227;2220:12;2182:52;-1:-1:-1;;2253:23:1;;;2323:2;2308:18;;;2295:32;;-1:-1:-1;2085:248:1:o;2338:180::-;2397:6;2450:2;2438:9;2429:7;2425:23;2421:32;2418:52;;;2466:1;2463;2456:12;2418:52;-1:-1:-1;2489:23:1;;2338:180;-1:-1:-1;2338:180:1:o;2523:173::-;2591:20;;-1:-1:-1;;;;;2640:31:1;;2630:42;;2620:70;;2686:1;2683;2676:12;2620:70;2523:173;;;:::o;2701:348::-;2753:8;2763:6;2817:3;2810:4;2802:6;2798:17;2794:27;2784:55;;2835:1;2832;2825:12;2784:55;-1:-1:-1;2858:20:1;;2901:18;2890:30;;2887:50;;;2933:1;2930;2923:12;2887:50;2970:4;2962:6;2958:17;2946:29;;3022:3;3015:4;3006:6;2998;2994:19;2990:30;2987:39;2984:59;;;3039:1;3036;3029:12;2984:59;2701:348;;;;;:::o;3054:1146::-;3200:6;3208;3216;3224;3232;3240;3248;3256;3264;3272;3325:3;3313:9;3304:7;3300:23;3296:33;3293:53;;;3342:1;3339;3332:12;3293:53;3378:9;3365:23;3355:33;;3435:2;3424:9;3420:18;3407:32;3397:42;;3486:2;3475:9;3471:18;3458:32;3448:42;;3537:2;3526:9;3522:18;3509:32;3499:42;;3560:39;3594:3;3583:9;3579:19;3560:39;:::i;:::-;3550:49;;3618:39;3652:3;3641:9;3637:19;3618:39;:::i;:::-;3608:49;;3708:3;3697:9;3693:19;3680:33;3732:18;3773:2;3765:6;3762:14;3759:34;;;3789:1;3786;3779:12;3759:34;3828:59;3879:7;3870:6;3859:9;3855:22;3828:59;:::i;:::-;3906:8;;-1:-1:-1;3802:85:1;-1:-1:-1;3994:3:1;3979:19;;3966:33;;-1:-1:-1;4011:16:1;;;4008:36;;;4040:1;4037;4030:12;4008:36;;4079:61;4132:7;4121:8;4110:9;4106:24;4079:61;:::i;:::-;4053:87;;4159:8;4149:18;;;4186:8;4176:18;;;3054:1146;;;;;;;;;;;;;:::o;4205:423::-;4247:3;4285:5;4279:12;4312:6;4307:3;4300:19;4337:1;4347:162;4361:6;4358:1;4355:13;4347:162;;;4423:4;4479:13;;;4475:22;;4469:29;4451:11;;;4447:20;;4440:59;4376:12;4347:162;;;4351:3;4554:1;4547:4;4538:6;4533:3;4529:16;4525:27;4518:38;4617:4;4610:2;4606:7;4601:2;4593:6;4589:15;4585:29;4580:3;4576:39;4572:50;4565:57;;;4205:423;;;;:::o;4633:1044::-;5017:4;5046:3;5076:6;5065:9;5058:25;5119:6;5114:2;5103:9;5099:18;5092:34;5162:6;5157:2;5146:9;5142:18;5135:34;5205:6;5200:2;5189:9;5185:18;5178:34;5249:6;5243:3;5232:9;5228:19;5221:35;5292:1;5288;5283:3;5279:11;5275:19;5343:2;5335:6;5331:15;5325:3;5314:9;5310:19;5303:44;5396:2;5388:6;5384:15;5378:3;5367:9;5363:19;5356:44;5449:2;5441:6;5437:15;5431:3;5420:9;5416:19;5409:44;;5490:2;5484:3;5473:9;5469:19;5462:31;5516:45;5557:2;5546:9;5542:18;5534:6;5516:45;:::i;:::-;5502:59;;5610:9;5602:6;5598:22;5592:3;5581:9;5577:19;5570:51;5638:33;5664:6;5656;5638:33;:::i;:::-;5630:41;4633:1044;-1:-1:-1;;;;;;;;;;;;;4633:1044:1:o;5682:127::-;5743:10;5738:3;5734:20;5731:1;5724:31;5774:4;5771:1;5764:15;5798:4;5795:1;5788:15;5814:232;5853:3;5874:17;;;5871:140;;5933:10;5928:3;5924:20;5921:1;5914:31;5968:4;5965:1;5958:15;5996:4;5993:1;5986:15;5871:140;-1:-1:-1;6038:1:1;6027:13;;5814:232::o;6395:336::-;6597:2;6579:21;;;6636:2;6616:18;;;6609:30;-1:-1:-1;;;6670:2:1;6655:18;;6648:42;6722:2;6707:18;;6395:336::o;7540:277::-;7607:6;7660:2;7648:9;7639:7;7635:23;7631:32;7628:52;;;7676:1;7673;7666:12;7628:52;7708:9;7702:16;7761:5;7754:13;7747:21;7740:5;7737:32;7727:60;;7783:1;7780;7773:12;7727:60;7806:5;7540:277;-1:-1:-1;;;7540:277:1:o;10067:380::-;10146:1;10142:12;;;;10189;;;10210:61;;10264:4;10256:6;10252:17;10242:27;;10210:61;10317:2;10309:6;10306:14;10286:18;10283:38;10280:161;;10363:10;10358:3;10354:20;10351:1;10344:31;10398:4;10395:1;10388:15;10426:4;10423:1;10416:15;10578:545;10680:2;10675:3;10672:11;10669:448;;;10716:1;10741:5;10737:2;10730:17;10786:4;10782:2;10772:19;10856:2;10844:10;10840:19;10837:1;10833:27;10827:4;10823:38;10892:4;10880:10;10877:20;10874:47;;;-1:-1:-1;10915:4:1;10874:47;10970:2;10965:3;10961:12;10958:1;10954:20;10948:4;10944:31;10934:41;;11025:82;11043:2;11036:5;11033:13;11025:82;;;11088:17;;;11069:1;11058:13;11025:82;;;11029:3;;;10669:448;10578:545;;;:::o;11299:1352::-;11425:3;11419:10;11452:18;11444:6;11441:30;11438:56;;;11474:18;;:::i;:::-;11503:97;11593:6;11553:38;11585:4;11579:11;11553:38;:::i;:::-;11547:4;11503:97;:::i;:::-;11655:4;;11719:2;11708:14;;11736:1;11731:663;;;;12438:1;12455:6;12452:89;;;-1:-1:-1;12507:19:1;;;12501:26;12452:89;-1:-1:-1;;11256:1:1;11252:11;;;11248:24;11244:29;11234:40;11280:1;11276:11;;;11231:57;12554:81;;11701:944;;11731:663;10525:1;10518:14;;;10562:4;10549:18;;-1:-1:-1;;11767:20:1;;;11885:236;11899:7;11896:1;11893:14;11885:236;;;11988:19;;;11982:26;11967:42;;12080:27;;;;12048:1;12036:14;;;;11915:19;;11885:236;;;11889:3;12149:6;12140:7;12137:19;12134:201;;;12210:19;;;12204:26;-1:-1:-1;;12293:1:1;12289:14;;;12305:3;12285:24;12281:37;12277:42;12262:58;12247:74;;12134:201;-1:-1:-1;;;;;12381:1:1;12365:14;;;12361:22;12348:36;;-1:-1:-1;11299:1352:1:o;12656:267::-;12745:6;12740:3;12733:19;12797:6;12790:5;12783:4;12778:3;12774:14;12761:43;-1:-1:-1;12849:1:1;12824:16;;;12842:4;12820:27;;;12813:38;;;;12905:2;12884:15;;;-1:-1:-1;;12880:29:1;12871:39;;;12867:50;;12656:267::o;12928:797::-;13285:6;13274:9;13267:25;13328:6;13323:2;13312:9;13308:18;13301:34;13371:6;13366:2;13355:9;13351:18;13344:34;13414:6;13409:2;13398:9;13394:18;13387:34;13458:6;13452:3;13441:9;13437:19;13430:35;13502:3;13496;13485:9;13481:19;13474:32;13248:4;13529:63;13587:3;13576:9;13572:19;13564:6;13556;13529:63;:::i;:::-;13641:9;13633:6;13629:22;13623:3;13612:9;13608:19;13601:51;13669:50;13712:6;13704;13696;13669:50;:::i;:::-;13661:58;12928:797;-1:-1:-1;;;;;;;;;;;;12928:797:1:o", + "sourcePath": "/home/peter/a/cacti-1/packages/cactus-plugin-htlc-eth-besu-erc20/src/main/solidity/contracts/HashedTimeLockContract.sol", + "compiler": { + "name": "solc", + "version": "0.8.19+commit.7dd6d404" + }, + "ast": { + "absolutePath": "/home/peter/a/cacti-1/packages/cactus-plugin-htlc-eth-besu-erc20/src/main/solidity/contracts/HashedTimeLockContract.sol", + "exportedSymbols": { + "Address": [ + 295 + ], + "HashedTimeLockContract": [ + 1007 + ], + "IERC20": [ + 371 + ], + "SafeERC20": [ + 590 + ] + }, + "id": 1008, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "0.8", + ".19" + ], + "nodeType": "PragmaDirective", + "src": "40:23:0" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "Address", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 2, + "nodeType": "StructuredDocumentation", + "src": "66:67:0", + "text": " @dev Collection of functions related to the address type" + }, + "fullyImplemented": true, + "id": 295, + "linearizedBaseContracts": [ + 295 + ], + "name": "Address", + "nameLocation": "142:7:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 18, + "nodeType": "Block", + "src": "792:347:0", + "statements": [ + { + "assignments": [ + 11 + ], + "declarations": [ + { + "constant": false, + "id": 11, + "mutability": "mutable", + "name": "size", + "nameLocation": "997:4:0", + "nodeType": "VariableDeclaration", + "scope": 18, + "src": "989:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "989:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 12, + "nodeType": "VariableDeclarationStatement", + "src": "989:12:0" + }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4928:1:2", - "type": "", - "value": "0" + "AST": { + "nodeType": "YulBlock", + "src": "1076:32:0", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1078:28:0", + "value": { + "arguments": [ + { + "name": "account", + "nodeType": "YulIdentifier", + "src": "1098:7:0" + } + ], + "functionName": { + "name": "extcodesize", + "nodeType": "YulIdentifier", + "src": "1086:11:0" + }, + "nodeType": "YulFunctionCall", + "src": "1086:20:0" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "1078:4:0" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 5, + "isOffset": false, + "isSlot": false, + "src": "1098:7:0", + "valueSize": 1 + }, + { + "declaration": 11, + "isOffset": false, + "isSlot": false, + "src": "1078:4:0", + "valueSize": 1 + } + ], + "id": 13, + "nodeType": "InlineAssembly", + "src": "1067:41:0" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4931:1:2", - "type": "", - "value": "0" + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 16, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 14, + "name": "size", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11, + "src": "1124:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 15, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1131:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1124:8:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 9, + "id": 17, + "nodeType": "Return", + "src": "1117:15:0" + } + ] + }, + "documentation": { + "id": 3, + "nodeType": "StructuredDocumentation", + "src": "156:565:0", + "text": " @dev Returns true if `account` is a contract.\n [IMPORTANT]\n ====\n It is unsafe to assume that an address for which this function returns\n false is an externally-owned account (EOA) and not a contract.\n Among others, `isContract` will return false for the following\n types of addresses:\n - an externally-owned account\n - a contract in construction\n - an address where a contract will be created\n - an address where a contract lived, but was destroyed\n ====" + }, + "id": 19, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isContract", + "nameLocation": "735:10:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5, + "mutability": "mutable", + "name": "account", + "nameLocation": "754:7:0", + "nodeType": "VariableDeclaration", + "scope": 19, + "src": "746:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "746:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "4921:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "4921:12:2" - }, - "nodeType": "YulExpressionStatement", - "src": "4921:12:2" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "4891:6:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4899:18:2", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "4888:2:2" - }, - "nodeType": "YulFunctionCall", - "src": "4888:30:2" - }, - "nodeType": "YulIf", - "src": "4885:2:2" - }, - { - "nodeType": "YulAssignment", - "src": "4949:83:2", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "5004:9:2" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "5015:6:2" - } ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "5000:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "5000:22:2" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "5024:7:2" - } - ], - "functionName": { - "name": "abi_decode_t_string_calldata_ptr", - "nodeType": "YulIdentifier", - "src": "4967:32:2" - }, - "nodeType": "YulFunctionCall", - "src": "4967:65:2" - }, - "variableNames": [ - { - "name": "value6", - "nodeType": "YulIdentifier", - "src": "4949:6:2" + "src": "745:17:0" }, - { - "name": "value7", - "nodeType": "YulIdentifier", - "src": "4957:6:2" - } - ] - } - ] - }, - { - "nodeType": "YulBlock", - "src": "5052:232:2", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "5067:47:2", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "5098:9:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5109:3:2", - "type": "", - "value": "224" - } + "returnParameters": { + "id": 9, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 19, + "src": "786:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "786:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "5094:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "5094:19:2" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "5081:12:2" + "src": "785:6:0" }, - "nodeType": "YulFunctionCall", - "src": "5081:33:2" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "5071:6:2", - "type": "" - } - ] + "scope": 295, + "src": "726:413:0", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" }, { - "body": { - "nodeType": "YulBlock", - "src": "5161:16:2", - "statements": [ - { - "expression": { - "arguments": [ + "body": { + "id": 52, + "nodeType": "Block", + "src": "2127:320:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 34, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 30, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "2153:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Address_$295", + "typeString": "library Address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$295", + "typeString": "library Address" + } + ], + "id": 29, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2145:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 28, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2145:7:0", + "typeDescriptions": {} + } + }, + "id": 31, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2145:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 32, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2159:7:0", + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "2145:21:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 33, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "2170:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2145:31:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a20696e73756666696369656e742062616c616e6365", + "id": 35, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2178:31:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9", + "typeString": "literal_string \"Address: insufficient balance\"" + }, + "value": "Address: insufficient balance" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9", + "typeString": "literal_string \"Address: insufficient balance\"" + } + ], + "id": 27, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "2137:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 36, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2137:73:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 37, + "nodeType": "ExpressionStatement", + "src": "2137:73:0" + }, + { + "assignments": [ + 39, + null + ], + "declarations": [ + { + "constant": false, + "id": 39, + "mutability": "mutable", + "name": "success", + "nameLocation": "2304:7:0", + "nodeType": "VariableDeclaration", + "scope": 52, + "src": "2299:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 38, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2299:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + null + ], + "id": 46, + "initialValue": { + "arguments": [ + { + "hexValue": "", + "id": 44, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2349:2:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "id": 40, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22, + "src": "2317:9:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 41, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2327:4:0", + "memberName": "call", + "nodeType": "MemberAccess", + "src": "2317:14:0", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 43, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "id": 42, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 24, + "src": "2340:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "2317:31:0", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 45, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2317:35:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2298:54:0" + }, + { + "expression": { + "arguments": [ + { + "id": 48, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 39, + "src": "2370:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564", + "id": 49, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2379:60:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae", + "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\"" + }, + "value": "Address: unable to send value, recipient may have reverted" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae", + "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\"" + } + ], + "id": 47, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "2362:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 50, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2362:78:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 51, + "nodeType": "ExpressionStatement", + "src": "2362:78:0" + } + ] + }, + "documentation": { + "id": 20, + "nodeType": "StructuredDocumentation", + "src": "1145:906:0", + "text": " @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]." + }, + "id": 53, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sendValue", + "nameLocation": "2065:9:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 25, + "nodeType": "ParameterList", + "parameters": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5170:1:2", - "type": "", - "value": "0" + "constant": false, + "id": 22, + "mutability": "mutable", + "name": "recipient", + "nameLocation": "2091:9:0", + "nodeType": "VariableDeclaration", + "scope": 53, + "src": "2075:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 21, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2075:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5173:1:2", - "type": "", - "value": "0" + "constant": false, + "id": 24, + "mutability": "mutable", + "name": "amount", + "nameLocation": "2110:6:0", + "nodeType": "VariableDeclaration", + "scope": 53, + "src": "2102:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 23, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2102:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "5163:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "5163:12:2" - }, - "nodeType": "YulExpressionStatement", - "src": "5163:12:2" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "5133:6:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5141:18:2", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "5130:2:2" - }, - "nodeType": "YulFunctionCall", - "src": "5130:30:2" - }, - "nodeType": "YulIf", - "src": "5127:2:2" - }, - { - "nodeType": "YulAssignment", - "src": "5191:83:2", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "5246:9:2" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "5257:6:2" - } ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "5242:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "5242:22:2" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "5266:7:2" - } - ], - "functionName": { - "name": "abi_decode_t_string_calldata_ptr", - "nodeType": "YulIdentifier", - "src": "5209:32:2" - }, - "nodeType": "YulFunctionCall", - "src": "5209:65:2" - }, - "variableNames": [ - { - "name": "value8", - "nodeType": "YulIdentifier", - "src": "5191:6:2" - }, - { - "name": "value9", - "nodeType": "YulIdentifier", - "src": "5199:6:2" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_uint256t_uint256t_uint256t_bytes32t_addresst_addresst_string_calldata_ptrt_string_calldata_ptr", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "3866:9:2", - "type": "" - }, - { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "3877:7:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "3889:6:2", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "3897:6:2", - "type": "" - }, - { - "name": "value2", - "nodeType": "YulTypedName", - "src": "3905:6:2", - "type": "" - }, - { - "name": "value3", - "nodeType": "YulTypedName", - "src": "3913:6:2", - "type": "" - }, - { - "name": "value4", - "nodeType": "YulTypedName", - "src": "3921:6:2", - "type": "" - }, - { - "name": "value5", - "nodeType": "YulTypedName", - "src": "3929:6:2", - "type": "" - }, - { - "name": "value6", - "nodeType": "YulTypedName", - "src": "3937:6:2", - "type": "" - }, - { - "name": "value7", - "nodeType": "YulTypedName", - "src": "3945:6:2", - "type": "" - }, - { - "name": "value8", - "nodeType": "YulTypedName", - "src": "3953:6:2", - "type": "" - }, - { - "name": "value9", - "nodeType": "YulTypedName", - "src": "3961:6:2", - "type": "" - } - ], - "src": "3743:1548:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "5377:99:2", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "5421:6:2" - }, - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "5429:3:2" - } - ], - "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256", - "nodeType": "YulIdentifier", - "src": "5387:33:2" - }, - "nodeType": "YulFunctionCall", - "src": "5387:46:2" - }, - "nodeType": "YulExpressionStatement", - "src": "5387:46:2" - }, - { - "nodeType": "YulAssignment", - "src": "5442:28:2", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "5460:3:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5465:4:2", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "5456:3:2" + "src": "2074:43:0" + }, + "returnParameters": { + "id": 26, + "nodeType": "ParameterList", + "parameters": [], + "src": "2127:0:0" + }, + "scope": 295, + "src": "2056:391:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" }, - "nodeType": "YulFunctionCall", - "src": "5456:14:2" - }, - "variableNames": [ { - "name": "updatedPos", - "nodeType": "YulIdentifier", - "src": "5442:10:2" - } - ] - } - ] - }, - "name": "abi_encodeUpdatedPos_t_uint256_to_t_uint256", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "5350:6:2", - "type": "" - }, - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "5358:3:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "updatedPos", - "nodeType": "YulTypedName", - "src": "5366:10:2", - "type": "" - } - ], - "src": "5297:179:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "5547:53:2", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "5564:3:2" - }, - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "5587:5:2" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nodeType": "YulIdentifier", - "src": "5569:17:2" + "body": { + "id": 69, + "nodeType": "Block", + "src": "3277:82:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 64, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 56, + "src": "3305:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 65, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 58, + "src": "3313:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564", + "id": 66, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3319:32:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df", + "typeString": "literal_string \"Address: low-level call failed\"" + }, + "value": "Address: low-level call failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df", + "typeString": "literal_string \"Address: low-level call failed\"" + } + ], + "id": 63, + "name": "functionCall", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 70, + 90 + ], + "referencedDeclaration": 90, + "src": "3292:12:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" + } + }, + "id": 67, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3292:60:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 62, + "id": 68, + "nodeType": "Return", + "src": "3285:67:0" + } + ] + }, + "documentation": { + "id": 54, + "nodeType": "StructuredDocumentation", + "src": "2453:730:0", + "text": " @dev Performs a Solidity function call using a low level `call`. A\n plain`call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason, it is bubbled up by this\n function (like regular Solidity function calls).\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert.\n _Available since v3.1._" + }, + "id": 70, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCall", + "nameLocation": "3197:12:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 59, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 56, + "mutability": "mutable", + "name": "target", + "nameLocation": "3218:6:0", + "nodeType": "VariableDeclaration", + "scope": 70, + "src": "3210:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 55, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3210:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 58, + "mutability": "mutable", + "name": "data", + "nameLocation": "3239:4:0", + "nodeType": "VariableDeclaration", + "scope": 70, + "src": "3226:17:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 57, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3226:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "3209:35:0" }, - "nodeType": "YulFunctionCall", - "src": "5569:24:2" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "5557:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "5557:37:2" - }, - "nodeType": "YulExpressionStatement", - "src": "5557:37:2" - } - ] - }, - "name": "abi_encode_t_address_to_t_address_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "5535:5:2", - "type": "" - }, - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "5542:3:2", - "type": "" - } - ], - "src": "5482:118:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "5689:74:2", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "5706:3:2" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "5749:5:2" - } + "returnParameters": { + "id": 62, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 61, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 70, + "src": "3263:12:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 60, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3263:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } ], - "functionName": { - "name": "cleanup_t_address", - "nodeType": "YulIdentifier", - "src": "5731:17:2" - }, - "nodeType": "YulFunctionCall", - "src": "5731:24:2" - } - ], - "functionName": { - "name": "leftAlign_t_address", - "nodeType": "YulIdentifier", - "src": "5711:19:2" + "src": "3262:14:0" }, - "nodeType": "YulFunctionCall", - "src": "5711:45:2" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "5699:6:2" + "scope": 295, + "src": "3188:171:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" }, - "nodeType": "YulFunctionCall", - "src": "5699:58:2" - }, - "nodeType": "YulExpressionStatement", - "src": "5699:58:2" - } - ] - }, - "name": "abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "5677:5:2", - "type": "" - }, - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "5684:3:2", - "type": "" - } - ], - "src": "5606:157:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "5923:608:2", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "5933:68:2", - "value": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "5995:5:2" - } - ], - "functionName": { - "name": "array_length_t_array$_t_uint256_$dyn_memory_ptr", - "nodeType": "YulIdentifier", - "src": "5947:47:2" - }, - "nodeType": "YulFunctionCall", - "src": "5947:54:2" - }, - "variables": [ - { - "name": "length", - "nodeType": "YulTypedName", - "src": "5937:6:2", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "6010:93:2", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "6091:3:2" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "6096:6:2" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "6017:73:2" - }, - "nodeType": "YulFunctionCall", - "src": "6017:86:2" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "6010:3:2" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "6112:71:2", - "value": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "6177:5:2" - } - ], - "functionName": { - "name": "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr", - "nodeType": "YulIdentifier", - "src": "6127:49:2" - }, - "nodeType": "YulFunctionCall", - "src": "6127:56:2" - }, - "variables": [ - { - "name": "baseRef", - "nodeType": "YulTypedName", - "src": "6116:7:2", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "6192:21:2", - "value": { - "name": "baseRef", - "nodeType": "YulIdentifier", - "src": "6206:7:2" - }, - "variables": [ - { - "name": "srcPtr", - "nodeType": "YulTypedName", - "src": "6196:6:2", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "6282:224:2", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "6296:34:2", - "value": { - "arguments": [ - { - "name": "srcPtr", - "nodeType": "YulIdentifier", - "src": "6323:6:2" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "6317:5:2" - }, - "nodeType": "YulFunctionCall", - "src": "6317:13:2" - }, - "variables": [ - { - "name": "elementValue0", - "nodeType": "YulTypedName", - "src": "6300:13:2", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "6343:70:2", - "value": { - "arguments": [ - { - "name": "elementValue0", - "nodeType": "YulIdentifier", - "src": "6394:13:2" - }, - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "6409:3:2" - } - ], - "functionName": { - "name": "abi_encodeUpdatedPos_t_uint256_to_t_uint256", - "nodeType": "YulIdentifier", - "src": "6350:43:2" - }, - "nodeType": "YulFunctionCall", - "src": "6350:63:2" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "6343:3:2" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "6426:70:2", - "value": { - "arguments": [ - { - "name": "srcPtr", - "nodeType": "YulIdentifier", - "src": "6489:6:2" - } - ], - "functionName": { - "name": "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr", - "nodeType": "YulIdentifier", - "src": "6436:52:2" - }, - "nodeType": "YulFunctionCall", - "src": "6436:60:2" - }, - "variableNames": [ - { - "name": "srcPtr", - "nodeType": "YulIdentifier", - "src": "6426:6:2" - } - ] - } - ] - }, - "condition": { - "arguments": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "6244:1:2" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "6247:6:2" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "6241:2:2" - }, - "nodeType": "YulFunctionCall", - "src": "6241:13:2" - }, - "nodeType": "YulForLoop", - "post": { - "nodeType": "YulBlock", - "src": "6255:18:2", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "6257:14:2", - "value": { - "arguments": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "6266:1:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6269:1:2", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6262:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "6262:9:2" - }, - "variableNames": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "6257:1:2" - } - ] - } - ] - }, - "pre": { - "nodeType": "YulBlock", - "src": "6226:14:2", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "6228:10:2", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6237:1:2", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "i", - "nodeType": "YulTypedName", - "src": "6232:1:2", - "type": "" - } - ] - } - ] - }, - "src": "6222:284:2" - }, - { - "nodeType": "YulAssignment", - "src": "6515:10:2", - "value": { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "6522:3:2" - }, - "variableNames": [ { - "name": "end", - "nodeType": "YulIdentifier", - "src": "6515:3:2" - } - ] - } - ] - }, - "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "5902:5:2", - "type": "" - }, - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "5909:3:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nodeType": "YulTypedName", - "src": "5918:3:2", - "type": "" - } - ], - "src": "5799:732:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "6602:53:2", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "6619:3:2" - }, - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "6642:5:2" - } - ], - "functionName": { - "name": "cleanup_t_bytes32", - "nodeType": "YulIdentifier", - "src": "6624:17:2" - }, - "nodeType": "YulFunctionCall", - "src": "6624:24:2" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "6612:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "6612:37:2" - }, - "nodeType": "YulExpressionStatement", - "src": "6612:37:2" - } - ] - }, - "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "6590:5:2", - "type": "" - }, - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "6597:3:2", - "type": "" - } - ], - "src": "6537:118:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "6744:74:2", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "6761:3:2" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "6804:5:2" - } + "body": { + "id": 89, + "nodeType": "Block", + "src": "3698:76:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 83, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 73, + "src": "3737:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 84, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 75, + "src": "3745:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "30", + "id": 85, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3751:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "id": 86, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 77, + "src": "3754:12:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 82, + "name": "functionCallWithValue", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 110, + 160 + ], + "referencedDeclaration": 160, + "src": "3715:21:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" + } + }, + "id": 87, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3715:52:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 81, + "id": 88, + "nodeType": "Return", + "src": "3708:59:0" + } + ] + }, + "documentation": { + "id": 71, + "nodeType": "StructuredDocumentation", + "src": "3365:211:0", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" + }, + "id": 90, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCall", + "nameLocation": "3590:12:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 78, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 73, + "mutability": "mutable", + "name": "target", + "nameLocation": "3611:6:0", + "nodeType": "VariableDeclaration", + "scope": 90, + "src": "3603:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 72, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3603:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 75, + "mutability": "mutable", + "name": "data", + "nameLocation": "3632:4:0", + "nodeType": "VariableDeclaration", + "scope": 90, + "src": "3619:17:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 74, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3619:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 77, + "mutability": "mutable", + "name": "errorMessage", + "nameLocation": "3652:12:0", + "nodeType": "VariableDeclaration", + "scope": 90, + "src": "3638:26:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 76, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3638:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } ], - "functionName": { - "name": "cleanup_t_bytes32", - "nodeType": "YulIdentifier", - "src": "6786:17:2" - }, - "nodeType": "YulFunctionCall", - "src": "6786:24:2" - } - ], - "functionName": { - "name": "leftAlign_t_bytes32", - "nodeType": "YulIdentifier", - "src": "6766:19:2" - }, - "nodeType": "YulFunctionCall", - "src": "6766:45:2" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "6754:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "6754:58:2" - }, - "nodeType": "YulExpressionStatement", - "src": "6754:58:2" - } - ] - }, - "name": "abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "6732:5:2", - "type": "" - }, - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "6739:3:2", - "type": "" - } - ], - "src": "6661:157:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "6932:265:2", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "6942:52:2", - "value": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "6988:5:2" - } - ], - "functionName": { - "name": "array_length_t_bytes_memory_ptr", - "nodeType": "YulIdentifier", - "src": "6956:31:2" - }, - "nodeType": "YulFunctionCall", - "src": "6956:38:2" - }, - "variables": [ - { - "name": "length", - "nodeType": "YulTypedName", - "src": "6946:6:2", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "7003:95:2", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "7086:3:2" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "7091:6:2" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack", - "nodeType": "YulIdentifier", - "src": "7010:75:2" - }, - "nodeType": "YulFunctionCall", - "src": "7010:88:2" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "7003:3:2" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "7133:5:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7140:4:2", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "7129:3:2" + "src": "3602:63:0" }, - "nodeType": "YulFunctionCall", - "src": "7129:16:2" - }, - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "7147:3:2" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "7152:6:2" - } - ], - "functionName": { - "name": "copy_memory_to_memory", - "nodeType": "YulIdentifier", - "src": "7107:21:2" - }, - "nodeType": "YulFunctionCall", - "src": "7107:52:2" - }, - "nodeType": "YulExpressionStatement", - "src": "7107:52:2" - }, - { - "nodeType": "YulAssignment", - "src": "7168:23:2", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "7179:3:2" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "7184:6:2" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "7175:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "7175:16:2" - }, - "variableNames": [ - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "7168:3:2" - } - ] - } - ] - }, - "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "6913:5:2", - "type": "" - }, - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "6920:3:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nodeType": "YulTypedName", - "src": "6928:3:2", - "type": "" - } - ], - "src": "6824:373:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "7329:202:2", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "7339:78:2", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "7405:3:2" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "7410:6:2" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "7346:58:2" - }, - "nodeType": "YulFunctionCall", - "src": "7346:71:2" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "7339:3:2" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "start", - "nodeType": "YulIdentifier", - "src": "7451:5:2" - }, - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "7458:3:2" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "7463:6:2" - } - ], - "functionName": { - "name": "copy_calldata_to_memory", - "nodeType": "YulIdentifier", - "src": "7427:23:2" - }, - "nodeType": "YulFunctionCall", - "src": "7427:43:2" - }, - "nodeType": "YulExpressionStatement", - "src": "7427:43:2" - }, - { - "nodeType": "YulAssignment", - "src": "7479:46:2", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "7490:3:2" - }, - { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "7517:6:2" - } - ], - "functionName": { - "name": "round_up_to_mul_of_32", - "nodeType": "YulIdentifier", - "src": "7495:21:2" + "returnParameters": { + "id": 81, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 80, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 90, + "src": "3684:12:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 79, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3684:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "3683:14:0" }, - "nodeType": "YulFunctionCall", - "src": "7495:29:2" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "7486:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "7486:39:2" - }, - "variableNames": [ - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "7479:3:2" - } - ] - } - ] - }, - "name": "abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "start", - "nodeType": "YulTypedName", - "src": "7302:5:2", - "type": "" - }, - { - "name": "length", - "nodeType": "YulTypedName", - "src": "7309:6:2", - "type": "" - }, - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "7317:3:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nodeType": "YulTypedName", - "src": "7325:3:2", - "type": "" - } - ], - "src": "7227:304:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "7629:272:2", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "7639:53:2", - "value": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "7686:5:2" - } - ], - "functionName": { - "name": "array_length_t_string_memory_ptr", - "nodeType": "YulIdentifier", - "src": "7653:32:2" - }, - "nodeType": "YulFunctionCall", - "src": "7653:39:2" - }, - "variables": [ - { - "name": "length", - "nodeType": "YulTypedName", - "src": "7643:6:2", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "7701:78:2", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "7767:3:2" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "7772:6:2" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "7708:58:2" + "scope": 295, + "src": "3581:193:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" }, - "nodeType": "YulFunctionCall", - "src": "7708:71:2" - }, - "variableNames": [ { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "7701:3:2" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "7814:5:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7821:4:2", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "7810:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "7810:16:2" - }, - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "7828:3:2" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "7833:6:2" - } - ], - "functionName": { - "name": "copy_memory_to_memory", - "nodeType": "YulIdentifier", - "src": "7788:21:2" - }, - "nodeType": "YulFunctionCall", - "src": "7788:52:2" - }, - "nodeType": "YulExpressionStatement", - "src": "7788:52:2" - }, - { - "nodeType": "YulAssignment", - "src": "7849:46:2", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "7860:3:2" - }, - { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "7887:6:2" - } - ], - "functionName": { - "name": "round_up_to_mul_of_32", - "nodeType": "YulIdentifier", - "src": "7865:21:2" + "body": { + "id": 109, + "nodeType": "Block", + "src": "4249:111:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 103, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 93, + "src": "4288:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 104, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 95, + "src": "4296:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 105, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 97, + "src": "4302:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564", + "id": 106, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4309:43:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc", + "typeString": "literal_string \"Address: low-level call with value failed\"" + }, + "value": "Address: low-level call with value failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc", + "typeString": "literal_string \"Address: low-level call with value failed\"" + } + ], + "id": 102, + "name": "functionCallWithValue", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 110, + 160 + ], + "referencedDeclaration": 160, + "src": "4266:21:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" + } + }, + "id": 107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4266:87:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 101, + "id": 108, + "nodeType": "Return", + "src": "4259:94:0" + } + ] + }, + "documentation": { + "id": 91, + "nodeType": "StructuredDocumentation", + "src": "3780:351:0", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`.\n _Available since v3.1._" + }, + "id": 110, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCallWithValue", + "nameLocation": "4145:21:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 98, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 93, + "mutability": "mutable", + "name": "target", + "nameLocation": "4175:6:0", + "nodeType": "VariableDeclaration", + "scope": 110, + "src": "4167:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 92, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4167:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 95, + "mutability": "mutable", + "name": "data", + "nameLocation": "4196:4:0", + "nodeType": "VariableDeclaration", + "scope": 110, + "src": "4183:17:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 94, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4183:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 97, + "mutability": "mutable", + "name": "value", + "nameLocation": "4210:5:0", + "nodeType": "VariableDeclaration", + "scope": 110, + "src": "4202:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 96, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4202:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4166:50:0" }, - "nodeType": "YulFunctionCall", - "src": "7865:29:2" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "7856:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "7856:39:2" - }, - "variableNames": [ - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "7849:3:2" - } - ] - } - ] - }, - "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "7610:5:2", - "type": "" - }, - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "7617:3:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nodeType": "YulTypedName", - "src": "7625:3:2", - "type": "" - } - ], - "src": "7537:364:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "8053:163:2", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "8063:74:2", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "8129:3:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8134:2:2", - "type": "", - "value": "11" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "8070:58:2" - }, - "nodeType": "YulFunctionCall", - "src": "8070:67:2" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "8063:3:2" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "8158:3:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8163:1:2", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "8154:3:2" + "returnParameters": { + "id": 101, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 100, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 110, + "src": "4235:12:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 99, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4235:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "4234:14:0" }, - "nodeType": "YulFunctionCall", - "src": "8154:11:2" - }, - { - "kind": "string", - "nodeType": "YulLiteral", - "src": "8167:13:2", - "type": "", - "value": "SWAP_EXISTS" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "8147:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "8147:34:2" - }, - "nodeType": "YulExpressionStatement", - "src": "8147:34:2" - }, - { - "nodeType": "YulAssignment", - "src": "8191:19:2", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "8202:3:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8207:2:2", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "8198:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "8198:12:2" - }, - "variableNames": [ - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "8191:3:2" - } - ] - } - ] - }, - "name": "abi_encode_t_stringliteral_10858945dd31484ce6a77564821a1a6ff0e82939d9bea2b8e6caae50c7fc3750_to_t_string_memory_ptr_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "8041:3:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nodeType": "YulTypedName", - "src": "8049:3:2", - "type": "" - } - ], - "src": "7907:309:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "8368:166:2", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "8378:74:2", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "8444:3:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8449:2:2", - "type": "", - "value": "14" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "8385:58:2" + "scope": 295, + "src": "4136:224:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" }, - "nodeType": "YulFunctionCall", - "src": "8385:67:2" - }, - "variableNames": [ { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "8378:3:2" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "8473:3:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8478:1:2", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "8469:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "8469:11:2" - }, - { - "kind": "string", - "nodeType": "YulLiteral", - "src": "8482:16:2", - "type": "", - "value": "INVALID_SECRET" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "8462:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "8462:37:2" - }, - "nodeType": "YulExpressionStatement", - "src": "8462:37:2" - }, - { - "nodeType": "YulAssignment", - "src": "8509:19:2", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "8520:3:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8525:2:2", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "8516:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "8516:12:2" - }, - "variableNames": [ - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "8509:3:2" - } - ] - } - ] - }, - "name": "abi_encode_t_stringliteral_20442b474b3561be70a7e12c2acf875277f59e68e7748337cd68bf5c8ada064b_to_t_string_memory_ptr_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "8356:3:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nodeType": "YulTypedName", - "src": "8364:3:2", - "type": "" - } - ], - "src": "8222:312:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "8686:167:2", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "8696:74:2", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "8762:3:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8767:2:2", - "type": "", - "value": "15" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "8703:58:2" - }, - "nodeType": "YulFunctionCall", - "src": "8703:67:2" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "8696:3:2" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "8791:3:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8796:1:2", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "8787:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "8787:11:2" - }, - { - "kind": "string", - "nodeType": "YulLiteral", - "src": "8800:17:2", - "type": "", - "value": "SWAP_NOT_ACTIVE" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "8780:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "8780:38:2" - }, - "nodeType": "YulExpressionStatement", - "src": "8780:38:2" - }, - { - "nodeType": "YulAssignment", - "src": "8828:19:2", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "8839:3:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8844:2:2", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "8835:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "8835:12:2" - }, - "variableNames": [ - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "8828:3:2" - } - ] - } - ] - }, - "name": "abi_encode_t_stringliteral_afbfa7d3db262df0c92c413f0113503b1c1332dc5a4a874fcd8d6a6de57b74dd_to_t_string_memory_ptr_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "8674:3:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nodeType": "YulTypedName", - "src": "8682:3:2", - "type": "" - } - ], - "src": "8540:313:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "9005:164:2", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "9015:74:2", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "9081:3:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9086:2:2", - "type": "", - "value": "12" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "9022:58:2" - }, - "nodeType": "YulFunctionCall", - "src": "9022:67:2" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "9015:3:2" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "9110:3:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9115:1:2", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "9106:3:2" + "body": { + "id": 159, + "nodeType": "Block", + "src": "4749:382:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 131, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 127, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "4775:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Address_$295", + "typeString": "library Address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$295", + "typeString": "library Address" + } + ], + "id": 126, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4767:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 125, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4767:7:0", + "typeDescriptions": {} + } + }, + "id": 128, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4767:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 129, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4781:7:0", + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "4767:21:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 130, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 117, + "src": "4792:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4767:30:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c", + "id": 132, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4799:40:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", + "typeString": "literal_string \"Address: insufficient balance for call\"" + }, + "value": "Address: insufficient balance for call" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", + "typeString": "literal_string \"Address: insufficient balance for call\"" + } + ], + "id": 124, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "4759:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 133, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4759:81:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 134, + "nodeType": "ExpressionStatement", + "src": "4759:81:0" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 137, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 113, + "src": "4869:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 136, + "name": "isContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19, + "src": "4858:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 138, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4858:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374", + "id": 139, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4878:31:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", + "typeString": "literal_string \"Address: call to non-contract\"" + }, + "value": "Address: call to non-contract" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", + "typeString": "literal_string \"Address: call to non-contract\"" + } + ], + "id": 135, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "4850:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 140, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4850:60:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 141, + "nodeType": "ExpressionStatement", + "src": "4850:60:0" + }, + { + "assignments": [ + 143, + 145 + ], + "declarations": [ + { + "constant": false, + "id": 143, + "mutability": "mutable", + "name": "success", + "nameLocation": "4986:7:0", + "nodeType": "VariableDeclaration", + "scope": 159, + "src": "4981:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 142, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4981:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 145, + "mutability": "mutable", + "name": "returndata", + "nameLocation": "5008:10:0", + "nodeType": "VariableDeclaration", + "scope": 159, + "src": "4995:23:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 144, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4995:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 152, + "initialValue": { + "arguments": [ + { + "id": 150, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 115, + "src": "5050:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 146, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 113, + "src": "5022:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 147, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5029:4:0", + "memberName": "call", + "nodeType": "MemberAccess", + "src": "5022:11:0", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 149, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "id": 148, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 117, + "src": "5042:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "5022:27:0", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 151, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5022:33:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4980:75:0" + }, + { + "expression": { + "arguments": [ + { + "id": 154, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 143, + "src": "5090:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 155, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 145, + "src": "5099:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 156, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 119, + "src": "5111:12:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 153, + "name": "_verifyCallResult", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 294, + "src": "5072:17:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bool,bytes memory,string memory) pure returns (bytes memory)" + } + }, + "id": 157, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5072:52:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 123, + "id": 158, + "nodeType": "Return", + "src": "5065:59:0" + } + ] + }, + "documentation": { + "id": 111, + "nodeType": "StructuredDocumentation", + "src": "4366:237:0", + "text": " @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" + }, + "id": 160, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCallWithValue", + "nameLocation": "4617:21:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 120, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 113, + "mutability": "mutable", + "name": "target", + "nameLocation": "4647:6:0", + "nodeType": "VariableDeclaration", + "scope": 160, + "src": "4639:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 112, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4639:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 115, + "mutability": "mutable", + "name": "data", + "nameLocation": "4668:4:0", + "nodeType": "VariableDeclaration", + "scope": 160, + "src": "4655:17:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 114, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4655:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 117, + "mutability": "mutable", + "name": "value", + "nameLocation": "4682:5:0", + "nodeType": "VariableDeclaration", + "scope": 160, + "src": "4674:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 116, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4674:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 119, + "mutability": "mutable", + "name": "errorMessage", + "nameLocation": "4703:12:0", + "nodeType": "VariableDeclaration", + "scope": 160, + "src": "4689:26:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 118, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4689:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "4638:78:0" }, - "nodeType": "YulFunctionCall", - "src": "9106:11:2" - }, - { - "kind": "string", - "nodeType": "YulLiteral", - "src": "9119:14:2", - "type": "", - "value": "INVALID_TIME" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "9099:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "9099:35:2" - }, - "nodeType": "YulExpressionStatement", - "src": "9099:35:2" - }, - { - "nodeType": "YulAssignment", - "src": "9144:19:2", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "9155:3:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9160:2:2", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "9151:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "9151:12:2" - }, - "variableNames": [ - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "9144:3:2" - } - ] - } - ] - }, - "name": "abi_encode_t_stringliteral_b98f3e47db5919a8c78ec10ff6bf7d1326066d3facdc164cf7441d38cae771df_to_t_string_memory_ptr_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "8993:3:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nodeType": "YulTypedName", - "src": "9001:3:2", - "type": "" - } - ], - "src": "8859:310:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "9321:166:2", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "9331:74:2", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "9397:3:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9402:2:2", - "type": "", - "value": "14" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "9338:58:2" - }, - "nodeType": "YulFunctionCall", - "src": "9338:67:2" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "9331:3:2" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "9426:3:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9431:1:2", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "9422:3:2" + "returnParameters": { + "id": 123, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 122, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 160, + "src": "4735:12:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 121, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4735:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "4734:14:0" }, - "nodeType": "YulFunctionCall", - "src": "9422:11:2" - }, - { - "kind": "string", - "nodeType": "YulLiteral", - "src": "9435:16:2", - "type": "", - "value": "INVALID_AMOUNT" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "9415:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "9415:37:2" - }, - "nodeType": "YulExpressionStatement", - "src": "9415:37:2" - }, - { - "nodeType": "YulAssignment", - "src": "9462:19:2", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "9473:3:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "9478:2:2", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "9469:3:2" + "scope": 295, + "src": "4608:523:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" }, - "nodeType": "YulFunctionCall", - "src": "9469:12:2" - }, - "variableNames": [ { - "name": "end", - "nodeType": "YulIdentifier", - "src": "9462:3:2" - } - ] - } - ] - }, - "name": "abi_encode_t_stringliteral_eb6dbbf3194e9f4dd39c8dabe51ddb59ca6ad00c50b1bc74675ce4b263687722_to_t_string_memory_ptr_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "9309:3:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nodeType": "YulTypedName", - "src": "9317:3:2", - "type": "" - } - ], - "src": "9175:312:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "9548:53:2", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "9565:3:2" - }, - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "9588:5:2" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nodeType": "YulIdentifier", - "src": "9570:17:2" - }, - "nodeType": "YulFunctionCall", - "src": "9570:24:2" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "9558:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "9558:37:2" - }, - "nodeType": "YulExpressionStatement", - "src": "9558:37:2" - } - ] - }, - "name": "abi_encode_t_uint256_to_t_uint256", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "9536:5:2", - "type": "" - }, - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "9543:3:2", - "type": "" - } - ], - "src": "9493:108:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "9672:53:2", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "9689:3:2" - }, - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "9712:5:2" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nodeType": "YulIdentifier", - "src": "9694:17:2" + "body": { + "id": 176, + "nodeType": "Block", + "src": "5408:97:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 171, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 163, + "src": "5444:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 172, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 165, + "src": "5452:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564", + "id": 173, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5458:39:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0", + "typeString": "literal_string \"Address: low-level static call failed\"" + }, + "value": "Address: low-level static call failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0", + "typeString": "literal_string \"Address: low-level static call failed\"" + } + ], + "id": 170, + "name": "functionStaticCall", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 177, + 212 + ], + "referencedDeclaration": 212, + "src": "5425:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,string memory) view returns (bytes memory)" + } + }, + "id": 174, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5425:73:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 169, + "id": 175, + "nodeType": "Return", + "src": "5418:80:0" + } + ] + }, + "documentation": { + "id": 161, + "nodeType": "StructuredDocumentation", + "src": "5137:166:0", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" + }, + "id": 177, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionStaticCall", + "nameLocation": "5317:18:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 166, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 163, + "mutability": "mutable", + "name": "target", + "nameLocation": "5344:6:0", + "nodeType": "VariableDeclaration", + "scope": 177, + "src": "5336:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 162, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5336:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 165, + "mutability": "mutable", + "name": "data", + "nameLocation": "5365:4:0", + "nodeType": "VariableDeclaration", + "scope": 177, + "src": "5352:17:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 164, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5352:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "5335:35:0" }, - "nodeType": "YulFunctionCall", - "src": "9694:24:2" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "9682:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "9682:37:2" - }, - "nodeType": "YulExpressionStatement", - "src": "9682:37:2" - } - ] - }, - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "9660:5:2", - "type": "" - }, - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "9667:3:2", - "type": "" - } - ], - "src": "9607:118:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "9814:74:2", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "9831:3:2" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "9874:5:2" - } + "returnParameters": { + "id": 169, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 168, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 177, + "src": "5394:12:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 167, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5394:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } ], - "functionName": { - "name": "cleanup_t_uint256", - "nodeType": "YulIdentifier", - "src": "9856:17:2" - }, - "nodeType": "YulFunctionCall", - "src": "9856:24:2" - } - ], - "functionName": { - "name": "leftAlign_t_uint256", - "nodeType": "YulIdentifier", - "src": "9836:19:2" + "src": "5393:14:0" }, - "nodeType": "YulFunctionCall", - "src": "9836:45:2" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "9824:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "9824:58:2" - }, - "nodeType": "YulExpressionStatement", - "src": "9824:58:2" - } - ] - }, - "name": "abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "9802:5:2", - "type": "" - }, - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "9809:3:2", - "type": "" - } - ], - "src": "9731:157:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "10150:705:2", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "10223:6:2" - }, - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "10232:3:2" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack", - "nodeType": "YulIdentifier", - "src": "10161:61:2" - }, - "nodeType": "YulFunctionCall", - "src": "10161:75:2" - }, - "nodeType": "YulExpressionStatement", - "src": "10161:75:2" - }, - { - "nodeType": "YulAssignment", - "src": "10245:19:2", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "10256:3:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10261:2:2", - "type": "", - "value": "20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "10252:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "10252:12:2" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "10245:3:2" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "10336:6:2" - }, - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "10345:3:2" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack", - "nodeType": "YulIdentifier", - "src": "10274:61:2" - }, - "nodeType": "YulFunctionCall", - "src": "10274:75:2" - }, - "nodeType": "YulExpressionStatement", - "src": "10274:75:2" - }, - { - "nodeType": "YulAssignment", - "src": "10358:19:2", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "10369:3:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10374:2:2", - "type": "", - "value": "20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "10365:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "10365:12:2" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "10358:3:2" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value2", - "nodeType": "YulIdentifier", - "src": "10449:6:2" - }, - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "10458:3:2" - } - ], - "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack", - "nodeType": "YulIdentifier", - "src": "10387:61:2" - }, - "nodeType": "YulFunctionCall", - "src": "10387:75:2" - }, - "nodeType": "YulExpressionStatement", - "src": "10387:75:2" - }, - { - "nodeType": "YulAssignment", - "src": "10471:19:2", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "10482:3:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10487:2:2", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "10478:3:2" + "scope": 295, + "src": "5308:197:0", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" }, - "nodeType": "YulFunctionCall", - "src": "10478:12:2" - }, - "variableNames": [ { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "10471:3:2" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value3", - "nodeType": "YulIdentifier", - "src": "10562:6:2" - }, - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "10571:3:2" - } - ], - "functionName": { - "name": "abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack", - "nodeType": "YulIdentifier", - "src": "10500:61:2" - }, - "nodeType": "YulFunctionCall", - "src": "10500:75:2" - }, - "nodeType": "YulExpressionStatement", - "src": "10500:75:2" - }, - { - "nodeType": "YulAssignment", - "src": "10584:19:2", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "10595:3:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10600:2:2", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "10591:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "10591:12:2" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "10584:3:2" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value4", - "nodeType": "YulIdentifier", - "src": "10675:6:2" - }, - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "10684:3:2" - } - ], - "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack", - "nodeType": "YulIdentifier", - "src": "10613:61:2" - }, - "nodeType": "YulFunctionCall", - "src": "10613:75:2" - }, - "nodeType": "YulExpressionStatement", - "src": "10613:75:2" - }, - { - "nodeType": "YulAssignment", - "src": "10697:19:2", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "10708:3:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10713:2:2", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "10704:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "10704:12:2" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "10697:3:2" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value5", - "nodeType": "YulIdentifier", - "src": "10788:6:2" - }, - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "10797:3:2" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack", - "nodeType": "YulIdentifier", - "src": "10726:61:2" - }, - "nodeType": "YulFunctionCall", - "src": "10726:75:2" - }, - "nodeType": "YulExpressionStatement", - "src": "10726:75:2" - }, - { - "nodeType": "YulAssignment", - "src": "10810:19:2", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "10821:3:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "10826:2:2", - "type": "", - "value": "20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "10817:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "10817:12:2" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "10810:3:2" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "10839:10:2", - "value": { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "10846:3:2" - }, - "variableNames": [ - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "10839:3:2" - } - ] - } - ] - }, - "name": "abi_encode_tuple_packed_t_address_t_address_t_uint256_t_bytes32_t_uint256_t_address__to_t_address_t_address_t_uint256_t_bytes32_t_uint256_t_address__nonPadded_inplace_fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "10089:3:2", - "type": "" - }, - { - "name": "value5", - "nodeType": "YulTypedName", - "src": "10095:6:2", - "type": "" - }, - { - "name": "value4", - "nodeType": "YulTypedName", - "src": "10103:6:2", - "type": "" - }, - { - "name": "value3", - "nodeType": "YulTypedName", - "src": "10111:6:2", - "type": "" - }, - { - "name": "value2", - "nodeType": "YulTypedName", - "src": "10119:6:2", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "10127:6:2", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "10135:6:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nodeType": "YulTypedName", - "src": "10146:3:2", - "type": "" - } - ], - "src": "9894:961:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "10977:140:2", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "11050:6:2" - }, - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "11059:3:2" - } - ], - "functionName": { - "name": "abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack", - "nodeType": "YulIdentifier", - "src": "10988:61:2" - }, - "nodeType": "YulFunctionCall", - "src": "10988:75:2" - }, - "nodeType": "YulExpressionStatement", - "src": "10988:75:2" - }, - { - "nodeType": "YulAssignment", - "src": "11072:19:2", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "11083:3:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11088:2:2", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "11079:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "11079:12:2" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "11072:3:2" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "11101:10:2", - "value": { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "11108:3:2" - }, - "variableNames": [ - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "11101:3:2" - } - ] - } - ] - }, - "name": "abi_encode_tuple_packed_t_bytes32__to_t_bytes32__nonPadded_inplace_fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "10956:3:2", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "10962:6:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nodeType": "YulTypedName", - "src": "10973:3:2", - "type": "" - } - ], - "src": "10861:256:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "11257:137:2", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "11268:100:2", - "value": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "11355:6:2" - }, - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "11364:3:2" - } - ], - "functionName": { - "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", - "nodeType": "YulIdentifier", - "src": "11275:79:2" - }, - "nodeType": "YulFunctionCall", - "src": "11275:93:2" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "11268:3:2" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "11378:10:2", - "value": { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "11385:3:2" - }, - "variableNames": [ - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "11378:3:2" - } - ] - } - ] - }, - "name": "abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "11236:3:2", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "11242:6:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nodeType": "YulTypedName", - "src": "11253:3:2", - "type": "" - } - ], - "src": "11123:271:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "11554:288:2", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "11564:26:2", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "11576:9:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11587:2:2", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "11572:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "11572:18:2" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "11564:4:2" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "11644:6:2" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "11657:9:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11668:1:2", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "11653:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "11653:17:2" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nodeType": "YulIdentifier", - "src": "11600:43:2" - }, - "nodeType": "YulFunctionCall", - "src": "11600:71:2" - }, - "nodeType": "YulExpressionStatement", - "src": "11600:71:2" - }, - { - "expression": { - "arguments": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "11725:6:2" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "11738:9:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11749:2:2", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "11734:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "11734:18:2" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nodeType": "YulIdentifier", - "src": "11681:43:2" - }, - "nodeType": "YulFunctionCall", - "src": "11681:72:2" - }, - "nodeType": "YulExpressionStatement", - "src": "11681:72:2" - }, - { - "expression": { - "arguments": [ - { - "name": "value2", - "nodeType": "YulIdentifier", - "src": "11807:6:2" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "11820:9:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "11831:2:2", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "11816:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "11816:18:2" - } - ], - "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nodeType": "YulIdentifier", - "src": "11763:43:2" - }, - "nodeType": "YulFunctionCall", - "src": "11763:72:2" - }, - "nodeType": "YulExpressionStatement", - "src": "11763:72:2" - } - ] - }, - "name": "abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "11510:9:2", - "type": "" - }, - { - "name": "value2", - "nodeType": "YulTypedName", - "src": "11522:6:2", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "11530:6:2", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "11538:6:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "11549:4:2", - "type": "" - } - ], - "src": "11400:442:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "11974:206:2", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "11984:26:2", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "11996:9:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "12007:2:2", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "11992:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "11992:18:2" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "11984:4:2" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "12064:6:2" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "12077:9:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "12088:1:2", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "12073:3:2" + "body": { + "id": 211, + "nodeType": "Block", + "src": "5817:288:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 191, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 180, + "src": "5846:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 190, + "name": "isContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19, + "src": "5835:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5835:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a207374617469632063616c6c20746f206e6f6e2d636f6e7472616374", + "id": 193, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5855:38:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9", + "typeString": "literal_string \"Address: static call to non-contract\"" + }, + "value": "Address: static call to non-contract" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9", + "typeString": "literal_string \"Address: static call to non-contract\"" + } + ], + "id": 189, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "5827:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 194, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5827:67:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 195, + "nodeType": "ExpressionStatement", + "src": "5827:67:0" + }, + { + "assignments": [ + 197, + 199 + ], + "declarations": [ + { + "constant": false, + "id": 197, + "mutability": "mutable", + "name": "success", + "nameLocation": "5970:7:0", + "nodeType": "VariableDeclaration", + "scope": 211, + "src": "5965:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 196, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5965:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 199, + "mutability": "mutable", + "name": "returndata", + "nameLocation": "5992:10:0", + "nodeType": "VariableDeclaration", + "scope": 211, + "src": "5979:23:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 198, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5979:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 204, + "initialValue": { + "arguments": [ + { + "id": 202, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 182, + "src": "6024:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 200, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 180, + "src": "6006:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 201, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6013:10:0", + "memberName": "staticcall", + "nodeType": "MemberAccess", + "src": "6006:17:0", + "typeDescriptions": { + "typeIdentifier": "t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) view returns (bool,bytes memory)" + } + }, + "id": 203, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6006:23:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5964:65:0" + }, + { + "expression": { + "arguments": [ + { + "id": 206, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 197, + "src": "6064:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 207, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 199, + "src": "6073:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 208, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 184, + "src": "6085:12:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 205, + "name": "_verifyCallResult", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 294, + "src": "6046:17:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bool,bytes memory,string memory) pure returns (bytes memory)" + } + }, + "id": 209, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6046:52:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 188, + "id": 210, + "nodeType": "Return", + "src": "6039:59:0" + } + ] + }, + "documentation": { + "id": 178, + "nodeType": "StructuredDocumentation", + "src": "5511:173:0", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" + }, + "id": 212, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionStaticCall", + "nameLocation": "5698:18:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 185, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 180, + "mutability": "mutable", + "name": "target", + "nameLocation": "5725:6:0", + "nodeType": "VariableDeclaration", + "scope": 212, + "src": "5717:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 179, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5717:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 182, + "mutability": "mutable", + "name": "data", + "nameLocation": "5746:4:0", + "nodeType": "VariableDeclaration", + "scope": 212, + "src": "5733:17:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 181, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5733:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 184, + "mutability": "mutable", + "name": "errorMessage", + "nameLocation": "5766:12:0", + "nodeType": "VariableDeclaration", + "scope": 212, + "src": "5752:26:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 183, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "5752:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "5716:63:0" }, - "nodeType": "YulFunctionCall", - "src": "12073:17:2" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nodeType": "YulIdentifier", - "src": "12020:43:2" - }, - "nodeType": "YulFunctionCall", - "src": "12020:71:2" - }, - "nodeType": "YulExpressionStatement", - "src": "12020:71:2" - }, - { - "expression": { - "arguments": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "12145:6:2" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "12158:9:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "12169:2:2", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "12154:3:2" + "returnParameters": { + "id": 188, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 187, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 212, + "src": "5803:12:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 186, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5803:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "5802:14:0" }, - "nodeType": "YulFunctionCall", - "src": "12154:18:2" - } - ], - "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nodeType": "YulIdentifier", - "src": "12101:43:2" - }, - "nodeType": "YulFunctionCall", - "src": "12101:72:2" - }, - "nodeType": "YulExpressionStatement", - "src": "12101:72:2" - } - ] - }, - "name": "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "11938:9:2", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "11950:6:2", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "11958:6:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "11969:4:2", - "type": "" - } - ], - "src": "11848:332:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "12334:225:2", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "12344:26:2", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "12356:9:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "12367:2:2", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "12352:3:2" + "scope": 295, + "src": "5689:416:0", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" }, - "nodeType": "YulFunctionCall", - "src": "12352:18:2" - }, - "variableNames": [ { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "12344:4:2" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "12391:9:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "12402:1:2", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "12387:3:2" + "body": { + "id": 228, + "nodeType": "Block", + "src": "6381:101:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 223, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 215, + "src": "6419:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 224, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 217, + "src": "6427:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "id": 225, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6433:41:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398", + "typeString": "literal_string \"Address: low-level delegate call failed\"" + }, + "value": "Address: low-level delegate call failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398", + "typeString": "literal_string \"Address: low-level delegate call failed\"" + } + ], + "id": 222, + "name": "functionDelegateCall", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 229, + 264 + ], + "referencedDeclaration": 264, + "src": "6398:20:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" + } + }, + "id": 226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6398:77:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 221, + "id": 227, + "nodeType": "Return", + "src": "6391:84:0" + } + ] + }, + "documentation": { + "id": 213, + "nodeType": "StructuredDocumentation", + "src": "6111:168:0", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" + }, + "id": 229, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionDelegateCall", + "nameLocation": "6293:20:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 218, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 215, + "mutability": "mutable", + "name": "target", + "nameLocation": "6322:6:0", + "nodeType": "VariableDeclaration", + "scope": 229, + "src": "6314:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 214, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6314:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 217, + "mutability": "mutable", + "name": "data", + "nameLocation": "6343:4:0", + "nodeType": "VariableDeclaration", + "scope": 229, + "src": "6330:17:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 216, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6330:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "6313:35:0" }, - "nodeType": "YulFunctionCall", - "src": "12387:17:2" - }, - { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "12410:4:2" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "12416:9:2" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "12406:3:2" + "returnParameters": { + "id": 221, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 220, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 229, + "src": "6367:12:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 219, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6367:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "6366:14:0" }, - "nodeType": "YulFunctionCall", - "src": "12406:20:2" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "12380:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "12380:47:2" - }, - "nodeType": "YulExpressionStatement", - "src": "12380:47:2" - }, - { - "nodeType": "YulAssignment", - "src": "12436:116:2", - "value": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "12538:6:2" - }, - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "12547:4:2" - } - ], - "functionName": { - "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "12444:93:2" - }, - "nodeType": "YulFunctionCall", - "src": "12444:108:2" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "12436:4:2" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "12306:9:2", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "12318:6:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "12329:4:2", - "type": "" - } - ], - "src": "12186:373:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "12691:206:2", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "12701:26:2", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "12713:9:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "12724:2:2", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "12709:3:2" + "scope": 295, + "src": "6284:198:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" }, - "nodeType": "YulFunctionCall", - "src": "12709:18:2" - }, - "variableNames": [ { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "12701:4:2" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "12781:6:2" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "12794:9:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "12805:1:2", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "12790:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "12790:17:2" - } - ], - "functionName": { - "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", - "nodeType": "YulIdentifier", - "src": "12737:43:2" - }, - "nodeType": "YulFunctionCall", - "src": "12737:71:2" - }, - "nodeType": "YulExpressionStatement", - "src": "12737:71:2" - }, - { - "expression": { - "arguments": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "12862:6:2" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "12875:9:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "12886:2:2", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "12871:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "12871:18:2" - } - ], - "functionName": { - "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", - "nodeType": "YulIdentifier", - "src": "12818:43:2" - }, - "nodeType": "YulFunctionCall", - "src": "12818:72:2" - }, - "nodeType": "YulExpressionStatement", - "src": "12818:72:2" - } - ] - }, - "name": "abi_encode_tuple_t_bytes32_t_bytes32__to_t_bytes32_t_bytes32__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "12655:9:2", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "12667:6:2", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "12675:6:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "12686:4:2", - "type": "" - } - ], - "src": "12565:332:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "13057:288:2", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "13067:26:2", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "13079:9:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "13090:2:2", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "13075:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "13075:18:2" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "13067:4:2" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "13147:6:2" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "13160:9:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "13171:1:2", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "13156:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "13156:17:2" - } - ], - "functionName": { - "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", - "nodeType": "YulIdentifier", - "src": "13103:43:2" - }, - "nodeType": "YulFunctionCall", - "src": "13103:71:2" - }, - "nodeType": "YulExpressionStatement", - "src": "13103:71:2" - }, - { - "expression": { - "arguments": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "13228:6:2" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "13241:9:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "13252:2:2", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "13237:3:2" + "body": { + "id": 263, + "nodeType": "Block", + "src": "6793:292:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 243, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 232, + "src": "6822:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 242, + "name": "isContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19, + "src": "6811:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 244, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6811:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6e7472616374", + "id": 245, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6831:40:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520", + "typeString": "literal_string \"Address: delegate call to non-contract\"" + }, + "value": "Address: delegate call to non-contract" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520", + "typeString": "literal_string \"Address: delegate call to non-contract\"" + } + ], + "id": 241, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "6803:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6803:69:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 247, + "nodeType": "ExpressionStatement", + "src": "6803:69:0" + }, + { + "assignments": [ + 249, + 251 + ], + "declarations": [ + { + "constant": false, + "id": 249, + "mutability": "mutable", + "name": "success", + "nameLocation": "6948:7:0", + "nodeType": "VariableDeclaration", + "scope": 263, + "src": "6943:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 248, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6943:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 251, + "mutability": "mutable", + "name": "returndata", + "nameLocation": "6970:10:0", + "nodeType": "VariableDeclaration", + "scope": 263, + "src": "6957:23:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 250, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6957:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 256, + "initialValue": { + "arguments": [ + { + "id": 254, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 234, + "src": "7004:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 252, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 232, + "src": "6984:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 253, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6991:12:0", + "memberName": "delegatecall", + "nodeType": "MemberAccess", + "src": "6984:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) returns (bool,bytes memory)" + } + }, + "id": 255, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6984:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6942:67:0" + }, + { + "expression": { + "arguments": [ + { + "id": 258, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 249, + "src": "7044:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 259, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 251, + "src": "7053:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 260, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 236, + "src": "7065:12:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 257, + "name": "_verifyCallResult", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 294, + "src": "7026:17:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bool,bytes memory,string memory) pure returns (bytes memory)" + } + }, + "id": 261, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7026:52:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 240, + "id": 262, + "nodeType": "Return", + "src": "7019:59:0" + } + ] + }, + "documentation": { + "id": 230, + "nodeType": "StructuredDocumentation", + "src": "6488:175:0", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" + }, + "id": 264, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionDelegateCall", + "nameLocation": "6677:20:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 237, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 232, + "mutability": "mutable", + "name": "target", + "nameLocation": "6706:6:0", + "nodeType": "VariableDeclaration", + "scope": 264, + "src": "6698:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 231, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6698:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 234, + "mutability": "mutable", + "name": "data", + "nameLocation": "6727:4:0", + "nodeType": "VariableDeclaration", + "scope": 264, + "src": "6714:17:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 233, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6714:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 236, + "mutability": "mutable", + "name": "errorMessage", + "nameLocation": "6747:12:0", + "nodeType": "VariableDeclaration", + "scope": 264, + "src": "6733:26:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 235, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6733:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "6697:63:0" }, - "nodeType": "YulFunctionCall", - "src": "13237:18:2" - } - ], - "functionName": { - "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", - "nodeType": "YulIdentifier", - "src": "13184:43:2" - }, - "nodeType": "YulFunctionCall", - "src": "13184:72:2" - }, - "nodeType": "YulExpressionStatement", - "src": "13184:72:2" - }, - { - "expression": { - "arguments": [ - { - "name": "value2", - "nodeType": "YulIdentifier", - "src": "13310:6:2" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "13323:9:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "13334:2:2", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "13319:3:2" + "returnParameters": { + "id": 240, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 239, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 264, + "src": "6779:12:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 238, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6779:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "6778:14:0" }, - "nodeType": "YulFunctionCall", - "src": "13319:18:2" - } - ], - "functionName": { - "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", - "nodeType": "YulIdentifier", - "src": "13266:43:2" - }, - "nodeType": "YulFunctionCall", - "src": "13266:72:2" - }, - "nodeType": "YulExpressionStatement", - "src": "13266:72:2" - } - ] - }, - "name": "abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32__to_t_bytes32_t_bytes32_t_bytes32__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "13013:9:2", - "type": "" - }, - { - "name": "value2", - "nodeType": "YulTypedName", - "src": "13025:6:2", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "13033:6:2", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "13041:6:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "13052:4:2", - "type": "" - } - ], - "src": "12903:442:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "13522:248:2", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "13532:26:2", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "13544:9:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "13555:2:2", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "13540:3:2" + "scope": 295, + "src": "6668:417:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" }, - "nodeType": "YulFunctionCall", - "src": "13540:18:2" - }, - "variableNames": [ { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "13532:4:2" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "13579:9:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "13590:1:2", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "13575:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "13575:17:2" - }, - { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "13598:4:2" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "13604:9:2" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "13594:3:2" + "body": { + "id": 293, + "nodeType": "Block", + "src": "7220:596:0", + "statements": [ + { + "condition": { + "id": 275, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 266, + "src": "7234:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 291, + "nodeType": "Block", + "src": "7291:519:0", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 279, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 268, + "src": "7375:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7386:6:0", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "7375:17:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 281, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7395:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7375:21:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 289, + "nodeType": "Block", + "src": "7747:53:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 286, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 270, + "src": "7772:12:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 285, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967277, + 4294967277 + ], + "referencedDeclaration": 4294967277, + "src": "7765:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7765:20:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 288, + "nodeType": "ExpressionStatement", + "src": "7765:20:0" + } + ] + }, + "id": 290, + "nodeType": "IfStatement", + "src": "7371:429:0", + "trueBody": { + "id": 284, + "nodeType": "Block", + "src": "7398:343:0", + "statements": [ + { + "AST": { + "nodeType": "YulBlock", + "src": "7582:145:0", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7604:40:0", + "value": { + "arguments": [ + { + "name": "returndata", + "nodeType": "YulIdentifier", + "src": "7633:10:0" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "7627:5:0" + }, + "nodeType": "YulFunctionCall", + "src": "7627:17:0" + }, + "variables": [ + { + "name": "returndata_size", + "nodeType": "YulTypedName", + "src": "7608:15:0", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7676:2:0", + "type": "", + "value": "32" + }, + { + "name": "returndata", + "nodeType": "YulIdentifier", + "src": "7680:10:0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7672:3:0" + }, + "nodeType": "YulFunctionCall", + "src": "7672:19:0" + }, + { + "name": "returndata_size", + "nodeType": "YulIdentifier", + "src": "7693:15:0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "7665:6:0" + }, + "nodeType": "YulFunctionCall", + "src": "7665:44:0" + }, + "nodeType": "YulExpressionStatement", + "src": "7665:44:0" + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 268, + "isOffset": false, + "isSlot": false, + "src": "7633:10:0", + "valueSize": 1 + }, + { + "declaration": 268, + "isOffset": false, + "isSlot": false, + "src": "7680:10:0", + "valueSize": 1 + } + ], + "id": 283, + "nodeType": "InlineAssembly", + "src": "7573:154:0" + } + ] + } + } + ] + }, + "id": 292, + "nodeType": "IfStatement", + "src": "7230:580:0", + "trueBody": { + "id": 278, + "nodeType": "Block", + "src": "7243:42:0", + "statements": [ + { + "expression": { + "id": 276, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 268, + "src": "7264:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 274, + "id": 277, + "nodeType": "Return", + "src": "7257:17:0" + } + ] + } + } + ] + }, + "id": 294, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_verifyCallResult", + "nameLocation": "7100:17:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 271, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 266, + "mutability": "mutable", + "name": "success", + "nameLocation": "7123:7:0", + "nodeType": "VariableDeclaration", + "scope": 294, + "src": "7118:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 265, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "7118:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 268, + "mutability": "mutable", + "name": "returndata", + "nameLocation": "7145:10:0", + "nodeType": "VariableDeclaration", + "scope": 294, + "src": "7132:23:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 267, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "7132:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 270, + "mutability": "mutable", + "name": "errorMessage", + "nameLocation": "7171:12:0", + "nodeType": "VariableDeclaration", + "scope": 294, + "src": "7157:26:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 269, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "7157:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "7117:67:0" }, - "nodeType": "YulFunctionCall", - "src": "13594:20:2" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "13568:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "13568:47:2" - }, - "nodeType": "YulExpressionStatement", - "src": "13568:47:2" - }, - { - "nodeType": "YulAssignment", - "src": "13624:139:2", - "value": { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "13758:4:2" - } - ], - "functionName": { - "name": "abi_encode_t_stringliteral_10858945dd31484ce6a77564821a1a6ff0e82939d9bea2b8e6caae50c7fc3750_to_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "13632:124:2" - }, - "nodeType": "YulFunctionCall", - "src": "13632:131:2" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "13624:4:2" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_stringliteral_10858945dd31484ce6a77564821a1a6ff0e82939d9bea2b8e6caae50c7fc3750__to_t_string_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "13502:9:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "13517:4:2", - "type": "" - } - ], - "src": "13351:419:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "13947:248:2", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "13957:26:2", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "13969:9:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "13980:2:2", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "13965:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "13965:18:2" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "13957:4:2" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "14004:9:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "14015:1:2", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "14000:3:2" + "returnParameters": { + "id": 274, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 273, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 294, + "src": "7206:12:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 272, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "7206:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "7205:14:0" + }, + "scope": 295, + "src": "7091:725:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + } + ], + "scope": 1008, + "src": "134:7684:0", + "usedErrors": [] + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC20", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 296, + "nodeType": "StructuredDocumentation", + "src": "7820:70:0", + "text": " @dev Interface of the ERC20 standard as defined in the EIP." + }, + "fullyImplemented": false, + "id": 371, + "linearizedBaseContracts": [ + 371 + ], + "name": "IERC20", + "nameLocation": "7901:6:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 297, + "nodeType": "StructuredDocumentation", + "src": "7914:66:0", + "text": " @dev Returns the amount of tokens in existence." + }, + "functionSelector": "18160ddd", + "id": 302, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nameLocation": "7994:11:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 298, + "nodeType": "ParameterList", + "parameters": [], + "src": "8005:2:0" + }, + "returnParameters": { + "id": 301, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 300, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 302, + "src": "8031:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 299, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8031:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8030:9:0" + }, + "scope": 371, + "src": "7985:55:0", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 303, + "nodeType": "StructuredDocumentation", + "src": "8046:72:0", + "text": " @dev Returns the amount of tokens owned by `account`." + }, + "functionSelector": "70a08231", + "id": 310, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nameLocation": "8132:9:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 306, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 305, + "mutability": "mutable", + "name": "account", + "nameLocation": "8150:7:0", + "nodeType": "VariableDeclaration", + "scope": 310, + "src": "8142:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 304, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8142:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "8141:17:0" }, - "nodeType": "YulFunctionCall", - "src": "14000:17:2" - }, - { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "14023:4:2" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "14029:9:2" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "14019:3:2" + "returnParameters": { + "id": 309, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 308, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 310, + "src": "8182:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 307, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8182:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8181:9:0" + }, + "scope": 371, + "src": "8123:68:0", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 311, + "nodeType": "StructuredDocumentation", + "src": "8197:209:0", + "text": " @dev Moves `amount` tokens from the caller's account to `recipient`.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event." + }, + "functionSelector": "a9059cbb", + "id": 320, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nameLocation": "8420:8:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 316, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 313, + "mutability": "mutable", + "name": "recipient", + "nameLocation": "8437:9:0", + "nodeType": "VariableDeclaration", + "scope": 320, + "src": "8429:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 312, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8429:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 315, + "mutability": "mutable", + "name": "amount", + "nameLocation": "8456:6:0", + "nodeType": "VariableDeclaration", + "scope": 320, + "src": "8448:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 314, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8448:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8428:35:0" }, - "nodeType": "YulFunctionCall", - "src": "14019:20:2" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "13993:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "13993:47:2" - }, - "nodeType": "YulExpressionStatement", - "src": "13993:47:2" - }, - { - "nodeType": "YulAssignment", - "src": "14049:139:2", - "value": { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "14183:4:2" - } - ], - "functionName": { - "name": "abi_encode_t_stringliteral_20442b474b3561be70a7e12c2acf875277f59e68e7748337cd68bf5c8ada064b_to_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "14057:124:2" - }, - "nodeType": "YulFunctionCall", - "src": "14057:131:2" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "14049:4:2" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_stringliteral_20442b474b3561be70a7e12c2acf875277f59e68e7748337cd68bf5c8ada064b__to_t_string_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "13927:9:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "13942:4:2", - "type": "" - } - ], - "src": "13776:419:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "14372:248:2", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "14382:26:2", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "14394:9:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "14405:2:2", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "14390:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "14390:18:2" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "14382:4:2" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "14429:9:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "14440:1:2", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "14425:3:2" + "returnParameters": { + "id": 319, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 318, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 320, + "src": "8482:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 317, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8482:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "8481:6:0" + }, + "scope": 371, + "src": "8411:77:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 321, + "nodeType": "StructuredDocumentation", + "src": "8494:264:0", + "text": " @dev Returns the remaining number of tokens that `spender` will be\n allowed to spend on behalf of `owner` through {transferFrom}. This is\n zero by default.\n This value changes when {approve} or {transferFrom} are called." + }, + "functionSelector": "dd62ed3e", + "id": 330, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nameLocation": "8772:9:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 326, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 323, + "mutability": "mutable", + "name": "owner", + "nameLocation": "8790:5:0", + "nodeType": "VariableDeclaration", + "scope": 330, + "src": "8782:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 322, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8782:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 325, + "mutability": "mutable", + "name": "spender", + "nameLocation": "8805:7:0", + "nodeType": "VariableDeclaration", + "scope": 330, + "src": "8797:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 324, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8797:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "8781:32:0" }, - "nodeType": "YulFunctionCall", - "src": "14425:17:2" - }, - { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "14448:4:2" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "14454:9:2" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "14444:3:2" + "returnParameters": { + "id": 329, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 328, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 330, + "src": "8837:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 327, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8837:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8836:9:0" + }, + "scope": 371, + "src": "8763:83:0", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 331, + "nodeType": "StructuredDocumentation", + "src": "8852:642:0", + "text": " @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n Returns a boolean value indicating whether the operation succeeded.\n IMPORTANT: Beware that changing an allowance with this method brings the risk\n that someone may use both the old and the new allowance by unfortunate\n transaction ordering. One possible solution to mitigate this race\n condition is to first reduce the spender's allowance to 0 and set the\n desired value afterwards:\n https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n Emits an {Approval} event." + }, + "functionSelector": "095ea7b3", + "id": 340, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nameLocation": "9508:7:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 336, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 333, + "mutability": "mutable", + "name": "spender", + "nameLocation": "9524:7:0", + "nodeType": "VariableDeclaration", + "scope": 340, + "src": "9516:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 332, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9516:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 335, + "mutability": "mutable", + "name": "amount", + "nameLocation": "9541:6:0", + "nodeType": "VariableDeclaration", + "scope": 340, + "src": "9533:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 334, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9533:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9515:33:0" }, - "nodeType": "YulFunctionCall", - "src": "14444:20:2" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "14418:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "14418:47:2" - }, - "nodeType": "YulExpressionStatement", - "src": "14418:47:2" - }, - { - "nodeType": "YulAssignment", - "src": "14474:139:2", - "value": { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "14608:4:2" - } - ], - "functionName": { - "name": "abi_encode_t_stringliteral_afbfa7d3db262df0c92c413f0113503b1c1332dc5a4a874fcd8d6a6de57b74dd_to_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "14482:124:2" - }, - "nodeType": "YulFunctionCall", - "src": "14482:131:2" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "14474:4:2" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_stringliteral_afbfa7d3db262df0c92c413f0113503b1c1332dc5a4a874fcd8d6a6de57b74dd__to_t_string_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "14352:9:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "14367:4:2", - "type": "" - } - ], - "src": "14201:419:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "14797:248:2", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "14807:26:2", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "14819:9:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "14830:2:2", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "14815:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "14815:18:2" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "14807:4:2" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "14854:9:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "14865:1:2", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "14850:3:2" + "returnParameters": { + "id": 339, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 338, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 340, + "src": "9567:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 337, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "9567:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "9566:6:0" + }, + "scope": 371, + "src": "9499:74:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 341, + "nodeType": "StructuredDocumentation", + "src": "9579:296:0", + "text": " @dev Moves `amount` tokens from `sender` to `recipient` using the\n allowance mechanism. `amount` is then deducted from the caller's\n allowance.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event." + }, + "functionSelector": "23b872dd", + "id": 352, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nameLocation": "9889:12:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 348, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 343, + "mutability": "mutable", + "name": "sender", + "nameLocation": "9910:6:0", + "nodeType": "VariableDeclaration", + "scope": 352, + "src": "9902:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 342, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9902:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 345, + "mutability": "mutable", + "name": "recipient", + "nameLocation": "9926:9:0", + "nodeType": "VariableDeclaration", + "scope": 352, + "src": "9918:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 344, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9918:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 347, + "mutability": "mutable", + "name": "amount", + "nameLocation": "9945:6:0", + "nodeType": "VariableDeclaration", + "scope": 352, + "src": "9937:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 346, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9937:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9901:51:0" }, - "nodeType": "YulFunctionCall", - "src": "14850:17:2" - }, - { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "14873:4:2" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "14879:9:2" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "14869:3:2" + "returnParameters": { + "id": 351, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 350, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 352, + "src": "9971:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 349, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "9971:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "9970:6:0" + }, + "scope": 371, + "src": "9880:97:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "anonymous": false, + "documentation": { + "id": 353, + "nodeType": "StructuredDocumentation", + "src": "9983:158:0", + "text": " @dev Emitted when `value` tokens are moved from one account (`from`) to\n another (`to`).\n Note that `value` may be zero." + }, + "eventSelector": "ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "id": 361, + "name": "Transfer", + "nameLocation": "10152:8:0", + "nodeType": "EventDefinition", + "parameters": { + "id": 360, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 355, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nameLocation": "10177:4:0", + "nodeType": "VariableDeclaration", + "scope": 361, + "src": "10161:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 354, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10161:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 357, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nameLocation": "10199:2:0", + "nodeType": "VariableDeclaration", + "scope": 361, + "src": "10183:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 356, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10183:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 359, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nameLocation": "10211:5:0", + "nodeType": "VariableDeclaration", + "scope": 361, + "src": "10203:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 358, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10203:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10160:57:0" + }, + "src": "10146:72:0" + }, + { + "anonymous": false, + "documentation": { + "id": 362, + "nodeType": "StructuredDocumentation", + "src": "10224:148:0", + "text": " @dev Emitted when the allowance of a `spender` for an `owner` is set by\n a call to {approve}. `value` is the new allowance." + }, + "eventSelector": "8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925", + "id": 370, + "name": "Approval", + "nameLocation": "10383:8:0", + "nodeType": "EventDefinition", + "parameters": { + "id": 369, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 364, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nameLocation": "10408:5:0", + "nodeType": "VariableDeclaration", + "scope": 370, + "src": "10392:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 363, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10392:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 366, + "indexed": true, + "mutability": "mutable", + "name": "spender", + "nameLocation": "10431:7:0", + "nodeType": "VariableDeclaration", + "scope": 370, + "src": "10415:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 365, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10415:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 368, + "indexed": false, + "mutability": "mutable", + "name": "value", + "nameLocation": "10448:5:0", + "nodeType": "VariableDeclaration", + "scope": 370, + "src": "10440:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 367, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10440:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10391:63:0" + }, + "src": "10377:78:0" + } + ], + "scope": 1008, + "src": "7891:2566:0", + "usedErrors": [] + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "SafeERC20", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 372, + "nodeType": "StructuredDocumentation", + "src": "10459:457:0", + "text": " @title SafeERC20\n @dev Wrappers around ERC20 operations that throw on failure (when the token\n contract returns false). Tokens that return no value (and instead revert or\n throw on failure) are also supported, non-reverting calls are assumed to be\n successful.\n To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\n which allows you to call the safe operations as `token.safeTransfer(...)`, etc." + }, + "fullyImplemented": true, + "id": 590, + "linearizedBaseContracts": [ + 590 + ], + "name": "SafeERC20", + "nameLocation": "10925:9:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "global": false, + "id": 375, + "libraryName": { + "id": 373, + "name": "Address", + "nameLocations": [ + "10947:7:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 295, + "src": "10947:7:0" }, - "nodeType": "YulFunctionCall", - "src": "14869:20:2" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "14843:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "14843:47:2" - }, - "nodeType": "YulExpressionStatement", - "src": "14843:47:2" - }, - { - "nodeType": "YulAssignment", - "src": "14899:139:2", - "value": { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "15033:4:2" - } - ], - "functionName": { - "name": "abi_encode_t_stringliteral_b98f3e47db5919a8c78ec10ff6bf7d1326066d3facdc164cf7441d38cae771df_to_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "14907:124:2" + "nodeType": "UsingForDirective", + "src": "10941:26:0", + "typeName": { + "id": 374, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10959:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } }, - "nodeType": "YulFunctionCall", - "src": "14907:131:2" - }, - "variableNames": [ { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "14899:4:2" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_stringliteral_b98f3e47db5919a8c78ec10ff6bf7d1326066d3facdc164cf7441d38cae771df__to_t_string_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "14777:9:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "14792:4:2", - "type": "" - } - ], - "src": "14626:419:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "15222:248:2", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "15232:26:2", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "15244:9:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "15255:2:2", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "15240:3:2" + "body": { + "id": 397, + "nodeType": "Block", + "src": "11045:103:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 386, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 378, + "src": "11075:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$371", + "typeString": "contract IERC20" + } + }, + { + "arguments": [ + { + "expression": { + "expression": { + "id": 389, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 378, + "src": "11105:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$371", + "typeString": "contract IERC20" + } + }, + "id": 390, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11111:8:0", + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 320, + "src": "11105:14:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 391, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11120:8:0", + "memberName": "selector", + "nodeType": "MemberAccess", + "src": "11105:23:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "id": 392, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 380, + "src": "11130:2:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 393, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 382, + "src": "11134:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 387, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "11082:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 388, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "11086:18:0", + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "src": "11082:22:0", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 394, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11082:58:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$371", + "typeString": "contract IERC20" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 385, + "name": "_callOptionalReturn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 589, + "src": "11055:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$371_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (contract IERC20,bytes memory)" + } + }, + "id": 395, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11055:86:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 396, + "nodeType": "ExpressionStatement", + "src": "11055:86:0" + } + ] + }, + "id": 398, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeTransfer", + "nameLocation": "10982:12:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 383, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 378, + "mutability": "mutable", + "name": "token", + "nameLocation": "11002:5:0", + "nodeType": "VariableDeclaration", + "scope": 398, + "src": "10995:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$371", + "typeString": "contract IERC20" + }, + "typeName": { + "id": 377, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 376, + "name": "IERC20", + "nameLocations": [ + "10995:6:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 371, + "src": "10995:6:0" + }, + "referencedDeclaration": 371, + "src": "10995:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$371", + "typeString": "contract IERC20" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 380, + "mutability": "mutable", + "name": "to", + "nameLocation": "11017:2:0", + "nodeType": "VariableDeclaration", + "scope": 398, + "src": "11009:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 379, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11009:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 382, + "mutability": "mutable", + "name": "value", + "nameLocation": "11029:5:0", + "nodeType": "VariableDeclaration", + "scope": 398, + "src": "11021:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 381, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11021:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10994:41:0" + }, + "returnParameters": { + "id": 384, + "nodeType": "ParameterList", + "parameters": [], + "src": "11045:0:0" + }, + "scope": 590, + "src": "10973:175:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" }, - "nodeType": "YulFunctionCall", - "src": "15240:18:2" - }, - "variableNames": [ { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "15232:4:2" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "15279:9:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "15290:1:2", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "15275:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "15275:17:2" - }, - { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "15298:4:2" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "15304:9:2" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "15294:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "15294:20:2" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "15268:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "15268:47:2" - }, - "nodeType": "YulExpressionStatement", - "src": "15268:47:2" - }, - { - "nodeType": "YulAssignment", - "src": "15324:139:2", - "value": { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "15458:4:2" - } - ], - "functionName": { - "name": "abi_encode_t_stringliteral_eb6dbbf3194e9f4dd39c8dabe51ddb59ca6ad00c50b1bc74675ce4b263687722_to_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "15332:124:2" - }, - "nodeType": "YulFunctionCall", - "src": "15332:131:2" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "15324:4:2" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_stringliteral_eb6dbbf3194e9f4dd39c8dabe51ddb59ca6ad00c50b1bc74675ce4b263687722__to_t_string_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "15202:9:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "15217:4:2", - "type": "" - } - ], - "src": "15051:419:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "15574:124:2", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "15584:26:2", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "15596:9:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "15607:2:2", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "15592:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "15592:18:2" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "15584:4:2" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "15664:6:2" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "15677:9:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "15688:1:2", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "15673:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "15673:17:2" - } - ], - "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nodeType": "YulIdentifier", - "src": "15620:43:2" - }, - "nodeType": "YulFunctionCall", - "src": "15620:71:2" - }, - "nodeType": "YulExpressionStatement", - "src": "15620:71:2" - } - ] - }, - "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "15546:9:2", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "15558:6:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "15569:4:2", - "type": "" - } - ], - "src": "15476:222:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "16030:782:2", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "16040:27:2", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "16052:9:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "16063:3:2", - "type": "", - "value": "224" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "16048:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "16048:19:2" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "16040:4:2" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "16121:6:2" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "16134:9:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "16145:1:2", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "16130:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "16130:17:2" - } - ], - "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nodeType": "YulIdentifier", - "src": "16077:43:2" - }, - "nodeType": "YulFunctionCall", - "src": "16077:71:2" - }, - "nodeType": "YulExpressionStatement", - "src": "16077:71:2" - }, - { - "expression": { - "arguments": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "16202:6:2" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "16215:9:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "16226:2:2", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "16211:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "16211:18:2" - } - ], - "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nodeType": "YulIdentifier", - "src": "16158:43:2" - }, - "nodeType": "YulFunctionCall", - "src": "16158:72:2" - }, - "nodeType": "YulExpressionStatement", - "src": "16158:72:2" - }, - { - "expression": { - "arguments": [ - { - "name": "value2", - "nodeType": "YulIdentifier", - "src": "16284:6:2" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "16297:9:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "16308:2:2", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "16293:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "16293:18:2" - } - ], - "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nodeType": "YulIdentifier", - "src": "16240:43:2" - }, - "nodeType": "YulFunctionCall", - "src": "16240:72:2" - }, - "nodeType": "YulExpressionStatement", - "src": "16240:72:2" - }, - { - "expression": { - "arguments": [ - { - "name": "value3", - "nodeType": "YulIdentifier", - "src": "16366:6:2" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "16379:9:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "16390:2:2", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "16375:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "16375:18:2" - } - ], - "functionName": { - "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", - "nodeType": "YulIdentifier", - "src": "16322:43:2" - }, - "nodeType": "YulFunctionCall", - "src": "16322:72:2" - }, - "nodeType": "YulExpressionStatement", - "src": "16322:72:2" - }, - { - "expression": { - "arguments": [ - { - "name": "value4", - "nodeType": "YulIdentifier", - "src": "16448:6:2" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "16461:9:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "16472:3:2", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "16457:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "16457:19:2" - } - ], - "functionName": { - "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", - "nodeType": "YulIdentifier", - "src": "16404:43:2" - }, - "nodeType": "YulFunctionCall", - "src": "16404:73:2" - }, - "nodeType": "YulExpressionStatement", - "src": "16404:73:2" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "16498:9:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "16509:3:2", - "type": "", - "value": "160" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "16494:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "16494:19:2" - }, - { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "16519:4:2" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "16525:9:2" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "16515:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "16515:20:2" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "16487:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "16487:49:2" - }, - "nodeType": "YulExpressionStatement", - "src": "16487:49:2" - }, - { - "nodeType": "YulAssignment", - "src": "16545:96:2", - "value": { - "arguments": [ - { - "name": "value5", - "nodeType": "YulIdentifier", - "src": "16619:6:2" - }, - { - "name": "value6", - "nodeType": "YulIdentifier", - "src": "16627:6:2" - }, - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "16636:4:2" - } - ], - "functionName": { - "name": "abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "16553:65:2" + "body": { + "id": 423, + "nodeType": "Block", + "src": "11244:113:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 411, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 401, + "src": "11274:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$371", + "typeString": "contract IERC20" + } + }, + { + "arguments": [ + { + "expression": { + "expression": { + "id": 414, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 401, + "src": "11304:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$371", + "typeString": "contract IERC20" + } + }, + "id": 415, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11310:12:0", + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 352, + "src": "11304:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 416, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11323:8:0", + "memberName": "selector", + "nodeType": "MemberAccess", + "src": "11304:27:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "id": 417, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 403, + "src": "11333:4:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 418, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 405, + "src": "11339:2:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 419, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 407, + "src": "11343:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 412, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "11281:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 413, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "11285:18:0", + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "src": "11281:22:0", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 420, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11281:68:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$371", + "typeString": "contract IERC20" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 410, + "name": "_callOptionalReturn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 589, + "src": "11254:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$371_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (contract IERC20,bytes memory)" + } + }, + "id": 421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11254:96:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 422, + "nodeType": "ExpressionStatement", + "src": "11254:96:0" + } + ] + }, + "id": 424, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nameLocation": "11163:16:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 408, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 401, + "mutability": "mutable", + "name": "token", + "nameLocation": "11187:5:0", + "nodeType": "VariableDeclaration", + "scope": 424, + "src": "11180:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$371", + "typeString": "contract IERC20" + }, + "typeName": { + "id": 400, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 399, + "name": "IERC20", + "nameLocations": [ + "11180:6:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 371, + "src": "11180:6:0" + }, + "referencedDeclaration": 371, + "src": "11180:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$371", + "typeString": "contract IERC20" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 403, + "mutability": "mutable", + "name": "from", + "nameLocation": "11202:4:0", + "nodeType": "VariableDeclaration", + "scope": 424, + "src": "11194:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 402, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11194:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 405, + "mutability": "mutable", + "name": "to", + "nameLocation": "11216:2:0", + "nodeType": "VariableDeclaration", + "scope": 424, + "src": "11208:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 404, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11208:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 407, + "mutability": "mutable", + "name": "value", + "nameLocation": "11228:5:0", + "nodeType": "VariableDeclaration", + "scope": 424, + "src": "11220:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 406, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11220:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11179:55:0" + }, + "returnParameters": { + "id": 409, + "nodeType": "ParameterList", + "parameters": [], + "src": "11244:0:0" + }, + "scope": 590, + "src": "11154:203:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" }, - "nodeType": "YulFunctionCall", - "src": "16553:88:2" - }, - "variableNames": [ { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "16545:4:2" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "16662:9:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "16673:3:2", - "type": "", - "value": "192" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "16658:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "16658:19:2" - }, - { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "16683:4:2" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "16689:9:2" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "16679:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "16679:20:2" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "16651:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "16651:49:2" - }, - "nodeType": "YulExpressionStatement", - "src": "16651:49:2" - }, - { - "nodeType": "YulAssignment", - "src": "16709:96:2", - "value": { - "arguments": [ - { - "name": "value7", - "nodeType": "YulIdentifier", - "src": "16783:6:2" - }, - { - "name": "value8", - "nodeType": "YulIdentifier", - "src": "16791:6:2" - }, - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "16800:4:2" - } - ], - "functionName": { - "name": "abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "16717:65:2" + "body": { + "id": 467, + "nodeType": "Block", + "src": "11693:537:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 451, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 438, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 436, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 432, + "src": "11982:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 437, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11991:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11982:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 439, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11981:12:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 449, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "arguments": [ + { + "id": 444, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "12022:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeERC20_$590", + "typeString": "library SafeERC20" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_SafeERC20_$590", + "typeString": "library SafeERC20" + } + ], + "id": 443, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12014:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 442, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12014:7:0", + "typeDescriptions": {} + } + }, + "id": 445, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12014:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 446, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 430, + "src": "12029:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 440, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 428, + "src": "11998:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$371", + "typeString": "contract IERC20" + } + }, + "id": 441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12004:9:0", + "memberName": "allowance", + "nodeType": "MemberAccess", + "referencedDeclaration": 330, + "src": "11998:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 447, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11998:39:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 448, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12041:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11998:44:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 450, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11997:46:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "11981:62:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e6365", + "id": 452, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12057:56:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ef945ddb1bfdc0da870feb4560d868b047642b4ac7f2fb7f8b7c51cb4a411e25", + "typeString": "literal_string \"SafeERC20: approve from non-zero to non-zero allowance\"" + }, + "value": "SafeERC20: approve from non-zero to non-zero allowance" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_ef945ddb1bfdc0da870feb4560d868b047642b4ac7f2fb7f8b7c51cb4a411e25", + "typeString": "literal_string \"SafeERC20: approve from non-zero to non-zero allowance\"" + } + ], + "id": 435, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "11973:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11973:150:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 454, + "nodeType": "ExpressionStatement", + "src": "11973:150:0" + }, + { + "expression": { + "arguments": [ + { + "id": 456, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 428, + "src": "12153:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$371", + "typeString": "contract IERC20" + } + }, + { + "arguments": [ + { + "expression": { + "expression": { + "id": 459, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 428, + "src": "12183:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$371", + "typeString": "contract IERC20" + } + }, + "id": 460, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12189:7:0", + "memberName": "approve", + "nodeType": "MemberAccess", + "referencedDeclaration": 340, + "src": "12183:13:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12197:8:0", + "memberName": "selector", + "nodeType": "MemberAccess", + "src": "12183:22:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "id": 462, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 430, + "src": "12207:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 463, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 432, + "src": "12216:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 457, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "12160:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 458, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "12164:18:0", + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "src": "12160:22:0", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 464, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12160:62:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$371", + "typeString": "contract IERC20" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 455, + "name": "_callOptionalReturn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 589, + "src": "12133:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$371_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (contract IERC20,bytes memory)" + } + }, + "id": 465, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12133:90:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 466, + "nodeType": "ExpressionStatement", + "src": "12133:90:0" + } + ] + }, + "documentation": { + "id": 425, + "nodeType": "StructuredDocumentation", + "src": "11363:249:0", + "text": " @dev Deprecated. This function has issues similar to the ones found in\n {IERC20-approve}, and its usage is discouraged.\n Whenever possible, use {safeIncreaseAllowance} and\n {safeDecreaseAllowance} instead." + }, + "id": 468, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeApprove", + "nameLocation": "11626:11:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 433, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 428, + "mutability": "mutable", + "name": "token", + "nameLocation": "11645:5:0", + "nodeType": "VariableDeclaration", + "scope": 468, + "src": "11638:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$371", + "typeString": "contract IERC20" + }, + "typeName": { + "id": 427, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 426, + "name": "IERC20", + "nameLocations": [ + "11638:6:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 371, + "src": "11638:6:0" + }, + "referencedDeclaration": 371, + "src": "11638:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$371", + "typeString": "contract IERC20" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 430, + "mutability": "mutable", + "name": "spender", + "nameLocation": "11660:7:0", + "nodeType": "VariableDeclaration", + "scope": 468, + "src": "11652:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 429, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11652:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 432, + "mutability": "mutable", + "name": "value", + "nameLocation": "11677:5:0", + "nodeType": "VariableDeclaration", + "scope": 468, + "src": "11669:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 431, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11669:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11637:46:0" + }, + "returnParameters": { + "id": 434, + "nodeType": "ParameterList", + "parameters": [], + "src": "11693:0:0" + }, + "scope": 590, + "src": "11617:613:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" }, - "nodeType": "YulFunctionCall", - "src": "16717:88:2" - }, - "variableNames": [ { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "16709:4:2" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_uint256_t_uint256_t_uint256_t_bytes32_t_bytes32_t_string_calldata_ptr_t_string_calldata_ptr__to_t_uint256_t_uint256_t_uint256_t_bytes32_t_bytes32_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "15938:9:2", - "type": "" - }, - { - "name": "value8", - "nodeType": "YulTypedName", - "src": "15950:6:2", - "type": "" - }, - { - "name": "value7", - "nodeType": "YulTypedName", - "src": "15958:6:2", - "type": "" - }, - { - "name": "value6", - "nodeType": "YulTypedName", - "src": "15966:6:2", - "type": "" - }, - { - "name": "value5", - "nodeType": "YulTypedName", - "src": "15974:6:2", - "type": "" - }, - { - "name": "value4", - "nodeType": "YulTypedName", - "src": "15982:6:2", - "type": "" - }, - { - "name": "value3", - "nodeType": "YulTypedName", - "src": "15990:6:2", - "type": "" - }, - { - "name": "value2", - "nodeType": "YulTypedName", - "src": "15998:6:2", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "16006:6:2", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "16014:6:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "16025:4:2", - "type": "" - } - ], - "src": "15704:1108:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "17208:1011:2", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "17218:27:2", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "17230:9:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "17241:3:2", - "type": "", - "value": "320" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "17226:3:2" + "body": { + "id": 503, + "nodeType": "Block", + "src": "12322:194:0", + "statements": [ + { + "assignments": [ + 479 + ], + "declarations": [ + { + "constant": false, + "id": 479, + "mutability": "mutable", + "name": "newAllowance", + "nameLocation": "12340:12:0", + "nodeType": "VariableDeclaration", + "scope": 503, + "src": "12332:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 478, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12332:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 490, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 489, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "arguments": [ + { + "id": 484, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "12379:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeERC20_$590", + "typeString": "library SafeERC20" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_SafeERC20_$590", + "typeString": "library SafeERC20" + } + ], + "id": 483, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12371:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 482, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12371:7:0", + "typeDescriptions": {} + } + }, + "id": 485, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12371:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 486, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 473, + "src": "12386:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 480, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 471, + "src": "12355:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$371", + "typeString": "contract IERC20" + } + }, + "id": 481, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12361:9:0", + "memberName": "allowance", + "nodeType": "MemberAccess", + "referencedDeclaration": 330, + "src": "12355:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12355:39:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 488, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 475, + "src": "12397:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12355:47:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12332:70:0" + }, + { + "expression": { + "arguments": [ + { + "id": 492, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 471, + "src": "12432:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$371", + "typeString": "contract IERC20" + } + }, + { + "arguments": [ + { + "expression": { + "expression": { + "id": 495, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 471, + "src": "12462:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$371", + "typeString": "contract IERC20" + } + }, + "id": 496, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12468:7:0", + "memberName": "approve", + "nodeType": "MemberAccess", + "referencedDeclaration": 340, + "src": "12462:13:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 497, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12476:8:0", + "memberName": "selector", + "nodeType": "MemberAccess", + "src": "12462:22:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "id": 498, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 473, + "src": "12486:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 499, + "name": "newAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 479, + "src": "12495:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 493, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "12439:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 494, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "12443:18:0", + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "src": "12439:22:0", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 500, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12439:69:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$371", + "typeString": "contract IERC20" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 491, + "name": "_callOptionalReturn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 589, + "src": "12412:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$371_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (contract IERC20,bytes memory)" + } + }, + "id": 501, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12412:97:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 502, + "nodeType": "ExpressionStatement", + "src": "12412:97:0" + } + ] + }, + "id": 504, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeIncreaseAllowance", + "nameLocation": "12245:21:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 476, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 471, + "mutability": "mutable", + "name": "token", + "nameLocation": "12274:5:0", + "nodeType": "VariableDeclaration", + "scope": 504, + "src": "12267:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$371", + "typeString": "contract IERC20" + }, + "typeName": { + "id": 470, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 469, + "name": "IERC20", + "nameLocations": [ + "12267:6:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 371, + "src": "12267:6:0" + }, + "referencedDeclaration": 371, + "src": "12267:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$371", + "typeString": "contract IERC20" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 473, + "mutability": "mutable", + "name": "spender", + "nameLocation": "12289:7:0", + "nodeType": "VariableDeclaration", + "scope": 504, + "src": "12281:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 472, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12281:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 475, + "mutability": "mutable", + "name": "value", + "nameLocation": "12306:5:0", + "nodeType": "VariableDeclaration", + "scope": 504, + "src": "12298:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 474, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12298:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12266:46:0" + }, + "returnParameters": { + "id": 477, + "nodeType": "ParameterList", + "parameters": [], + "src": "12322:0:0" + }, + "scope": 590, + "src": "12236:280:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" }, - "nodeType": "YulFunctionCall", - "src": "17226:19:2" - }, - "variableNames": [ { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "17218:4:2" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "17299:6:2" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "17312:9:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "17323:1:2", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "17308:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "17308:17:2" - } - ], - "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nodeType": "YulIdentifier", - "src": "17255:43:2" - }, - "nodeType": "YulFunctionCall", - "src": "17255:71:2" - }, - "nodeType": "YulExpressionStatement", - "src": "17255:71:2" - }, - { - "expression": { - "arguments": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "17380:6:2" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "17393:9:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "17404:2:2", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "17389:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "17389:18:2" - } - ], - "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nodeType": "YulIdentifier", - "src": "17336:43:2" + "body": { + "id": 550, + "nodeType": "Block", + "src": "12608:340:0", + "statements": [ + { + "assignments": [ + 515 + ], + "declarations": [ + { + "constant": false, + "id": 515, + "mutability": "mutable", + "name": "oldAllowance", + "nameLocation": "12630:12:0", + "nodeType": "VariableDeclaration", + "scope": 550, + "src": "12622:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 514, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12622:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 524, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 520, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "12669:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeERC20_$590", + "typeString": "library SafeERC20" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_SafeERC20_$590", + "typeString": "library SafeERC20" + } + ], + "id": 519, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12661:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 518, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12661:7:0", + "typeDescriptions": {} + } + }, + "id": 521, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12661:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 522, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 509, + "src": "12676:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 516, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 507, + "src": "12645:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$371", + "typeString": "contract IERC20" + } + }, + "id": 517, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12651:9:0", + "memberName": "allowance", + "nodeType": "MemberAccess", + "referencedDeclaration": 330, + "src": "12645:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", + "typeString": "function (address,address) view external returns (uint256)" + } + }, + "id": 523, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12645:39:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12622:62:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 528, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 526, + "name": "oldAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 515, + "src": "12706:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 527, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 511, + "src": "12722:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12706:21:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "5361666545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f", + "id": 529, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12729:43:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2c3af60974a758b7e72e108c9bf0943ecc9e4f2e8af4695da5f52fbf57a63d3a", + "typeString": "literal_string \"SafeERC20: decreased allowance below zero\"" + }, + "value": "SafeERC20: decreased allowance below zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2c3af60974a758b7e72e108c9bf0943ecc9e4f2e8af4695da5f52fbf57a63d3a", + "typeString": "literal_string \"SafeERC20: decreased allowance below zero\"" + } + ], + "id": 525, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "12698:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 530, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12698:75:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 531, + "nodeType": "ExpressionStatement", + "src": "12698:75:0" + }, + { + "assignments": [ + 533 + ], + "declarations": [ + { + "constant": false, + "id": 533, + "mutability": "mutable", + "name": "newAllowance", + "nameLocation": "12795:12:0", + "nodeType": "VariableDeclaration", + "scope": 550, + "src": "12787:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 532, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12787:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 537, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 536, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 534, + "name": "oldAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 515, + "src": "12810:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 535, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 511, + "src": "12825:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12810:20:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12787:43:0" + }, + { + "expression": { + "arguments": [ + { + "id": 539, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 507, + "src": "12864:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$371", + "typeString": "contract IERC20" + } + }, + { + "arguments": [ + { + "expression": { + "expression": { + "id": 542, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 507, + "src": "12894:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$371", + "typeString": "contract IERC20" + } + }, + "id": 543, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12900:7:0", + "memberName": "approve", + "nodeType": "MemberAccess", + "referencedDeclaration": 340, + "src": "12894:13:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12908:8:0", + "memberName": "selector", + "nodeType": "MemberAccess", + "src": "12894:22:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "id": 545, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 509, + "src": "12918:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 546, + "name": "newAllowance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 533, + "src": "12927:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 540, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "12871:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 541, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "12875:18:0", + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "src": "12871:22:0", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 547, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12871:69:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$371", + "typeString": "contract IERC20" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 538, + "name": "_callOptionalReturn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 589, + "src": "12844:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$371_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (contract IERC20,bytes memory)" + } + }, + "id": 548, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12844:97:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 549, + "nodeType": "ExpressionStatement", + "src": "12844:97:0" + } + ] + }, + "id": 551, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeDecreaseAllowance", + "nameLocation": "12531:21:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 512, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 507, + "mutability": "mutable", + "name": "token", + "nameLocation": "12560:5:0", + "nodeType": "VariableDeclaration", + "scope": 551, + "src": "12553:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$371", + "typeString": "contract IERC20" + }, + "typeName": { + "id": 506, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 505, + "name": "IERC20", + "nameLocations": [ + "12553:6:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 371, + "src": "12553:6:0" + }, + "referencedDeclaration": 371, + "src": "12553:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$371", + "typeString": "contract IERC20" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 509, + "mutability": "mutable", + "name": "spender", + "nameLocation": "12575:7:0", + "nodeType": "VariableDeclaration", + "scope": 551, + "src": "12567:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 508, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12567:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 511, + "mutability": "mutable", + "name": "value", + "nameLocation": "12592:5:0", + "nodeType": "VariableDeclaration", + "scope": 551, + "src": "12584:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 510, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12584:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12552:46:0" + }, + "returnParameters": { + "id": 513, + "nodeType": "ParameterList", + "parameters": [], + "src": "12608:0:0" + }, + "scope": 590, + "src": "12522:426:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" }, - "nodeType": "YulFunctionCall", - "src": "17336:72:2" - }, - "nodeType": "YulExpressionStatement", - "src": "17336:72:2" - }, - { - "expression": { - "arguments": [ - { - "name": "value2", - "nodeType": "YulIdentifier", - "src": "17462:6:2" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "17475:9:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "17486:2:2", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "17471:3:2" + { + "body": { + "id": 588, + "nodeType": "Block", + "src": "13401:681:0", + "statements": [ + { + "assignments": [ + 561 + ], + "declarations": [ + { + "constant": false, + "id": 561, + "mutability": "mutable", + "name": "returndata", + "nameLocation": "13763:10:0", + "nodeType": "VariableDeclaration", + "scope": 588, + "src": "13750:23:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 560, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "13750:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 570, + "initialValue": { + "arguments": [ + { + "id": 567, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 557, + "src": "13804:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564", + "id": 568, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13810:34:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_47fb62c2c272651d2f0f342bac006756b8ba07f21cc5cb87e0fbb9d50c0c585b", + "typeString": "literal_string \"SafeERC20: low-level call failed\"" + }, + "value": "SafeERC20: low-level call failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_47fb62c2c272651d2f0f342bac006756b8ba07f21cc5cb87e0fbb9d50c0c585b", + "typeString": "literal_string \"SafeERC20: low-level call failed\"" + } + ], + "expression": { + "arguments": [ + { + "id": 564, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 555, + "src": "13784:5:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$371", + "typeString": "contract IERC20" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$371", + "typeString": "contract IERC20" + } + ], + "id": 563, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13776:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 562, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13776:7:0", + "typeDescriptions": {} + } + }, + "id": 565, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13776:14:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 566, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13791:12:0", + "memberName": "functionCall", + "nodeType": "MemberAccess", + "referencedDeclaration": 90, + "src": "13776:27:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$attached_to$_t_address_$", + "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" + } + }, + "id": 569, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13776:69:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13750:95:0" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 574, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 571, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 561, + "src": "13859:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 572, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13870:6:0", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "13859:17:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 573, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13879:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "13859:21:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 587, + "nodeType": "IfStatement", + "src": "13855:221:0", + "trueBody": { + "id": 586, + "nodeType": "Block", + "src": "13882:194:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 578, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 561, + "src": "13999:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "components": [ + { + "id": 580, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14012:4:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + }, + "typeName": { + "id": 579, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "14012:4:0", + "typeDescriptions": {} + } + } + ], + "id": 581, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "14011:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_type$_t_bool_$", + "typeString": "type(bool)" + } + ], + "expression": { + "id": 576, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "13988:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 577, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "13992:6:0", + "memberName": "decode", + "nodeType": "MemberAccess", + "src": "13988:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 582, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13988:30:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "5361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564", + "id": 583, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14020:44:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd", + "typeString": "literal_string \"SafeERC20: ERC20 operation did not succeed\"" + }, + "value": "SafeERC20: ERC20 operation did not succeed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd", + "typeString": "literal_string \"SafeERC20: ERC20 operation did not succeed\"" + } + ], + "id": 575, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "13980:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 584, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13980:85:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 585, + "nodeType": "ExpressionStatement", + "src": "13980:85:0" + } + ] + } + } + ] + }, + "documentation": { + "id": 552, + "nodeType": "StructuredDocumentation", + "src": "12954:372:0", + "text": " @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n on the return value: the return value is optional (but if data is returned, it must not be false).\n @param token The token targeted by the call.\n @param data The call data (encoded using abi.encode or one of its variants)." + }, + "id": 589, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_callOptionalReturn", + "nameLocation": "13340:19:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 558, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 555, + "mutability": "mutable", + "name": "token", + "nameLocation": "13367:5:0", + "nodeType": "VariableDeclaration", + "scope": 589, + "src": "13360:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$371", + "typeString": "contract IERC20" + }, + "typeName": { + "id": 554, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 553, + "name": "IERC20", + "nameLocations": [ + "13360:6:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 371, + "src": "13360:6:0" + }, + "referencedDeclaration": 371, + "src": "13360:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$371", + "typeString": "contract IERC20" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 557, + "mutability": "mutable", + "name": "data", + "nameLocation": "13387:4:0", + "nodeType": "VariableDeclaration", + "scope": 589, + "src": "13374:17:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 556, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "13374:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "13359:33:0" + }, + "returnParameters": { + "id": 559, + "nodeType": "ParameterList", + "parameters": [], + "src": "13401:0:0" + }, + "scope": 590, + "src": "13331:751:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + } + ], + "scope": 1008, + "src": "10917:3167:0", + "usedErrors": [] + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "HashedTimeLockContract", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 1007, + "linearizedBaseContracts": [ + 1007 + ], + "name": "HashedTimeLockContract", + "nameLocation": "14095:22:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "global": false, + "id": 594, + "libraryName": { + "id": 591, + "name": "SafeERC20", + "nameLocations": [ + "14130:9:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 590, + "src": "14130:9:0" }, - "nodeType": "YulFunctionCall", - "src": "17471:18:2" - } - ], - "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nodeType": "YulIdentifier", - "src": "17418:43:2" + "nodeType": "UsingForDirective", + "src": "14124:27:0", + "typeName": { + "id": 593, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 592, + "name": "IERC20", + "nameLocations": [ + "14144:6:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 371, + "src": "14144:6:0" + }, + "referencedDeclaration": 371, + "src": "14144:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$371", + "typeString": "contract IERC20" + } + } }, - "nodeType": "YulFunctionCall", - "src": "17418:72:2" - }, - "nodeType": "YulExpressionStatement", - "src": "17418:72:2" - }, - { - "expression": { - "arguments": [ - { - "name": "value3", - "nodeType": "YulIdentifier", - "src": "17544:6:2" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "17557:9:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "17568:2:2", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "17553:3:2" + { + "constant": false, + "functionSelector": "ec56a373", + "id": 599, + "mutability": "mutable", + "name": "contracts", + "nameLocation": "14196:9:0", + "nodeType": "VariableDeclaration", + "scope": 1007, + "src": "14156:49:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_LockContract_$635_storage_$", + "typeString": "mapping(bytes32 => struct HashedTimeLockContract.LockContract)" }, - "nodeType": "YulFunctionCall", - "src": "17553:18:2" - } - ], - "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nodeType": "YulIdentifier", - "src": "17500:43:2" - }, - "nodeType": "YulFunctionCall", - "src": "17500:72:2" - }, - "nodeType": "YulExpressionStatement", - "src": "17500:72:2" - }, - { - "expression": { - "arguments": [ - { - "name": "value4", - "nodeType": "YulIdentifier", - "src": "17626:6:2" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "17639:9:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "17650:3:2", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "17635:3:2" + "typeName": { + "id": 598, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 595, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "14164:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "14156:32:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_LockContract_$635_storage_$", + "typeString": "mapping(bytes32 => struct HashedTimeLockContract.LockContract)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 597, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 596, + "name": "LockContract", + "nameLocations": [ + "14175:12:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 635, + "src": "14175:12:0" + }, + "referencedDeclaration": 635, + "src": "14175:12:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", + "typeString": "struct HashedTimeLockContract.LockContract" + } + } }, - "nodeType": "YulFunctionCall", - "src": "17635:19:2" - } - ], - "functionName": { - "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", - "nodeType": "YulIdentifier", - "src": "17582:43:2" + "visibility": "public" }, - "nodeType": "YulFunctionCall", - "src": "17582:73:2" - }, - "nodeType": "YulExpressionStatement", - "src": "17582:73:2" - }, - { - "expression": { - "arguments": [ - { - "name": "value5", - "nodeType": "YulIdentifier", - "src": "17709:6:2" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "17722:9:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "17733:3:2", - "type": "", - "value": "160" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "17718:3:2" + { + "constant": true, + "functionSelector": "7fcce2a9", + "id": 602, + "mutability": "constant", + "name": "INVALID", + "nameLocation": "14350:7:0", + "nodeType": "VariableDeclaration", + "scope": 1007, + "src": "14326:35:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, - "nodeType": "YulFunctionCall", - "src": "17718:19:2" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nodeType": "YulIdentifier", - "src": "17665:43:2" - }, - "nodeType": "YulFunctionCall", - "src": "17665:73:2" - }, - "nodeType": "YulExpressionStatement", - "src": "17665:73:2" - }, - { - "expression": { - "arguments": [ - { - "name": "value6", - "nodeType": "YulIdentifier", - "src": "17792:6:2" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "17805:9:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "17816:3:2", - "type": "", - "value": "192" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "17801:3:2" + "typeName": { + "id": 600, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14326:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - "nodeType": "YulFunctionCall", - "src": "17801:19:2" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nodeType": "YulIdentifier", - "src": "17748:43:2" - }, - "nodeType": "YulFunctionCall", - "src": "17748:73:2" - }, - "nodeType": "YulExpressionStatement", - "src": "17748:73:2" - }, - { - "expression": { - "arguments": [ - { - "name": "value7", - "nodeType": "YulIdentifier", - "src": "17875:6:2" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "17888:9:2" - }, - { + "value": { + "hexValue": "30", + "id": 601, + "isConstant": false, + "isLValue": false, + "isPure": true, "kind": "number", - "nodeType": "YulLiteral", - "src": "17899:3:2", - "type": "", - "value": "224" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "17884:3:2" + "lValueRequested": false, + "nodeType": "Literal", + "src": "14360:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" }, - "nodeType": "YulFunctionCall", - "src": "17884:19:2" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nodeType": "YulIdentifier", - "src": "17831:43:2" + "visibility": "public" }, - "nodeType": "YulFunctionCall", - "src": "17831:73:2" - }, - "nodeType": "YulExpressionStatement", - "src": "17831:73:2" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "17925:9:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "17936:3:2", - "type": "", - "value": "256" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "17921:3:2" + { + "constant": true, + "functionSelector": "c90bd047", + "id": 605, + "mutability": "constant", + "name": "ACTIVE", + "nameLocation": "14434:6:0", + "nodeType": "VariableDeclaration", + "scope": 1007, + "src": "14410:34:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, - "nodeType": "YulFunctionCall", - "src": "17921:19:2" - }, - { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "17946:4:2" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "17952:9:2" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "17942:3:2" + "typeName": { + "id": 603, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14410:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - "nodeType": "YulFunctionCall", - "src": "17942:20:2" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "17914:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "17914:49:2" - }, - "nodeType": "YulExpressionStatement", - "src": "17914:49:2" - }, - { - "nodeType": "YulAssignment", - "src": "17972:86:2", - "value": { - "arguments": [ - { - "name": "value8", - "nodeType": "YulIdentifier", - "src": "18044:6:2" - }, - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "18053:4:2" - } - ], - "functionName": { - "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "17980:63:2" - }, - "nodeType": "YulFunctionCall", - "src": "17980:78:2" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "17972:4:2" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "18079:9:2" - }, - { + "value": { + "hexValue": "31", + "id": 604, + "isConstant": false, + "isLValue": false, + "isPure": true, "kind": "number", - "nodeType": "YulLiteral", - "src": "18090:3:2", - "type": "", - "value": "288" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "18075:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "18075:19:2" - }, - { - "arguments": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "18100:4:2" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "18106:9:2" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "18096:3:2" + "lValueRequested": false, + "nodeType": "Literal", + "src": "14443:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" }, - "nodeType": "YulFunctionCall", - "src": "18096:20:2" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "18068:6:2" + "visibility": "public" }, - "nodeType": "YulFunctionCall", - "src": "18068:49:2" - }, - "nodeType": "YulExpressionStatement", - "src": "18068:49:2" - }, - { - "nodeType": "YulAssignment", - "src": "18126:86:2", - "value": { - "arguments": [ - { - "name": "value9", - "nodeType": "YulIdentifier", - "src": "18198:6:2" - }, - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "18207:4:2" - } - ], - "functionName": { - "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", - "nodeType": "YulIdentifier", - "src": "18134:63:2" - }, - "nodeType": "YulFunctionCall", - "src": "18134:78:2" - }, - "variableNames": [ { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "18126:4:2" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_uint256_t_uint256_t_uint256_t_uint256_t_bytes32_t_address_t_address_t_address_t_string_memory_ptr_t_string_memory_ptr__to_t_uint256_t_uint256_t_uint256_t_uint256_t_bytes32_t_address_t_address_t_address_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "17108:9:2", - "type": "" - }, - { - "name": "value9", - "nodeType": "YulTypedName", - "src": "17120:6:2", - "type": "" - }, - { - "name": "value8", - "nodeType": "YulTypedName", - "src": "17128:6:2", - "type": "" - }, - { - "name": "value7", - "nodeType": "YulTypedName", - "src": "17136:6:2", - "type": "" - }, - { - "name": "value6", - "nodeType": "YulTypedName", - "src": "17144:6:2", - "type": "" - }, - { - "name": "value5", - "nodeType": "YulTypedName", - "src": "17152:6:2", - "type": "" - }, - { - "name": "value4", - "nodeType": "YulTypedName", - "src": "17160:6:2", - "type": "" - }, - { - "name": "value3", - "nodeType": "YulTypedName", - "src": "17168:6:2", - "type": "" - }, - { - "name": "value2", - "nodeType": "YulTypedName", - "src": "17176:6:2", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "17184:6:2", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "17192:6:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "17203:4:2", - "type": "" - } - ], - "src": "16818:1401:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "18265:243:2", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "18275:19:2", - "value": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "18291:2:2", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "18285:5:2" - }, - "nodeType": "YulFunctionCall", - "src": "18285:9:2" - }, - "variableNames": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "18275:6:2" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "18303:35:2", - "value": { - "arguments": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "18325:6:2" - }, - { - "name": "size", - "nodeType": "YulIdentifier", - "src": "18333:4:2" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "18321:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "18321:17:2" - }, - "variables": [ - { - "name": "newFreePtr", - "nodeType": "YulTypedName", - "src": "18307:10:2", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "18449:22:2", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nodeType": "YulIdentifier", - "src": "18451:16:2" - }, - "nodeType": "YulFunctionCall", - "src": "18451:18:2" - }, - "nodeType": "YulExpressionStatement", - "src": "18451:18:2" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "newFreePtr", - "nodeType": "YulIdentifier", - "src": "18392:10:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "18404:18:2", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "18389:2:2" - }, - "nodeType": "YulFunctionCall", - "src": "18389:34:2" - }, - { - "arguments": [ - { - "name": "newFreePtr", - "nodeType": "YulIdentifier", - "src": "18428:10:2" - }, - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "18440:6:2" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "18425:2:2" + "constant": true, + "functionSelector": "94e15c8f", + "id": 608, + "mutability": "constant", + "name": "REFUNDED", + "nameLocation": "14523:8:0", + "nodeType": "VariableDeclaration", + "scope": 1007, + "src": "14499:36:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, - "nodeType": "YulFunctionCall", - "src": "18425:22:2" - } - ], - "functionName": { - "name": "or", - "nodeType": "YulIdentifier", - "src": "18386:2:2" - }, - "nodeType": "YulFunctionCall", - "src": "18386:62:2" - }, - "nodeType": "YulIf", - "src": "18383:2:2" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "18487:2:2", - "type": "", - "value": "64" - }, - { - "name": "newFreePtr", - "nodeType": "YulIdentifier", - "src": "18491:10:2" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "18480:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "18480:22:2" - }, - "nodeType": "YulExpressionStatement", - "src": "18480:22:2" - } - ] - }, - "name": "allocateMemory", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "size", - "nodeType": "YulTypedName", - "src": "18249:4:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "memPtr", - "nodeType": "YulTypedName", - "src": "18258:6:2", - "type": "" - } - ], - "src": "18225:283:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "18596:229:2", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "18701:22:2", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nodeType": "YulIdentifier", - "src": "18703:16:2" - }, - "nodeType": "YulFunctionCall", - "src": "18703:18:2" + "typeName": { + "id": 606, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14499:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - "nodeType": "YulExpressionStatement", - "src": "18703:18:2" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "18673:6:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "18681:18:2", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "18670:2:2" - }, - "nodeType": "YulFunctionCall", - "src": "18670:30:2" - }, - "nodeType": "YulIf", - "src": "18667:2:2" - }, - { - "nodeType": "YulAssignment", - "src": "18733:25:2", - "value": { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "18745:6:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "18753:4:2", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "mul", - "nodeType": "YulIdentifier", - "src": "18741:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "18741:17:2" - }, - "variableNames": [ - { - "name": "size", - "nodeType": "YulIdentifier", - "src": "18733:4:2" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "18795:23:2", - "value": { - "arguments": [ - { - "name": "size", - "nodeType": "YulIdentifier", - "src": "18807:4:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "18813:4:2", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "18803:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "18803:15:2" - }, - "variableNames": [ - { - "name": "size", - "nodeType": "YulIdentifier", - "src": "18795:4:2" - } - ] - } - ] - }, - "name": "array_allocation_size_t_array$_t_bytes32_$dyn_memory_ptr", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "length", - "nodeType": "YulTypedName", - "src": "18580:6:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "size", - "nodeType": "YulTypedName", - "src": "18591:4:2", - "type": "" - } - ], - "src": "18514:311:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "18903:60:2", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "18913:11:2", - "value": { - "name": "ptr", - "nodeType": "YulIdentifier", - "src": "18921:3:2" - }, - "variableNames": [ - { - "name": "data", - "nodeType": "YulIdentifier", - "src": "18913:4:2" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "18934:22:2", - "value": { - "arguments": [ - { - "name": "ptr", - "nodeType": "YulIdentifier", - "src": "18946:3:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "18951:4:2", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "18942:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "18942:14:2" - }, - "variableNames": [ - { - "name": "data", - "nodeType": "YulIdentifier", - "src": "18934:4:2" - } - ] - } - ] - }, - "name": "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "ptr", - "nodeType": "YulTypedName", - "src": "18890:3:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "data", - "nodeType": "YulTypedName", - "src": "18898:4:2", - "type": "" - } - ], - "src": "18831:132:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "19043:40:2", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "19054:22:2", - "value": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "19070:5:2" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "19064:5:2" - }, - "nodeType": "YulFunctionCall", - "src": "19064:12:2" - }, - "variableNames": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "19054:6:2" - } - ] - } - ] - }, - "name": "array_length_t_array$_t_uint256_$dyn_memory_ptr", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "19026:5:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "length", - "nodeType": "YulTypedName", - "src": "19036:6:2", - "type": "" - } - ], - "src": "18969:114:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "19147:40:2", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "19158:22:2", - "value": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "19174:5:2" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "19168:5:2" - }, - "nodeType": "YulFunctionCall", - "src": "19168:12:2" - }, - "variableNames": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "19158:6:2" - } - ] - } - ] - }, - "name": "array_length_t_bytes_memory_ptr", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "19130:5:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "length", - "nodeType": "YulTypedName", - "src": "19140:6:2", - "type": "" - } - ], - "src": "19089:98:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "19252:40:2", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "19263:22:2", - "value": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "19279:5:2" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "19273:5:2" - }, - "nodeType": "YulFunctionCall", - "src": "19273:12:2" - }, - "variableNames": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "19263:6:2" - } - ] - } - ] - }, - "name": "array_length_t_string_memory_ptr", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "19235:5:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "length", - "nodeType": "YulTypedName", - "src": "19245:6:2", - "type": "" - } - ], - "src": "19193:99:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "19373:38:2", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "19383:22:2", - "value": { - "arguments": [ - { - "name": "ptr", - "nodeType": "YulIdentifier", - "src": "19395:3:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "19400:4:2", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "19391:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "19391:14:2" - }, - "variableNames": [ - { - "name": "next", - "nodeType": "YulIdentifier", - "src": "19383:4:2" - } - ] - } - ] - }, - "name": "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "ptr", - "nodeType": "YulTypedName", - "src": "19360:3:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "next", - "nodeType": "YulTypedName", - "src": "19368:4:2", - "type": "" - } - ], - "src": "19298:113:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "19528:73:2", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "19545:3:2" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "19550:6:2" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "19538:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "19538:19:2" - }, - "nodeType": "YulExpressionStatement", - "src": "19538:19:2" - }, - { - "nodeType": "YulAssignment", - "src": "19566:29:2", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "19585:3:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "19590:4:2", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "19581:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "19581:14:2" - }, - "variableNames": [ - { - "name": "updated_pos", - "nodeType": "YulIdentifier", - "src": "19566:11:2" - } - ] - } - ] - }, - "name": "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "19500:3:2", - "type": "" - }, - { - "name": "length", - "nodeType": "YulTypedName", - "src": "19505:6:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "updated_pos", - "nodeType": "YulTypedName", - "src": "19516:11:2", - "type": "" - } - ], - "src": "19417:184:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "19720:34:2", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "19730:18:2", - "value": { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "19745:3:2" - }, - "variableNames": [ - { - "name": "updated_pos", - "nodeType": "YulIdentifier", - "src": "19730:11:2" - } - ] - } - ] - }, - "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "19692:3:2", - "type": "" - }, - { - "name": "length", - "nodeType": "YulTypedName", - "src": "19697:6:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "updated_pos", - "nodeType": "YulTypedName", - "src": "19708:11:2", - "type": "" - } - ], - "src": "19607:147:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "19856:73:2", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "19873:3:2" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "19878:6:2" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "19866:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "19866:19:2" - }, - "nodeType": "YulExpressionStatement", - "src": "19866:19:2" - }, - { - "nodeType": "YulAssignment", - "src": "19894:29:2", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "19913:3:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "19918:4:2", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "19909:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "19909:14:2" - }, - "variableNames": [ - { - "name": "updated_pos", - "nodeType": "YulIdentifier", - "src": "19894:11:2" - } - ] - } - ] - }, - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "19828:3:2", - "type": "" - }, - { - "name": "length", - "nodeType": "YulTypedName", - "src": "19833:6:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "updated_pos", - "nodeType": "YulTypedName", - "src": "19844:11:2", - "type": "" - } - ], - "src": "19760:169:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "19980:51:2", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "19990:35:2", - "value": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "20019:5:2" - } - ], - "functionName": { - "name": "cleanup_t_uint160", - "nodeType": "YulIdentifier", - "src": "20001:17:2" - }, - "nodeType": "YulFunctionCall", - "src": "20001:24:2" - }, - "variableNames": [ - { - "name": "cleaned", - "nodeType": "YulIdentifier", - "src": "19990:7:2" - } - ] - } - ] - }, - "name": "cleanup_t_address", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "19962:5:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nodeType": "YulTypedName", - "src": "19972:7:2", - "type": "" - } - ], - "src": "19935:96:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "20079:48:2", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "20089:32:2", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "20114:5:2" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "20107:6:2" + "value": { + "hexValue": "32", + "id": 607, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14534:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" }, - "nodeType": "YulFunctionCall", - "src": "20107:13:2" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "20100:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "20100:21:2" - }, - "variableNames": [ - { - "name": "cleaned", - "nodeType": "YulIdentifier", - "src": "20089:7:2" - } - ] - } - ] - }, - "name": "cleanup_t_bool", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "20061:5:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nodeType": "YulTypedName", - "src": "20071:7:2", - "type": "" - } - ], - "src": "20037:90:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "20178:32:2", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "20188:16:2", - "value": { - "name": "value", - "nodeType": "YulIdentifier", - "src": "20199:5:2" - }, - "variableNames": [ - { - "name": "cleaned", - "nodeType": "YulIdentifier", - "src": "20188:7:2" - } - ] - } - ] - }, - "name": "cleanup_t_bytes32", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "20160:5:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nodeType": "YulTypedName", - "src": "20170:7:2", - "type": "" - } - ], - "src": "20133:77:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "20261:81:2", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "20271:65:2", - "value": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "20286:5:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "20293:42:2", - "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffff" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "20282:3:2" + "visibility": "public" }, - "nodeType": "YulFunctionCall", - "src": "20282:54:2" - }, - "variableNames": [ - { - "name": "cleaned", - "nodeType": "YulIdentifier", - "src": "20271:7:2" - } - ] - } - ] - }, - "name": "cleanup_t_uint160", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "20243:5:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nodeType": "YulTypedName", - "src": "20253:7:2", - "type": "" - } - ], - "src": "20216:126:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "20393:32:2", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "20403:16:2", - "value": { - "name": "value", - "nodeType": "YulIdentifier", - "src": "20414:5:2" - }, - "variableNames": [ { - "name": "cleaned", - "nodeType": "YulIdentifier", - "src": "20403:7:2" - } - ] - } - ] - }, - "name": "cleanup_t_uint256", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "20375:5:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nodeType": "YulTypedName", - "src": "20385:7:2", - "type": "" - } - ], - "src": "20348:77:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "20482:103:2", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "dst", - "nodeType": "YulIdentifier", - "src": "20505:3:2" - }, - { - "name": "src", - "nodeType": "YulIdentifier", - "src": "20510:3:2" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "20515:6:2" - } - ], - "functionName": { - "name": "calldatacopy", - "nodeType": "YulIdentifier", - "src": "20492:12:2" - }, - "nodeType": "YulFunctionCall", - "src": "20492:30:2" - }, - "nodeType": "YulExpressionStatement", - "src": "20492:30:2" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "dst", - "nodeType": "YulIdentifier", - "src": "20563:3:2" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "20568:6:2" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "20559:3:2" + "constant": true, + "functionSelector": "af78feef", + "id": 611, + "mutability": "constant", + "name": "WITHDRAWN", + "nameLocation": "14601:9:0", + "nodeType": "VariableDeclaration", + "scope": 1007, + "src": "14577:37:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, - "nodeType": "YulFunctionCall", - "src": "20559:16:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "20577:1:2", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "20552:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "20552:27:2" - }, - "nodeType": "YulExpressionStatement", - "src": "20552:27:2" - } - ] - }, - "name": "copy_calldata_to_memory", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "src", - "nodeType": "YulTypedName", - "src": "20464:3:2", - "type": "" - }, - { - "name": "dst", - "nodeType": "YulTypedName", - "src": "20469:3:2", - "type": "" - }, - { - "name": "length", - "nodeType": "YulTypedName", - "src": "20474:6:2", - "type": "" - } - ], - "src": "20431:154:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "20640:258:2", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "20650:10:2", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "20659:1:2", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "i", - "nodeType": "YulTypedName", - "src": "20654:1:2", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "20719:63:2", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "dst", - "nodeType": "YulIdentifier", - "src": "20744:3:2" - }, - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "20749:1:2" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "20740:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "20740:11:2" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nodeType": "YulIdentifier", - "src": "20763:3:2" - }, - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "20768:1:2" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "20759:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "20759:11:2" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "20753:5:2" - }, - "nodeType": "YulFunctionCall", - "src": "20753:18:2" + "typeName": { + "id": 609, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14577:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "20733:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "20733:39:2" }, - "nodeType": "YulExpressionStatement", - "src": "20733:39:2" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "20680:1:2" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "20683:6:2" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "20677:2:2" - }, - "nodeType": "YulFunctionCall", - "src": "20677:13:2" - }, - "nodeType": "YulForLoop", - "post": { - "nodeType": "YulBlock", - "src": "20691:19:2", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "20693:15:2", "value": { - "arguments": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "20702:1:2" + "hexValue": "33", + "id": 610, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14613:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "20705:2:2", - "type": "", - "value": "32" + "value": "3" + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "414ac85b", + "id": 614, + "mutability": "constant", + "name": "EXPIRED", + "nameLocation": "14681:7:0", + "nodeType": "VariableDeclaration", + "scope": 1007, + "src": "14657:35:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 612, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14657:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "20698:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "20698:10:2" }, - "variableNames": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "20693:1:2" - } - ] - } - ] - }, - "pre": { - "nodeType": "YulBlock", - "src": "20673:3:2", - "statements": [] - }, - "src": "20669:113:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "20816:76:2", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "dst", - "nodeType": "YulIdentifier", - "src": "20866:3:2" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "20871:6:2" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "20862:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "20862:16:2" + "value": { + "hexValue": "34", + "id": 613, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14691:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "20880:1:2", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "20855:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "20855:27:2" + "value": "4" }, - "nodeType": "YulExpressionStatement", - "src": "20855:27:2" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "20797:1:2" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "20800:6:2" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "20794:2:2" - }, - "nodeType": "YulFunctionCall", - "src": "20794:13:2" - }, - "nodeType": "YulIf", - "src": "20791:2:2" - } - ] - }, - "name": "copy_memory_to_memory", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "src", - "nodeType": "YulTypedName", - "src": "20622:3:2", - "type": "" - }, - { - "name": "dst", - "nodeType": "YulTypedName", - "src": "20627:3:2", - "type": "" - }, - { - "name": "length", - "nodeType": "YulTypedName", - "src": "20632:6:2", - "type": "" - } - ], - "src": "20591:307:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "20955:269:2", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "20965:22:2", - "value": { - "arguments": [ - { - "name": "data", - "nodeType": "YulIdentifier", - "src": "20979:4:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "20985:1:2", - "type": "", - "value": "2" - } - ], - "functionName": { - "name": "div", - "nodeType": "YulIdentifier", - "src": "20975:3:2" + "visibility": "public" }, - "nodeType": "YulFunctionCall", - "src": "20975:12:2" - }, - "variableNames": [ { - "name": "length", - "nodeType": "YulIdentifier", - "src": "20965:6:2" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "20996:38:2", - "value": { - "arguments": [ - { - "name": "data", - "nodeType": "YulIdentifier", - "src": "21026:4:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "21032:1:2", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "21022:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "21022:12:2" - }, - "variables": [ - { - "name": "outOfPlaceEncoding", - "nodeType": "YulTypedName", - "src": "21000:18:2", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "21073:51:2", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "21087:27:2", - "value": { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "21101:6:2" - }, + "canonicalName": "HashedTimeLockContract.LockContract", + "id": 635, + "members": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "21109:4:2", - "type": "", - "value": "0x7f" + "constant": false, + "id": 616, + "mutability": "mutable", + "name": "inputAmount", + "nameLocation": "14778:11:0", + "nodeType": "VariableDeclaration", + "scope": 635, + "src": "14770:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 615, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14770:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 618, + "mutability": "mutable", + "name": "outputAmount", + "nameLocation": "14807:12:0", + "nodeType": "VariableDeclaration", + "scope": 635, + "src": "14799:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 617, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14799:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 620, + "mutability": "mutable", + "name": "expiration", + "nameLocation": "14837:10:0", + "nodeType": "VariableDeclaration", + "scope": 635, + "src": "14829:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 619, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14829:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 622, + "mutability": "mutable", + "name": "status", + "nameLocation": "14865:6:0", + "nodeType": "VariableDeclaration", + "scope": 635, + "src": "14857:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 621, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14857:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 624, + "mutability": "mutable", + "name": "hashLock", + "nameLocation": "14889:8:0", + "nodeType": "VariableDeclaration", + "scope": 635, + "src": "14881:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 623, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "14881:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 626, + "mutability": "mutable", + "name": "tokenAddress", + "nameLocation": "14915:12:0", + "nodeType": "VariableDeclaration", + "scope": 635, + "src": "14907:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 625, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14907:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 628, + "mutability": "mutable", + "name": "sender", + "nameLocation": "14945:6:0", + "nodeType": "VariableDeclaration", + "scope": 635, + "src": "14937:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 627, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14937:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 630, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "14969:8:0", + "nodeType": "VariableDeclaration", + "scope": 635, + "src": "14961:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 629, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14961:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 632, + "mutability": "mutable", + "name": "outputNetwork", + "nameLocation": "14994:13:0", + "nodeType": "VariableDeclaration", + "scope": 635, + "src": "14987:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 631, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "14987:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 634, + "mutability": "mutable", + "name": "outputAddress", + "nameLocation": "15024:13:0", + "nodeType": "VariableDeclaration", + "scope": 635, + "src": "15017:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 633, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "15017:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "21097:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "21097:17:2" - }, - "variableNames": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "21087:6:2" - } - ] - } - ] - }, - "condition": { - "arguments": [ - { - "name": "outOfPlaceEncoding", - "nodeType": "YulIdentifier", - "src": "21053:18:2" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "21046:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "21046:26:2" - }, - "nodeType": "YulIf", - "src": "21043:2:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "21176:42:2", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x22", - "nodeType": "YulIdentifier", - "src": "21190:16:2" - }, - "nodeType": "YulFunctionCall", - "src": "21190:18:2" - }, - "nodeType": "YulExpressionStatement", - "src": "21190:18:2" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "outOfPlaceEncoding", - "nodeType": "YulIdentifier", - "src": "21140:18:2" - }, - { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "21163:6:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "21171:2:2", - "type": "", - "value": "32" - } ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "21160:2:2" + "name": "LockContract", + "nameLocation": "14747:12:0", + "nodeType": "StructDefinition", + "scope": 1007, + "src": "14740:304:0", + "visibility": "public" + }, + { + "anonymous": false, + "eventSelector": "bab3eb11a71b2cd82a010d4d5b2c3df5cd25ee8c9f1a75baff879a1b87942cb8", + "id": 649, + "name": "Withdraw", + "nameLocation": "15056:8:0", + "nodeType": "EventDefinition", + "parameters": { + "id": 648, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 637, + "indexed": false, + "mutability": "mutable", + "name": "id", + "nameLocation": "15082:2:0", + "nodeType": "VariableDeclaration", + "scope": 649, + "src": "15074:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 636, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "15074:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 639, + "indexed": false, + "mutability": "mutable", + "name": "secret", + "nameLocation": "15102:6:0", + "nodeType": "VariableDeclaration", + "scope": 649, + "src": "15094:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 638, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "15094:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 641, + "indexed": false, + "mutability": "mutable", + "name": "hashLock", + "nameLocation": "15126:8:0", + "nodeType": "VariableDeclaration", + "scope": 649, + "src": "15118:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 640, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "15118:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 643, + "indexed": true, + "mutability": "mutable", + "name": "tokenAddress", + "nameLocation": "15160:12:0", + "nodeType": "VariableDeclaration", + "scope": 649, + "src": "15144:28:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 642, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15144:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 645, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nameLocation": "15198:6:0", + "nodeType": "VariableDeclaration", + "scope": 649, + "src": "15182:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 644, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15182:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 647, + "indexed": true, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "15230:8:0", + "nodeType": "VariableDeclaration", + "scope": 649, + "src": "15214:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 646, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15214:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "15064:180:0" }, - "nodeType": "YulFunctionCall", - "src": "21160:14:2" - } - ], - "functionName": { - "name": "eq", - "nodeType": "YulIdentifier", - "src": "21137:2:2" + "src": "15050:195:0" }, - "nodeType": "YulFunctionCall", - "src": "21137:38:2" - }, - "nodeType": "YulIf", - "src": "21134:2:2" - } - ] - }, - "name": "extract_byte_array_length", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "data", - "nodeType": "YulTypedName", - "src": "20939:4:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "length", - "nodeType": "YulTypedName", - "src": "20948:6:2", - "type": "" - } - ], - "src": "20904:320:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "21273:190:2", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "21283:33:2", - "value": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "21310:5:2" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nodeType": "YulIdentifier", - "src": "21292:17:2" - }, - "nodeType": "YulFunctionCall", - "src": "21292:24:2" - }, - "variableNames": [ { - "name": "value", - "nodeType": "YulIdentifier", - "src": "21283:5:2" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "21406:22:2", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x11", - "nodeType": "YulIdentifier", - "src": "21408:16:2" - }, - "nodeType": "YulFunctionCall", - "src": "21408:18:2" + "anonymous": false, + "eventSelector": "0d4cdc2fe2a785f03bf5481e13bee5cdcb7743166bcadafebfd3f09db6108117", + "id": 661, + "name": "Refund", + "nameLocation": "15257:6:0", + "nodeType": "EventDefinition", + "parameters": { + "id": 660, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 651, + "indexed": false, + "mutability": "mutable", + "name": "id", + "nameLocation": "15281:2:0", + "nodeType": "VariableDeclaration", + "scope": 661, + "src": "15273:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 650, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "15273:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 653, + "indexed": false, + "mutability": "mutable", + "name": "hashLock", + "nameLocation": "15301:8:0", + "nodeType": "VariableDeclaration", + "scope": 661, + "src": "15293:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 652, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "15293:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 655, + "indexed": true, + "mutability": "mutable", + "name": "tokenAddress", + "nameLocation": "15335:12:0", + "nodeType": "VariableDeclaration", + "scope": 661, + "src": "15319:28:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 654, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15319:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 657, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nameLocation": "15373:6:0", + "nodeType": "VariableDeclaration", + "scope": 661, + "src": "15357:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 656, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15357:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 659, + "indexed": true, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "15405:8:0", + "nodeType": "VariableDeclaration", + "scope": 661, + "src": "15389:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 658, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15389:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "15263:156:0" }, - "nodeType": "YulExpressionStatement", - "src": "21408:18:2" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "21331:5:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "21338:66:2", - "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" - } - ], - "functionName": { - "name": "eq", - "nodeType": "YulIdentifier", - "src": "21328:2:2" - }, - "nodeType": "YulFunctionCall", - "src": "21328:77:2" - }, - "nodeType": "YulIf", - "src": "21325:2:2" - }, - { - "nodeType": "YulAssignment", - "src": "21437:20:2", - "value": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "21448:5:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "21455:1:2", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "21444:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "21444:13:2" - }, - "variableNames": [ - { - "name": "ret", - "nodeType": "YulIdentifier", - "src": "21437:3:2" - } - ] - } - ] - }, - "name": "increment_t_uint256", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "21259:5:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "ret", - "nodeType": "YulTypedName", - "src": "21269:3:2", - "type": "" - } - ], - "src": "21230:233:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "21516:53:2", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "21526:37:2", - "value": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "21557:5:2" - } - ], - "functionName": { - "name": "leftAlign_t_uint160", - "nodeType": "YulIdentifier", - "src": "21537:19:2" + "src": "15251:169:0" }, - "nodeType": "YulFunctionCall", - "src": "21537:26:2" - }, - "variableNames": [ { - "name": "aligned", - "nodeType": "YulIdentifier", - "src": "21526:7:2" - } - ] - } - ] - }, - "name": "leftAlign_t_address", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "21498:5:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "aligned", - "nodeType": "YulTypedName", - "src": "21508:7:2", - "type": "" - } - ], - "src": "21469:100:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "21622:32:2", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "21632:16:2", - "value": { - "name": "value", - "nodeType": "YulIdentifier", - "src": "21643:5:2" - }, - "variableNames": [ - { - "name": "aligned", - "nodeType": "YulIdentifier", - "src": "21632:7:2" - } - ] - } - ] - }, - "name": "leftAlign_t_bytes32", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "21604:5:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "aligned", - "nodeType": "YulTypedName", - "src": "21614:7:2", - "type": "" - } - ], - "src": "21575:79:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "21707:47:2", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "21717:31:2", - "value": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "21742:5:2" - } - ], - "functionName": { - "name": "shift_left_96", - "nodeType": "YulIdentifier", - "src": "21728:13:2" - }, - "nodeType": "YulFunctionCall", - "src": "21728:20:2" - }, - "variableNames": [ - { - "name": "aligned", - "nodeType": "YulIdentifier", - "src": "21717:7:2" - } - ] - } - ] - }, - "name": "leftAlign_t_uint160", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "21689:5:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "aligned", - "nodeType": "YulTypedName", - "src": "21699:7:2", - "type": "" - } - ], - "src": "21660:94:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "21807:32:2", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "21817:16:2", - "value": { - "name": "value", - "nodeType": "YulIdentifier", - "src": "21828:5:2" - }, - "variableNames": [ - { - "name": "aligned", - "nodeType": "YulIdentifier", - "src": "21817:7:2" - } - ] - } - ] - }, - "name": "leftAlign_t_uint256", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "21789:5:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "aligned", - "nodeType": "YulTypedName", - "src": "21799:7:2", - "type": "" - } - ], - "src": "21760:79:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "21873:152:2", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "21890:1:2", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "21893:77:2", - "type": "", - "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "21883:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "21883:88:2" - }, - "nodeType": "YulExpressionStatement", - "src": "21883:88:2" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "21987:1:2", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "21990:4:2", - "type": "", - "value": "0x11" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "21980:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "21980:15:2" - }, - "nodeType": "YulExpressionStatement", - "src": "21980:15:2" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "22011:1:2", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "22014:4:2", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "22004:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "22004:15:2" - }, - "nodeType": "YulExpressionStatement", - "src": "22004:15:2" - } - ] - }, - "name": "panic_error_0x11", - "nodeType": "YulFunctionDefinition", - "src": "21845:180:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "22059:152:2", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "22076:1:2", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "22079:77:2", - "type": "", - "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "22069:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "22069:88:2" - }, - "nodeType": "YulExpressionStatement", - "src": "22069:88:2" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "22173:1:2", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "22176:4:2", - "type": "", - "value": "0x22" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "22166:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "22166:15:2" - }, - "nodeType": "YulExpressionStatement", - "src": "22166:15:2" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "22197:1:2", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "22200:4:2", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "22190:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "22190:15:2" - }, - "nodeType": "YulExpressionStatement", - "src": "22190:15:2" - } - ] - }, - "name": "panic_error_0x22", - "nodeType": "YulFunctionDefinition", - "src": "22031:180:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "22245:152:2", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "22262:1:2", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "22265:77:2", - "type": "", - "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "22255:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "22255:88:2" - }, - "nodeType": "YulExpressionStatement", - "src": "22255:88:2" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "22359:1:2", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "22362:4:2", - "type": "", - "value": "0x41" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "22352:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "22352:15:2" - }, - "nodeType": "YulExpressionStatement", - "src": "22352:15:2" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "22383:1:2", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "22386:4:2", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "22376:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "22376:15:2" - }, - "nodeType": "YulExpressionStatement", - "src": "22376:15:2" - } - ] - }, - "name": "panic_error_0x41", - "nodeType": "YulFunctionDefinition", - "src": "22217:180:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "22451:54:2", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "22461:38:2", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "22479:5:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "22486:2:2", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "22475:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "22475:14:2" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "22495:2:2", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "not", - "nodeType": "YulIdentifier", - "src": "22491:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "22491:7:2" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "22471:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "22471:28:2" - }, - "variableNames": [ - { - "name": "result", - "nodeType": "YulIdentifier", - "src": "22461:6:2" - } - ] - } - ] - }, - "name": "round_up_to_mul_of_32", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "22434:5:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "result", - "nodeType": "YulTypedName", - "src": "22444:6:2", - "type": "" - } - ], - "src": "22403:102:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "22553:52:2", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "22563:35:2", - "value": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "22588:2:2", - "type": "", - "value": "96" - }, - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "22592:5:2" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "22584:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "22584:14:2" - }, - "variableNames": [ - { - "name": "newValue", - "nodeType": "YulIdentifier", - "src": "22563:8:2" - } - ] - } - ] - }, - "name": "shift_left_96", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "22534:5:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "newValue", - "nodeType": "YulTypedName", - "src": "22544:8:2", - "type": "" - } - ], - "src": "22511:94:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "22654:79:2", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "22711:16:2", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "22720:1:2", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "22723:1:2", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "22713:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "22713:12:2" - }, - "nodeType": "YulExpressionStatement", - "src": "22713:12:2" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "22677:5:2" - }, - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "22702:5:2" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nodeType": "YulIdentifier", - "src": "22684:17:2" - }, - "nodeType": "YulFunctionCall", - "src": "22684:24:2" - } - ], - "functionName": { - "name": "eq", - "nodeType": "YulIdentifier", - "src": "22674:2:2" - }, - "nodeType": "YulFunctionCall", - "src": "22674:35:2" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "22667:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "22667:43:2" - }, - "nodeType": "YulIf", - "src": "22664:2:2" - } - ] - }, - "name": "validator_revert_t_address", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "22647:5:2", - "type": "" - } - ], - "src": "22611:122:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "22779:76:2", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "22833:16:2", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "22842:1:2", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "22845:1:2", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "22835:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "22835:12:2" - }, - "nodeType": "YulExpressionStatement", - "src": "22835:12:2" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "22802:5:2" - }, - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "22824:5:2" - } - ], - "functionName": { - "name": "cleanup_t_bool", - "nodeType": "YulIdentifier", - "src": "22809:14:2" - }, - "nodeType": "YulFunctionCall", - "src": "22809:21:2" - } - ], - "functionName": { - "name": "eq", - "nodeType": "YulIdentifier", - "src": "22799:2:2" - }, - "nodeType": "YulFunctionCall", - "src": "22799:32:2" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "22792:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "22792:40:2" - }, - "nodeType": "YulIf", - "src": "22789:2:2" - } - ] - }, - "name": "validator_revert_t_bool", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "22772:5:2", - "type": "" - } - ], - "src": "22739:116:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "22904:79:2", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "22961:16:2", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "22970:1:2", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "22973:1:2", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "22963:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "22963:12:2" - }, - "nodeType": "YulExpressionStatement", - "src": "22963:12:2" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "22927:5:2" - }, - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "22952:5:2" - } - ], - "functionName": { - "name": "cleanup_t_bytes32", - "nodeType": "YulIdentifier", - "src": "22934:17:2" - }, - "nodeType": "YulFunctionCall", - "src": "22934:24:2" - } - ], - "functionName": { - "name": "eq", - "nodeType": "YulIdentifier", - "src": "22924:2:2" - }, - "nodeType": "YulFunctionCall", - "src": "22924:35:2" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "22917:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "22917:43:2" - }, - "nodeType": "YulIf", - "src": "22914:2:2" - } - ] - }, - "name": "validator_revert_t_bytes32", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "22897:5:2", - "type": "" - } - ], - "src": "22861:122:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "23032:79:2", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "23089:16:2", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "23098:1:2", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "23101:1:2", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "23091:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "23091:12:2" - }, - "nodeType": "YulExpressionStatement", - "src": "23091:12:2" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "23055:5:2" - }, - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "23080:5:2" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nodeType": "YulIdentifier", - "src": "23062:17:2" - }, - "nodeType": "YulFunctionCall", - "src": "23062:24:2" - } - ], - "functionName": { - "name": "eq", - "nodeType": "YulIdentifier", - "src": "23052:2:2" - }, - "nodeType": "YulFunctionCall", - "src": "23052:35:2" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "23045:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "23045:43:2" - }, - "nodeType": "YulIf", - "src": "23042:2:2" - } - ] - }, - "name": "validator_revert_t_uint256", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "23025:5:2", - "type": "" - } - ], - "src": "22989:122:2" - } - ] - }, - "contents": "{\n\n // bytes32[]\n function abi_decode_available_length_t_array$_t_bytes32_$dyn_memory_ptr(offset, length, end) -> array {\n array := allocateMemory(array_allocation_size_t_array$_t_bytes32_$dyn_memory_ptr(length))\n let dst := array\n mstore(array, length) dst := add(array, 0x20)\n let src := offset\n if gt(add(src, mul(length, 0x20)), end) { revert(0, 0) }\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n let elementPos := src\n mstore(dst, abi_decode_t_bytes32(elementPos, end))\n dst := add(dst, 0x20)\n src := add(src, 0x20)\n }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n // bytes32[]\n function abi_decode_t_array$_t_bytes32_$dyn_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_array$_t_bytes32_$dyn_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_t_bool_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_t_bytes32(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes32(value)\n }\n\n function abi_decode_t_bytes32_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bytes32(value)\n }\n\n // string\n function abi_decode_t_string_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x01)), end) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_array$_t_bytes32_$dyn_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n\n value0 := abi_decode_t_array$_t_bytes32_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bool_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_bytes32_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_bytes32t_bytes32(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint256t_uint256t_uint256t_bytes32t_addresst_addresst_string_calldata_ptrt_string_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7, value8, value9 {\n if slt(sub(dataEnd, headStart), 256) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 96\n\n value3 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 128\n\n value4 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 160\n\n value5 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 192))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n\n value6, value7 := abi_decode_t_string_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 224))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n\n value8, value9 := abi_decode_t_string_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encodeUpdatedPos_t_uint256_to_t_uint256(value0, pos) -> updatedPos {\n abi_encode_t_uint256_to_t_uint256(value0, pos)\n updatedPos := add(pos, 0x20)\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_address(cleanup_t_address(value)))\n }\n\n // uint256[] -> uint256[]\n function abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_array$_t_uint256_$dyn_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack(pos, length)\n let baseRef := array_dataslot_t_array$_t_uint256_$dyn_memory_ptr(value)\n let srcPtr := baseRef\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n let elementValue0 := mload(srcPtr)\n pos := abi_encodeUpdatedPos_t_uint256_to_t_uint256(elementValue0, pos)\n srcPtr := array_nextElement_t_array$_t_uint256_$dyn_memory_ptr(srcPtr)\n }\n end := pos\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_bytes32(cleanup_t_bytes32(value)))\n }\n\n function abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_bytes_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n\n // string -> string\n function abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_fromStack(start, length, pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n\n copy_calldata_to_memory(start, pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_t_stringliteral_10858945dd31484ce6a77564821a1a6ff0e82939d9bea2b8e6caae50c7fc3750_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 11)\n\n mstore(add(pos, 0), \"SWAP_EXISTS\")\n\n end := add(pos, 32)\n }\n\n function abi_encode_t_stringliteral_20442b474b3561be70a7e12c2acf875277f59e68e7748337cd68bf5c8ada064b_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 14)\n\n mstore(add(pos, 0), \"INVALID_SECRET\")\n\n end := add(pos, 32)\n }\n\n function abi_encode_t_stringliteral_afbfa7d3db262df0c92c413f0113503b1c1332dc5a4a874fcd8d6a6de57b74dd_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 15)\n\n mstore(add(pos, 0), \"SWAP_NOT_ACTIVE\")\n\n end := add(pos, 32)\n }\n\n function abi_encode_t_stringliteral_b98f3e47db5919a8c78ec10ff6bf7d1326066d3facdc164cf7441d38cae771df_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 12)\n\n mstore(add(pos, 0), \"INVALID_TIME\")\n\n end := add(pos, 32)\n }\n\n function abi_encode_t_stringliteral_eb6dbbf3194e9f4dd39c8dabe51ddb59ca6ad00c50b1bc74675ce4b263687722_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 14)\n\n mstore(add(pos, 0), \"INVALID_AMOUNT\")\n\n end := add(pos, 32)\n }\n\n function abi_encode_t_uint256_to_t_uint256(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_uint256(cleanup_t_uint256(value)))\n }\n\n function abi_encode_tuple_packed_t_address_t_address_t_uint256_t_bytes32_t_uint256_t_address__to_t_address_t_address_t_uint256_t_bytes32_t_uint256_t_address__nonPadded_inplace_fromStack_reversed(pos , value5, value4, value3, value2, value1, value0) -> end {\n\n abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value0, pos)\n pos := add(pos, 20)\n\n abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value1, pos)\n pos := add(pos, 20)\n\n abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack(value2, pos)\n pos := add(pos, 32)\n\n abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value3, pos)\n pos := add(pos, 32)\n\n abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack(value4, pos)\n pos := add(pos, 32)\n\n abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value5, pos)\n pos := add(pos, 20)\n\n end := pos\n }\n\n function abi_encode_tuple_packed_t_bytes32__to_t_bytes32__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value0, pos)\n pos := add(pos, 32)\n\n end := pos\n }\n\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n pos := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n end := pos\n }\n\n function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value0, tail)\n\n }\n\n function abi_encode_tuple_t_bytes32_t_bytes32__to_t_bytes32_t_bytes32__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32__to_t_bytes32_t_bytes32_t_bytes32__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value2, add(headStart, 64))\n\n }\n\n function abi_encode_tuple_t_stringliteral_10858945dd31484ce6a77564821a1a6ff0e82939d9bea2b8e6caae50c7fc3750__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_10858945dd31484ce6a77564821a1a6ff0e82939d9bea2b8e6caae50c7fc3750_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_20442b474b3561be70a7e12c2acf875277f59e68e7748337cd68bf5c8ada064b__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_20442b474b3561be70a7e12c2acf875277f59e68e7748337cd68bf5c8ada064b_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_afbfa7d3db262df0c92c413f0113503b1c1332dc5a4a874fcd8d6a6de57b74dd__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_afbfa7d3db262df0c92c413f0113503b1c1332dc5a4a874fcd8d6a6de57b74dd_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_b98f3e47db5919a8c78ec10ff6bf7d1326066d3facdc164cf7441d38cae771df__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_b98f3e47db5919a8c78ec10ff6bf7d1326066d3facdc164cf7441d38cae771df_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_stringliteral_eb6dbbf3194e9f4dd39c8dabe51ddb59ca6ad00c50b1bc74675ce4b263687722__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_eb6dbbf3194e9f4dd39c8dabe51ddb59ca6ad00c50b1bc74675ce4b263687722_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_uint256_t_uint256_t_uint256_t_bytes32_t_bytes32_t_string_calldata_ptr_t_string_calldata_ptr__to_t_uint256_t_uint256_t_uint256_t_bytes32_t_bytes32_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed(headStart , value8, value7, value6, value5, value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 224)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value3, add(headStart, 96))\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value4, add(headStart, 128))\n\n mstore(add(headStart, 160), sub(tail, headStart))\n tail := abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_fromStack(value5, value6, tail)\n\n mstore(add(headStart, 192), sub(tail, headStart))\n tail := abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_fromStack(value7, value8, tail)\n\n }\n\n function abi_encode_tuple_t_uint256_t_uint256_t_uint256_t_uint256_t_bytes32_t_address_t_address_t_address_t_string_memory_ptr_t_string_memory_ptr__to_t_uint256_t_uint256_t_uint256_t_uint256_t_bytes32_t_address_t_address_t_address_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed(headStart , value9, value8, value7, value6, value5, value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 320)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value3, add(headStart, 96))\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value4, add(headStart, 128))\n\n abi_encode_t_address_to_t_address_fromStack(value5, add(headStart, 160))\n\n abi_encode_t_address_to_t_address_fromStack(value6, add(headStart, 192))\n\n abi_encode_t_address_to_t_address_fromStack(value7, add(headStart, 224))\n\n mstore(add(headStart, 256), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value8, tail)\n\n mstore(add(headStart, 288), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value9, tail)\n\n }\n\n function allocateMemory(size) -> memPtr {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, size)\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function array_allocation_size_t_array$_t_bytes32_$dyn_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := mul(length, 0x20)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function array_dataslot_t_array$_t_uint256_$dyn_memory_ptr(ptr) -> data {\n data := ptr\n\n data := add(ptr, 0x20)\n\n }\n\n function array_length_t_array$_t_uint256_$dyn_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_length_t_bytes_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_nextElement_t_array$_t_uint256_$dyn_memory_ptr(ptr) -> next {\n next := add(ptr, 0x20)\n }\n\n function array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function copy_calldata_to_memory(src, dst, length) {\n calldatacopy(dst, src, length)\n // clear end\n mstore(add(dst, length), 0)\n }\n\n function copy_memory_to_memory(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length)\n {\n // clear end\n mstore(add(dst, length), 0)\n }\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n function leftAlign_t_address(value) -> aligned {\n aligned := leftAlign_t_uint160(value)\n }\n\n function leftAlign_t_bytes32(value) -> aligned {\n aligned := value\n }\n\n function leftAlign_t_uint160(value) -> aligned {\n aligned := shift_left_96(value)\n }\n\n function leftAlign_t_uint256(value) -> aligned {\n aligned := value\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function shift_left_96(value) -> newValue {\n newValue :=\n\n shl(96, value)\n\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function validator_revert_t_bytes32(value) {\n if iszero(eq(value, cleanup_t_bytes32(value))) { revert(0, 0) }\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n", - "id": 2, - "language": "Yul", - "name": "#utility.yul" - } - ], - "sourceMap": "14047:4785:0:-:0;;;;;;;;;;;;;;;;;;;", - "deployedSourceMap": "14047:4785:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18130:331;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14618:35;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17098:631;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17735:389;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14287:35;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14460:36;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14538:37;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14371:34;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15714:1378;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14117:49;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;18467:363;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18130:331;18216:16;18248:23;18288:3;:10;18274:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18248:51;;18315:13;18310:121;18342:3;:10;18334:5;:18;18310:121;;;18393:27;18409:3;18413:5;18409:10;;;;;;;;;;;;;;;;;;;;;;18393:15;:27::i;:::-;18377:6;18384:5;18377:13;;;;;;;;;;;;;;;;;;;;;:43;;;;;18354:7;;;;;:::i;:::-;;;;18310:121;;;;18448:6;18441:13;;;18130:331;;;:::o;14618:35::-;14652:1;14618:35;:::o;17098:631::-;17175:22;17200:9;:13;17210:2;17200:13;;;;;;;;;;;17175:38;;14404:1;17232;:8;;;:18;17224:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;17304:15;17289:1;:12;;;:30;17281:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;17382:32;17406:6;17389:24;;;;;;;;:::i;:::-;;;;;;;;;;;;;17382:32;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17368:1;:10;;;:46;17347:107;;;;;;;;;;;;:::i;:::-;;;;;;;;;14574:1;17465;:8;;:20;;;;17503:1;:14;;;;;;;;;;;;17496:31;;;17528:1;:10;;;;;;;;;;;;17540:1;:13;;;17496:58;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17702:1;:10;;;;;;;;;;;;17570:152;;17680:1;:8;;;;;;;;;;;;17570:152;;17652:1;:14;;;;;;;;;;;;17570:152;;;17592:2;17608:6;17628:1;:10;;;17570:152;;;;;;;;:::i;:::-;;;;;;;;17098:631;;;:::o;17735:389::-;17782:22;17807:9;:13;17817:2;17807:13;;;;;;;;;;;17782:38;;14404:1;17839;:8;;;:18;17831:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;17912:15;17896:1;:12;;;:31;;17888:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;14495:1;17955;:8;;:19;;;;17992:1;:14;;;;;;;;;;;;17985:31;;;18017:1;:8;;;;;;;;;;;;18027:1;:13;;;17985:56;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18106:1;:10;;;;;;;;;;;;18057:60;;18096:1;:8;;;;;;;;;;;;18057:60;;18080:1;:14;;;;;;;;;;;;18057:60;;;18064:2;18068:1;:10;;;18057:60;;;;;;;:::i;:::-;;;;;;;;17735:389;;:::o;14287:35::-;14321:1;14287:35;:::o;14460:36::-;14495:1;14460:36;:::o;14538:37::-;14574:1;14538:37;:::o;14371:34::-;14404:1;14371:34;:::o;15714:1378::-;16028:15;16015:10;:28;16007:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;16093:1;16079:11;:15;16071:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;16131:12;16124:33;;;16158:10;16178:4;16185:11;16124:73;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16208:10;16278;16306:8;16332:11;16361:8;16387:10;16415:12;16244:197;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;16221:230;;;;;;16208:243;;14321:1;16470:9;:13;16480:2;16470:13;;;;;;;;;;;:20;;;:31;16462:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;16544:265;;;;;;;;16570:11;16544:265;;;;16595:12;16544:265;;;;16621:10;16544:265;;;;14404:1;16544:265;;;;16665:8;16544:265;;;;16687:12;16544:265;;;;;;16713:10;16544:265;;;;;;16737:8;16544:265;;;;;;16759:13;;16544:265;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16786:13;;16544:265;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16528:9;:13;16538:2;16528:13;;;;;;;;;;;:281;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;17013:8;16825:260;;16989:10;16825:260;;16963:12;16825:260;;;16850:11;16875:12;16901:10;16925:2;16941:8;17035:13;;17062;;16825:260;;;;;;;;;;;;;;:::i;:::-;;;;;;;;15714:1378;;;;;;;;;;;:::o;14117:49::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;18467:363::-;18525:14;18551:32;18586:9;:13;18596:2;18586:13;;;;;;;;;;;18551:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14404:1;18627:12;:19;;;:29;:86;;;;;18698:15;18672:12;:23;;;:41;18627:86;18610:214;;;14652:1;18738:16;;18610:214;;;18794:12;:19;;;18785:28;;18610:214;18467:363;;;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;24:622:2:-;;145:80;160:64;217:6;160:64;:::i;:::-;145:80;:::i;:::-;136:89;;245:5;273:6;266:5;259:21;299:4;292:5;288:16;281:23;;324:6;374:3;366:4;358:6;354:17;349:3;345:27;342:36;339:2;;;391:1;388;381:12;339:2;419:1;404:236;429:6;426:1;423:13;404:236;;;496:3;524:37;557:3;545:10;524:37;:::i;:::-;519:3;512:50;591:4;586:3;582:14;575:21;;625:4;620:3;616:14;609:21;;464:176;451:1;448;444:9;439:14;;404:236;;;408:14;126:520;;;;;;;:::o;652:139::-;;736:6;723:20;714:29;;752:33;779:5;752:33;:::i;:::-;704:87;;;;:::o;814:303::-;;934:3;927:4;919:6;915:17;911:27;901:2;;952:1;949;942:12;901:2;992:6;979:20;1017:94;1107:3;1099:6;1092:4;1084:6;1080:17;1017:94;:::i;:::-;1008:103;;891:226;;;;;:::o;1123:137::-;;1208:6;1202:13;1193:22;;1224:30;1248:5;1224:30;:::i;:::-;1183:77;;;;:::o;1266:139::-;;1350:6;1337:20;1328:29;;1366:33;1393:5;1366:33;:::i;:::-;1318:87;;;;:::o;1411:143::-;;1499:6;1493:13;1484:22;;1515:33;1542:5;1515:33;:::i;:::-;1474:80;;;;:::o;1574:352::-;;;1692:3;1685:4;1677:6;1673:17;1669:27;1659:2;;1710:1;1707;1700:12;1659:2;1746:6;1733:20;1723:30;;1776:18;1768:6;1765:30;1762:2;;;1808:1;1805;1798:12;1762:2;1845:4;1837:6;1833:17;1821:29;;1899:3;1891:4;1883:6;1879:17;1869:8;1865:32;1862:41;1859:2;;;1916:1;1913;1906:12;1859:2;1649:277;;;;;:::o;1932:139::-;;2016:6;2003:20;1994:29;;2032:33;2059:5;2032:33;:::i;:::-;1984:87;;;;:::o;2077:405::-;;2210:2;2198:9;2189:7;2185:23;2181:32;2178:2;;;2226:1;2223;2216:12;2178:2;2297:1;2286:9;2282:17;2269:31;2327:18;2319:6;2316:30;2313:2;;;2359:1;2356;2349:12;2313:2;2387:78;2457:7;2448:6;2437:9;2433:22;2387:78;:::i;:::-;2377:88;;2240:235;2168:314;;;;:::o;2488:278::-;;2604:2;2592:9;2583:7;2579:23;2575:32;2572:2;;;2620:1;2617;2610:12;2572:2;2663:1;2688:61;2741:7;2732:6;2721:9;2717:22;2688:61;:::i;:::-;2678:71;;2634:125;2562:204;;;;:::o;2772:262::-;;2880:2;2868:9;2859:7;2855:23;2851:32;2848:2;;;2896:1;2893;2886:12;2848:2;2939:1;2964:53;3009:7;3000:6;2989:9;2985:22;2964:53;:::i;:::-;2954:63;;2910:117;2838:196;;;;:::o;3040:284::-;;3159:2;3147:9;3138:7;3134:23;3130:32;3127:2;;;3175:1;3172;3165:12;3127:2;3218:1;3243:64;3299:7;3290:6;3279:9;3275:22;3243:64;:::i;:::-;3233:74;;3189:128;3117:207;;;;:::o;3330:407::-;;;3455:2;3443:9;3434:7;3430:23;3426:32;3423:2;;;3471:1;3468;3461:12;3423:2;3514:1;3539:53;3584:7;3575:6;3564:9;3560:22;3539:53;:::i;:::-;3529:63;;3485:117;3641:2;3667:53;3712:7;3703:6;3692:9;3688:22;3667:53;:::i;:::-;3657:63;;3612:118;3413:324;;;;;:::o;3743:1548::-;;;;;;;;;;;4010:3;3998:9;3989:7;3985:23;3981:33;3978:2;;;4027:1;4024;4017:12;3978:2;4070:1;4095:53;4140:7;4131:6;4120:9;4116:22;4095:53;:::i;:::-;4085:63;;4041:117;4197:2;4223:53;4268:7;4259:6;4248:9;4244:22;4223:53;:::i;:::-;4213:63;;4168:118;4325:2;4351:53;4396:7;4387:6;4376:9;4372:22;4351:53;:::i;:::-;4341:63;;4296:118;4453:2;4479:53;4524:7;4515:6;4504:9;4500:22;4479:53;:::i;:::-;4469:63;;4424:118;4581:3;4608:53;4653:7;4644:6;4633:9;4629:22;4608:53;:::i;:::-;4598:63;;4552:119;4710:3;4737:53;4782:7;4773:6;4762:9;4758:22;4737:53;:::i;:::-;4727:63;;4681:119;4867:3;4856:9;4852:19;4839:33;4899:18;4891:6;4888:30;4885:2;;;4931:1;4928;4921:12;4885:2;4967:65;5024:7;5015:6;5004:9;5000:22;4967:65;:::i;:::-;4949:83;;;;4810:232;5109:3;5098:9;5094:19;5081:33;5141:18;5133:6;5130:30;5127:2;;;5173:1;5170;5163:12;5127:2;5209:65;5266:7;5257:6;5246:9;5242:22;5209:65;:::i;:::-;5191:83;;;;5052:232;3968:1323;;;;;;;;;;;;;:::o;5297:179::-;;5387:46;5429:3;5421:6;5387:46;:::i;:::-;5465:4;5460:3;5456:14;5442:28;;5377:99;;;;:::o;5482:118::-;5569:24;5587:5;5569:24;:::i;:::-;5564:3;5557:37;5547:53;;:::o;5606:157::-;5711:45;5731:24;5749:5;5731:24;:::i;:::-;5711:45;:::i;:::-;5706:3;5699:58;5689:74;;:::o;5799:732::-;;5947:54;5995:5;5947:54;:::i;:::-;6017:86;6096:6;6091:3;6017:86;:::i;:::-;6010:93;;6127:56;6177:5;6127:56;:::i;:::-;6206:7;6237:1;6222:284;6247:6;6244:1;6241:13;6222:284;;;6323:6;6317:13;6350:63;6409:3;6394:13;6350:63;:::i;:::-;6343:70;;6436:60;6489:6;6436:60;:::i;:::-;6426:70;;6282:224;6269:1;6266;6262:9;6257:14;;6222:284;;;6226:14;6522:3;6515:10;;5923:608;;;;;;;:::o;6537:118::-;6624:24;6642:5;6624:24;:::i;:::-;6619:3;6612:37;6602:53;;:::o;6661:157::-;6766:45;6786:24;6804:5;6786:24;:::i;:::-;6766:45;:::i;:::-;6761:3;6754:58;6744:74;;:::o;6824:373::-;;6956:38;6988:5;6956:38;:::i;:::-;7010:88;7091:6;7086:3;7010:88;:::i;:::-;7003:95;;7107:52;7152:6;7147:3;7140:4;7133:5;7129:16;7107:52;:::i;:::-;7184:6;7179:3;7175:16;7168:23;;6932:265;;;;;:::o;7227:304::-;;7346:71;7410:6;7405:3;7346:71;:::i;:::-;7339:78;;7427:43;7463:6;7458:3;7451:5;7427:43;:::i;:::-;7495:29;7517:6;7495:29;:::i;:::-;7490:3;7486:39;7479:46;;7329:202;;;;;:::o;7537:364::-;;7653:39;7686:5;7653:39;:::i;:::-;7708:71;7772:6;7767:3;7708:71;:::i;:::-;7701:78;;7788:52;7833:6;7828:3;7821:4;7814:5;7810:16;7788:52;:::i;:::-;7865:29;7887:6;7865:29;:::i;:::-;7860:3;7856:39;7849:46;;7629:272;;;;;:::o;7907:309::-;;8070:67;8134:2;8129:3;8070:67;:::i;:::-;8063:74;;8167:13;8163:1;8158:3;8154:11;8147:34;8207:2;8202:3;8198:12;8191:19;;8053:163;;;:::o;8222:312::-;;8385:67;8449:2;8444:3;8385:67;:::i;:::-;8378:74;;8482:16;8478:1;8473:3;8469:11;8462:37;8525:2;8520:3;8516:12;8509:19;;8368:166;;;:::o;8540:313::-;;8703:67;8767:2;8762:3;8703:67;:::i;:::-;8696:74;;8800:17;8796:1;8791:3;8787:11;8780:38;8844:2;8839:3;8835:12;8828:19;;8686:167;;;:::o;8859:310::-;;9022:67;9086:2;9081:3;9022:67;:::i;:::-;9015:74;;9119:14;9115:1;9110:3;9106:11;9099:35;9160:2;9155:3;9151:12;9144:19;;9005:164;;;:::o;9175:312::-;;9338:67;9402:2;9397:3;9338:67;:::i;:::-;9331:74;;9435:16;9431:1;9426:3;9422:11;9415:37;9478:2;9473:3;9469:12;9462:19;;9321:166;;;:::o;9493:108::-;9570:24;9588:5;9570:24;:::i;:::-;9565:3;9558:37;9548:53;;:::o;9607:118::-;9694:24;9712:5;9694:24;:::i;:::-;9689:3;9682:37;9672:53;;:::o;9731:157::-;9836:45;9856:24;9874:5;9856:24;:::i;:::-;9836:45;:::i;:::-;9831:3;9824:58;9814:74;;:::o;9894:961::-;;10161:75;10232:3;10223:6;10161:75;:::i;:::-;10261:2;10256:3;10252:12;10245:19;;10274:75;10345:3;10336:6;10274:75;:::i;:::-;10374:2;10369:3;10365:12;10358:19;;10387:75;10458:3;10449:6;10387:75;:::i;:::-;10487:2;10482:3;10478:12;10471:19;;10500:75;10571:3;10562:6;10500:75;:::i;:::-;10600:2;10595:3;10591:12;10584:19;;10613:75;10684:3;10675:6;10613:75;:::i;:::-;10713:2;10708:3;10704:12;10697:19;;10726:75;10797:3;10788:6;10726:75;:::i;:::-;10826:2;10821:3;10817:12;10810:19;;10846:3;10839:10;;10150:705;;;;;;;;;:::o;10861:256::-;;10988:75;11059:3;11050:6;10988:75;:::i;:::-;11088:2;11083:3;11079:12;11072:19;;11108:3;11101:10;;10977:140;;;;:::o;11123:271::-;;11275:93;11364:3;11355:6;11275:93;:::i;:::-;11268:100;;11385:3;11378:10;;11257:137;;;;:::o;11400:442::-;;11587:2;11576:9;11572:18;11564:26;;11600:71;11668:1;11657:9;11653:17;11644:6;11600:71;:::i;:::-;11681:72;11749:2;11738:9;11734:18;11725:6;11681:72;:::i;:::-;11763;11831:2;11820:9;11816:18;11807:6;11763:72;:::i;:::-;11554:288;;;;;;:::o;11848:332::-;;12007:2;11996:9;11992:18;11984:26;;12020:71;12088:1;12077:9;12073:17;12064:6;12020:71;:::i;:::-;12101:72;12169:2;12158:9;12154:18;12145:6;12101:72;:::i;:::-;11974:206;;;;;:::o;12186:373::-;;12367:2;12356:9;12352:18;12344:26;;12416:9;12410:4;12406:20;12402:1;12391:9;12387:17;12380:47;12444:108;12547:4;12538:6;12444:108;:::i;:::-;12436:116;;12334:225;;;;:::o;12565:332::-;;12724:2;12713:9;12709:18;12701:26;;12737:71;12805:1;12794:9;12790:17;12781:6;12737:71;:::i;:::-;12818:72;12886:2;12875:9;12871:18;12862:6;12818:72;:::i;:::-;12691:206;;;;;:::o;12903:442::-;;13090:2;13079:9;13075:18;13067:26;;13103:71;13171:1;13160:9;13156:17;13147:6;13103:71;:::i;:::-;13184:72;13252:2;13241:9;13237:18;13228:6;13184:72;:::i;:::-;13266;13334:2;13323:9;13319:18;13310:6;13266:72;:::i;:::-;13057:288;;;;;;:::o;13351:419::-;;13555:2;13544:9;13540:18;13532:26;;13604:9;13598:4;13594:20;13590:1;13579:9;13575:17;13568:47;13632:131;13758:4;13632:131;:::i;:::-;13624:139;;13522:248;;;:::o;13776:419::-;;13980:2;13969:9;13965:18;13957:26;;14029:9;14023:4;14019:20;14015:1;14004:9;14000:17;13993:47;14057:131;14183:4;14057:131;:::i;:::-;14049:139;;13947:248;;;:::o;14201:419::-;;14405:2;14394:9;14390:18;14382:26;;14454:9;14448:4;14444:20;14440:1;14429:9;14425:17;14418:47;14482:131;14608:4;14482:131;:::i;:::-;14474:139;;14372:248;;;:::o;14626:419::-;;14830:2;14819:9;14815:18;14807:26;;14879:9;14873:4;14869:20;14865:1;14854:9;14850:17;14843:47;14907:131;15033:4;14907:131;:::i;:::-;14899:139;;14797:248;;;:::o;15051:419::-;;15255:2;15244:9;15240:18;15232:26;;15304:9;15298:4;15294:20;15290:1;15279:9;15275:17;15268:47;15332:131;15458:4;15332:131;:::i;:::-;15324:139;;15222:248;;;:::o;15476:222::-;;15607:2;15596:9;15592:18;15584:26;;15620:71;15688:1;15677:9;15673:17;15664:6;15620:71;:::i;:::-;15574:124;;;;:::o;15704:1108::-;;16063:3;16052:9;16048:19;16040:27;;16077:71;16145:1;16134:9;16130:17;16121:6;16077:71;:::i;:::-;16158:72;16226:2;16215:9;16211:18;16202:6;16158:72;:::i;:::-;16240;16308:2;16297:9;16293:18;16284:6;16240:72;:::i;:::-;16322;16390:2;16379:9;16375:18;16366:6;16322:72;:::i;:::-;16404:73;16472:3;16461:9;16457:19;16448:6;16404:73;:::i;:::-;16525:9;16519:4;16515:20;16509:3;16498:9;16494:19;16487:49;16553:88;16636:4;16627:6;16619;16553:88;:::i;:::-;16545:96;;16689:9;16683:4;16679:20;16673:3;16662:9;16658:19;16651:49;16717:88;16800:4;16791:6;16783;16717:88;:::i;:::-;16709:96;;16030:782;;;;;;;;;;;;:::o;16818:1401::-;;17241:3;17230:9;17226:19;17218:27;;17255:71;17323:1;17312:9;17308:17;17299:6;17255:71;:::i;:::-;17336:72;17404:2;17393:9;17389:18;17380:6;17336:72;:::i;:::-;17418;17486:2;17475:9;17471:18;17462:6;17418:72;:::i;:::-;17500;17568:2;17557:9;17553:18;17544:6;17500:72;:::i;:::-;17582:73;17650:3;17639:9;17635:19;17626:6;17582:73;:::i;:::-;17665;17733:3;17722:9;17718:19;17709:6;17665:73;:::i;:::-;17748;17816:3;17805:9;17801:19;17792:6;17748:73;:::i;:::-;17831;17899:3;17888:9;17884:19;17875:6;17831:73;:::i;:::-;17952:9;17946:4;17942:20;17936:3;17925:9;17921:19;17914:49;17980:78;18053:4;18044:6;17980:78;:::i;:::-;17972:86;;18106:9;18100:4;18096:20;18090:3;18079:9;18075:19;18068:49;18134:78;18207:4;18198:6;18134:78;:::i;:::-;18126:86;;17208:1011;;;;;;;;;;;;;:::o;18225:283::-;;18291:2;18285:9;18275:19;;18333:4;18325:6;18321:17;18440:6;18428:10;18425:22;18404:18;18392:10;18389:34;18386:62;18383:2;;;18451:18;;:::i;:::-;18383:2;18491:10;18487:2;18480:22;18265:243;;;;:::o;18514:311::-;;18681:18;18673:6;18670:30;18667:2;;;18703:18;;:::i;:::-;18667:2;18753:4;18745:6;18741:17;18733:25;;18813:4;18807;18803:15;18795:23;;18596:229;;;:::o;18831:132::-;;18921:3;18913:11;;18951:4;18946:3;18942:14;18934:22;;18903:60;;;:::o;18969:114::-;;19070:5;19064:12;19054:22;;19043:40;;;:::o;19089:98::-;;19174:5;19168:12;19158:22;;19147:40;;;:::o;19193:99::-;;19279:5;19273:12;19263:22;;19252:40;;;:::o;19298:113::-;;19400:4;19395:3;19391:14;19383:22;;19373:38;;;:::o;19417:184::-;;19550:6;19545:3;19538:19;19590:4;19585:3;19581:14;19566:29;;19528:73;;;;:::o;19607:147::-;;19745:3;19730:18;;19720:34;;;;:::o;19760:169::-;;19878:6;19873:3;19866:19;19918:4;19913:3;19909:14;19894:29;;19856:73;;;;:::o;19935:96::-;;20001:24;20019:5;20001:24;:::i;:::-;19990:35;;19980:51;;;:::o;20037:90::-;;20114:5;20107:13;20100:21;20089:32;;20079:48;;;:::o;20133:77::-;;20199:5;20188:16;;20178:32;;;:::o;20216:126::-;;20293:42;20286:5;20282:54;20271:65;;20261:81;;;:::o;20348:77::-;;20414:5;20403:16;;20393:32;;;:::o;20431:154::-;20515:6;20510:3;20505;20492:30;20577:1;20568:6;20563:3;20559:16;20552:27;20482:103;;;:::o;20591:307::-;20659:1;20669:113;20683:6;20680:1;20677:13;20669:113;;;20768:1;20763:3;20759:11;20753:18;20749:1;20744:3;20740:11;20733:39;20705:2;20702:1;20698:10;20693:15;;20669:113;;;20800:6;20797:1;20794:13;20791:2;;;20880:1;20871:6;20866:3;20862:16;20855:27;20791:2;20640:258;;;;:::o;20904:320::-;;20985:1;20979:4;20975:12;20965:22;;21032:1;21026:4;21022:12;21053:18;21043:2;;21109:4;21101:6;21097:17;21087:27;;21043:2;21171;21163:6;21160:14;21140:18;21137:38;21134:2;;;21190:18;;:::i;:::-;21134:2;20955:269;;;;:::o;21230:233::-;;21292:24;21310:5;21292:24;:::i;:::-;21283:33;;21338:66;21331:5;21328:77;21325:2;;;21408:18;;:::i;:::-;21325:2;21455:1;21448:5;21444:13;21437:20;;21273:190;;;:::o;21469:100::-;;21537:26;21557:5;21537:26;:::i;:::-;21526:37;;21516:53;;;:::o;21575:79::-;;21643:5;21632:16;;21622:32;;;:::o;21660:94::-;;21728:20;21742:5;21728:20;:::i;:::-;21717:31;;21707:47;;;:::o;21760:79::-;;21828:5;21817:16;;21807:32;;;:::o;21845:180::-;21893:77;21890:1;21883:88;21990:4;21987:1;21980:15;22014:4;22011:1;22004:15;22031:180;22079:77;22076:1;22069:88;22176:4;22173:1;22166:15;22200:4;22197:1;22190:15;22217:180;22265:77;22262:1;22255:88;22362:4;22359:1;22352:15;22386:4;22383:1;22376:15;22403:102;;22495:2;22491:7;22486:2;22479:5;22475:14;22471:28;22461:38;;22451:54;;;:::o;22511:94::-;;22592:5;22588:2;22584:14;22563:35;;22553:52;;;:::o;22611:122::-;22684:24;22702:5;22684:24;:::i;:::-;22677:5;22674:35;22664:2;;22723:1;22720;22713:12;22664:2;22654:79;:::o;22739:116::-;22809:21;22824:5;22809:21;:::i;:::-;22802:5;22799:32;22789:2;;22845:1;22842;22835:12;22789:2;22779:76;:::o;22861:122::-;22934:24;22952:5;22934:24;:::i;:::-;22927:5;22924:35;22914:2;;22973:1;22970;22963:12;22914:2;22904:79;:::o;22989:122::-;23062:24;23080:5;23062:24;:::i;:::-;23055:5;23052:35;23042:2;;23101:1;23098;23091:12;23042:2;23032:79;:::o", - "source": "pragma solidity ^0.8.0;\n\n\n\n/**\n * @dev Collection of functions related to the address type\n */\nlibrary Address {\n /**\n * @dev Returns true if `account` is a contract.\n *\n * [IMPORTANT]\n * ====\n * It is unsafe to assume that an address for which this function returns\n * false is an externally-owned account (EOA) and not a contract.\n *\n * Among others, `isContract` will return false for the following\n * types of addresses:\n *\n * - an externally-owned account\n * - a contract in construction\n * - an address where a contract will be created\n * - an address where a contract lived, but was destroyed\n * ====\n */\n function isContract(address account) internal view returns (bool) {\n // This method relies on extcodesize, which returns 0 for contracts in\n // construction, since the code is only stored at the end of the\n // constructor execution.\n\n uint256 size;\n // solhint-disable-next-line no-inline-assembly\n assembly { size := extcodesize(account) }\n return size > 0;\n }\n\n /**\n * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n * `recipient`, forwarding all available gas and reverting on errors.\n *\n * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n * of certain opcodes, possibly making contracts go over the 2300 gas limit\n * imposed by `transfer`, making them unable to receive funds via\n * `transfer`. {sendValue} removes this limitation.\n *\n * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n *\n * IMPORTANT: because control is transferred to `recipient`, care must be\n * taken to not create reentrancy vulnerabilities. Consider using\n * {ReentrancyGuard} or the\n * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\n */\n function sendValue(address payable recipient, uint256 amount) internal {\n require(address(this).balance >= amount, \"Address: insufficient balance\");\n\n // solhint-disable-next-line avoid-low-level-calls, avoid-call-value\n (bool success, ) = recipient.call{ value: amount }(\"\");\n require(success, \"Address: unable to send value, recipient may have reverted\");\n }\n\n /**\n * @dev Performs a Solidity function call using a low level `call`. A\n * plain`call` is an unsafe replacement for a function call: use this\n * function instead.\n *\n * If `target` reverts with a revert reason, it is bubbled up by this\n * function (like regular Solidity function calls).\n *\n * Returns the raw returned data. To convert to the expected return value,\n * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n *\n * Requirements:\n *\n * - `target` must be a contract.\n * - calling `target` with `data` must not revert.\n *\n * _Available since v3.1._\n */\n function functionCall(address target, bytes memory data) internal returns (bytes memory) {\n return functionCall(target, data, \"Address: low-level call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n * `errorMessage` as a fallback revert reason when `target` reverts.\n *\n * _Available since v3.1._\n */\n function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {\n return functionCallWithValue(target, data, 0, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but also transferring `value` wei to `target`.\n *\n * Requirements:\n *\n * - the calling contract must have an ETH balance of at least `value`.\n * - the called Solidity function must be `payable`.\n *\n * _Available since v3.1._\n */\n function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\n return functionCallWithValue(target, data, value, \"Address: low-level call with value failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n * with `errorMessage` as a fallback revert reason when `target` reverts.\n *\n * _Available since v3.1._\n */\n function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {\n require(address(this).balance >= value, \"Address: insufficient balance for call\");\n require(isContract(target), \"Address: call to non-contract\");\n\n // solhint-disable-next-line avoid-low-level-calls\n (bool success, bytes memory returndata) = target.call{ value: value }(data);\n return _verifyCallResult(success, returndata, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but performing a static call.\n *\n * _Available since v3.3._\n */\n function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\n return functionStaticCall(target, data, \"Address: low-level static call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n * but performing a static call.\n *\n * _Available since v3.3._\n */\n function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) {\n require(isContract(target), \"Address: static call to non-contract\");\n\n // solhint-disable-next-line avoid-low-level-calls\n (bool success, bytes memory returndata) = target.staticcall(data);\n return _verifyCallResult(success, returndata, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but performing a delegate call.\n *\n * _Available since v3.4._\n */\n function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\n return functionDelegateCall(target, data, \"Address: low-level delegate call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n * but performing a delegate call.\n *\n * _Available since v3.4._\n */\n function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {\n require(isContract(target), \"Address: delegate call to non-contract\");\n\n // solhint-disable-next-line avoid-low-level-calls\n (bool success, bytes memory returndata) = target.delegatecall(data);\n return _verifyCallResult(success, returndata, errorMessage);\n }\n\n function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) {\n if (success) {\n return returndata;\n } else {\n // Look for revert reason and bubble it up if present\n if (returndata.length > 0) {\n // The easiest way to bubble the revert reason is using memory via assembly\n\n // solhint-disable-next-line no-inline-assembly\n assembly {\n let returndata_size := mload(returndata)\n revert(add(32, returndata), returndata_size)\n }\n } else {\n revert(errorMessage);\n }\n }\n }\n}\n\n/**\n * @dev Interface of the ERC20 standard as defined in the EIP.\n */\ninterface IERC20 {\n /**\n * @dev Returns the amount of tokens in existence.\n */\n function totalSupply() external view returns (uint256);\n\n /**\n * @dev Returns the amount of tokens owned by `account`.\n */\n function balanceOf(address account) external view returns (uint256);\n\n /**\n * @dev Moves `amount` tokens from the caller's account to `recipient`.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transfer(address recipient, uint256 amount) external returns (bool);\n\n /**\n * @dev Returns the remaining number of tokens that `spender` will be\n * allowed to spend on behalf of `owner` through {transferFrom}. This is\n * zero by default.\n *\n * This value changes when {approve} or {transferFrom} are called.\n */\n function allowance(address owner, address spender) external view returns (uint256);\n\n /**\n * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\n * that someone may use both the old and the new allowance by unfortunate\n * transaction ordering. One possible solution to mitigate this race\n * condition is to first reduce the spender's allowance to 0 and set the\n * desired value afterwards:\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n *\n * Emits an {Approval} event.\n */\n function approve(address spender, uint256 amount) external returns (bool);\n\n /**\n * @dev Moves `amount` tokens from `sender` to `recipient` using the\n * allowance mechanism. `amount` is then deducted from the caller's\n * allowance.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);\n\n /**\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\n * another (`to`).\n *\n * Note that `value` may be zero.\n */\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n /**\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\n * a call to {approve}. `value` is the new allowance.\n */\n event Approval(address indexed owner, address indexed spender, uint256 value);\n}\n\n/**\n * @title SafeERC20\n * @dev Wrappers around ERC20 operations that throw on failure (when the token\n * contract returns false). Tokens that return no value (and instead revert or\n * throw on failure) are also supported, non-reverting calls are assumed to be\n * successful.\n * To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\n * which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\n */\nlibrary SafeERC20 {\n using Address for address;\n\n function safeTransfer(IERC20 token, address to, uint256 value) internal {\n _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));\n }\n\n function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal {\n _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));\n }\n\n /**\n * @dev Deprecated. This function has issues similar to the ones found in\n * {IERC20-approve}, and its usage is discouraged.\n *\n * Whenever possible, use {safeIncreaseAllowance} and\n * {safeDecreaseAllowance} instead.\n */\n function safeApprove(IERC20 token, address spender, uint256 value) internal {\n // safeApprove should only be called when setting an initial allowance,\n // or when resetting it to zero. To increase and decrease it, use\n // 'safeIncreaseAllowance' and 'safeDecreaseAllowance'\n // solhint-disable-next-line max-line-length\n require((value == 0) || (token.allowance(address(this), spender) == 0),\n \"SafeERC20: approve from non-zero to non-zero allowance\"\n );\n _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));\n }\n\n function safeIncreaseAllowance(IERC20 token, address spender, uint256 value) internal {\n uint256 newAllowance = token.allowance(address(this), spender) + value;\n _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));\n }\n\n function safeDecreaseAllowance(IERC20 token, address spender, uint256 value) internal {\n uint256 oldAllowance = token.allowance(address(this), spender);\n require(oldAllowance >= value, \"SafeERC20: decreased allowance below zero\");\n uint256 newAllowance = oldAllowance - value;\n _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));\n }\n\n /**\n * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n * on the return value: the return value is optional (but if data is returned, it must not be false).\n * @param token The token targeted by the call.\n * @param data The call data (encoded using abi.encode or one of its variants).\n */\n function _callOptionalReturn(IERC20 token, bytes memory data) private {\n // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since\n // we're implementing it ourselves. We use {Address.functionCall} to perform this call, which verifies that\n // the target address contains contract code and also asserts for success in the low-level call.\n\n bytes memory returndata = address(token).functionCall(data, \"SafeERC20: low-level call failed\");\n if (returndata.length > 0) { // Return data is optional\n // solhint-disable-next-line max-line-length\n require(abi.decode(returndata, (bool)), \"SafeERC20: ERC20 operation did not succeed\");\n }\n }\n}\n\ncontract HashedTimeLockContract {\n using SafeERC20 for IERC20;\n mapping(bytes32 => LockContract) public contracts;\n\n // / - WITHDRAWN\n // INVALID - ACTIVE |\n // \\ - EXPIRED - REFUNDED\n\n uint256 public constant INVALID = 0; // Uninitialized swap -> can go to ACTIVE\n uint256 public constant ACTIVE = 1; // Active swap -> can go to WITHDRAWN or EXPIRED\n uint256 public constant REFUNDED = 2; // Swap is refunded -> final state.\n uint256 public constant WITHDRAWN = 3; // Swap is withdrawn -> final state.\n uint256 public constant EXPIRED = 4; // Swap is expired -> can go to REFUNDED\n\n struct LockContract {\n uint256 inputAmount;\n uint256 outputAmount;\n uint256 expiration;\n uint256 status;\n bytes32 hashLock;\n address tokenAddress;\n address sender;\n address receiver;\n string outputNetwork;\n string outputAddress;\n }\n\n event Withdraw(\n bytes32 id,\n bytes32 secret,\n bytes32 hashLock,\n address indexed tokenAddress,\n address indexed sender,\n address indexed receiver\n );\n\n event Refund(\n bytes32 id,\n bytes32 hashLock,\n address indexed tokenAddress,\n address indexed sender,\n address indexed receiver\n );\n\n event NewContract(\n uint256 inputAmount,\n uint256 outputAmount,\n uint256 expiration,\n bytes32 id,\n bytes32 hashLock,\n address indexed tokenAddress,\n address indexed sender,\n address indexed receiver,\n string outputNetwork,\n string outputAddress\n );\n\n function newContract(\n uint256 inputAmount,\n uint256 outputAmount,\n uint256 expiration,\n bytes32 hashLock,\n address tokenAddress,\n address receiver,\n string calldata outputNetwork,\n string calldata outputAddress\n ) external {\n require(expiration > block.timestamp, \"INVALID_TIME\");\n\n require(inputAmount > 0, \"INVALID_AMOUNT\");\n\n IERC20(tokenAddress).transferFrom(msg.sender, address(this), inputAmount);\n\n bytes32 id = keccak256(\n abi.encodePacked(\n msg.sender,\n receiver,\n inputAmount,\n hashLock,\n expiration,\n tokenAddress\n )\n );\n\n require(contracts[id].status == INVALID, \"SWAP_EXISTS\");\n\n contracts[id] = LockContract(\n inputAmount,\n outputAmount,\n expiration,\n ACTIVE,\n hashLock,\n tokenAddress,\n msg.sender,\n receiver,\n outputNetwork,\n outputAddress\n );\n\n emit NewContract(\n inputAmount,\n outputAmount,\n expiration,\n id,\n hashLock,\n tokenAddress,\n msg.sender,\n receiver,\n outputNetwork,\n outputAddress\n );\n }\n\n function withdraw(bytes32 id, bytes32 secret)\n external\n {\n LockContract storage c = contracts[id];\n\n require(c.status == ACTIVE, \"SWAP_NOT_ACTIVE\");\n\n require(c.expiration > block.timestamp, \"INVALID_TIME\");\n\n require(\n c.hashLock == sha256(abi.encodePacked(secret)),\n \"INVALID_SECRET\"\n );\n\n c.status = WITHDRAWN;\n\n IERC20(c.tokenAddress).transfer(c.receiver, c.inputAmount);\n\n emit Withdraw(\n id,\n secret,\n c.hashLock,\n c.tokenAddress,\n c.sender,\n c.receiver\n );\n }\n\n function refund(bytes32 id) external {\n LockContract storage c = contracts[id];\n\n require(c.status == ACTIVE, \"SWAP_NOT_ACTIVE\");\n\n require(c.expiration <= block.timestamp, \"INVALID_TIME\");\n\n c.status = REFUNDED;\n\n IERC20(c.tokenAddress).transfer(c.sender, c.inputAmount);\n\n emit Refund(id, c.hashLock, c.tokenAddress, c.sender, c.receiver);\n }\n\n function getStatus(bytes32[] memory ids)\n public\n view\n returns (uint256[] memory)\n {\n uint256[] memory result = new uint256[](ids.length);\n\n for (uint256 index = 0; index < ids.length; index++) {\n result[index] = getSingleStatus(ids[index]);\n }\n\n return result;\n }\n\n function getSingleStatus(bytes32 id) public view returns (uint256 result) {\n LockContract memory tempContract = contracts[id];\n\n if (\n tempContract.status == ACTIVE &&\n tempContract.expiration < block.timestamp\n ) {\n result = EXPIRED;\n } else {\n result = tempContract.status;\n }\n }\n}", - "sourcePath": "/Users/jordigironamezcua/pruebas/contracts/HashTimeLock.sol", - "ast": { - "absolutePath": "/Users/jordigironamezcua/pruebas/contracts/HashTimeLock.sol", - "exportedSymbols": { - "Address": [ - 295 - ], - "HashedTimeLockContract": [ - 1007 - ], - "IERC20": [ - 371 - ], - "SafeERC20": [ - 590 - ] - }, - "id": 1008, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1, - "literals": [ - "solidity", - "^", - "0.8", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:0" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": { - "id": 2, - "nodeType": "StructuredDocumentation", - "src": "27:67:0", - "text": " @dev Collection of functions related to the address type" - }, - "fullyImplemented": true, - "id": 295, - "linearizedBaseContracts": [ - 295 - ], - "name": "Address", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 18, - "nodeType": "Block", - "src": "753:347:0", - "statements": [ - { - "assignments": [ - 11 - ], - "declarations": [ - { - "constant": false, - "id": 11, - "mutability": "mutable", - "name": "size", - "nodeType": "VariableDeclaration", - "scope": 18, - "src": "950:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "950:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 12, - "nodeType": "VariableDeclarationStatement", - "src": "950:12:0" - }, - { - "AST": { - "nodeType": "YulBlock", - "src": "1037:32:0", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "1039:28:0", - "value": { - "arguments": [ - { - "name": "account", - "nodeType": "YulIdentifier", - "src": "1059:7:0" - } - ], - "functionName": { - "name": "extcodesize", - "nodeType": "YulIdentifier", - "src": "1047:11:0" - }, - "nodeType": "YulFunctionCall", - "src": "1047:20:0" - }, - "variableNames": [ - { - "name": "size", - "nodeType": "YulIdentifier", - "src": "1039:4:0" - } - ] - } - ] - }, - "evmVersion": "istanbul", - "externalReferences": [ - { - "declaration": 5, - "isOffset": false, - "isSlot": false, - "src": "1059:7:0", - "valueSize": 1 - }, - { - "declaration": 11, - "isOffset": false, - "isSlot": false, - "src": "1039:4:0", - "valueSize": 1 - } - ], - "id": 13, - "nodeType": "InlineAssembly", - "src": "1028:41:0" - }, - { - "expression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 16, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 14, - "name": "size", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11, - "src": "1085:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 15, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1092:1:0", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1085:8:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 9, - "id": 17, - "nodeType": "Return", - "src": "1078:15:0" - } - ] - }, - "documentation": { - "id": 3, - "nodeType": "StructuredDocumentation", - "src": "117:565:0", - "text": " @dev Returns true if `account` is a contract.\n [IMPORTANT]\n ====\n It is unsafe to assume that an address for which this function returns\n false is an externally-owned account (EOA) and not a contract.\n Among others, `isContract` will return false for the following\n types of addresses:\n - an externally-owned account\n - a contract in construction\n - an address where a contract will be created\n - an address where a contract lived, but was destroyed\n ====" - }, - "id": 19, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isContract", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5, - "mutability": "mutable", - "name": "account", - "nodeType": "VariableDeclaration", - "scope": 19, - "src": "707:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "707:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "706:17:0" - }, - "returnParameters": { - "id": 9, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "scope": 19, - "src": "747:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 7, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "747:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "746:6:0" - }, - "scope": 295, - "src": "687:413:0", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 52, - "nodeType": "Block", - "src": "2088:320:0", - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 34, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "arguments": [ - { - "id": 30, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4294967268, - "src": "2114:4:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Address_$295", - "typeString": "library Address" - } - } - ], - "expression": { - "argumentTypes": [ + "anonymous": false, + "eventSelector": "448581ece7da63e54a320119f9f2b80c868a954c441e70c88ecdfc9591975124", + "id": 683, + "name": "NewContract", + "nameLocation": "15432:11:0", + "nodeType": "EventDefinition", + "parameters": { + "id": 682, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 663, + "indexed": false, + "mutability": "mutable", + "name": "inputAmount", + "nameLocation": "15461:11:0", + "nodeType": "VariableDeclaration", + "scope": 683, + "src": "15453:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 662, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15453:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 665, + "indexed": false, + "mutability": "mutable", + "name": "outputAmount", + "nameLocation": "15490:12:0", + "nodeType": "VariableDeclaration", + "scope": 683, + "src": "15482:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 664, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15482:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 667, + "indexed": false, + "mutability": "mutable", + "name": "expiration", + "nameLocation": "15520:10:0", + "nodeType": "VariableDeclaration", + "scope": 683, + "src": "15512:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 666, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15512:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 669, + "indexed": false, + "mutability": "mutable", + "name": "id", + "nameLocation": "15548:2:0", + "nodeType": "VariableDeclaration", + "scope": 683, + "src": "15540:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 668, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "15540:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 671, + "indexed": false, + "mutability": "mutable", + "name": "hashLock", + "nameLocation": "15568:8:0", + "nodeType": "VariableDeclaration", + "scope": 683, + "src": "15560:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 670, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "15560:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 673, + "indexed": true, + "mutability": "mutable", + "name": "tokenAddress", + "nameLocation": "15602:12:0", + "nodeType": "VariableDeclaration", + "scope": 683, + "src": "15586:28:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 672, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15586:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 675, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nameLocation": "15640:6:0", + "nodeType": "VariableDeclaration", + "scope": 683, + "src": "15624:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 674, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15624:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 677, + "indexed": true, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "15672:8:0", + "nodeType": "VariableDeclaration", + "scope": 683, + "src": "15656:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 676, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15656:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 679, + "indexed": false, + "mutability": "mutable", + "name": "outputNetwork", + "nameLocation": "15697:13:0", + "nodeType": "VariableDeclaration", + "scope": 683, + "src": "15690:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 678, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "15690:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, { - "typeIdentifier": "t_contract$_Address_$295", - "typeString": "library Address" + "constant": false, + "id": 681, + "indexed": false, + "mutability": "mutable", + "name": "outputAddress", + "nameLocation": "15727:13:0", + "nodeType": "VariableDeclaration", + "scope": 683, + "src": "15720:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 680, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "15720:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" } - ], - "id": 29, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2106:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 28, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2106:7:0", - "typeDescriptions": {} - } - }, - "id": 31, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2106:13:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 32, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balance", - "nodeType": "MemberAccess", - "src": "2106:21:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "id": 33, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 24, - "src": "2131:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2106:31:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "416464726573733a20696e73756666696369656e742062616c616e6365", - "id": 35, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2139:31:0", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9", - "typeString": "literal_string \"Address: insufficient balance\"" - }, - "value": "Address: insufficient balance" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" + ], + "src": "15443:303:0" }, - { - "typeIdentifier": "t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9", - "typeString": "literal_string \"Address: insufficient balance\"" - } - ], - "id": 27, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4294967278, - 4294967278 - ], - "referencedDeclaration": 4294967278, - "src": "2098:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } + "src": "15426:321:0" }, - "id": 36, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2098:73:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 37, - "nodeType": "ExpressionStatement", - "src": "2098:73:0" - }, - { - "assignments": [ - 39, - null - ], - "declarations": [ { - "constant": false, - "id": 39, - "mutability": "mutable", - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 52, - "src": "2260:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 38, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2260:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - null - ], - "id": 46, - "initialValue": { - "arguments": [ - { - "hexValue": "", - "id": 44, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2310:2:0", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - } - ], - "expression": { - "id": 40, - "name": "recipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22, - "src": "2278:9:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 41, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "call", - "nodeType": "MemberAccess", - "src": "2278:14:0", - "typeDescriptions": { - "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "function (bytes memory) payable returns (bool,bytes memory)" - } - }, - "id": 43, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "names": [ - "value" - ], - "nodeType": "FunctionCallOptions", - "options": [ - { - "id": 42, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 24, - "src": "2301:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "src": "2278:31:0", - "typeDescriptions": { - "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", - "typeString": "function (bytes memory) payable returns (bool,bytes memory)" - } - }, - "id": 45, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2278:35:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "tuple(bool,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2259:54:0" - }, - { - "expression": { - "arguments": [ - { - "id": 48, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 39, - "src": "2331:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564", - "id": 49, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2340:60:0", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae", - "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\"" - }, - "value": "Address: unable to send value, recipient may have reverted" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae", - "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\"" - } - ], - "id": 47, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4294967278, - 4294967278 - ], - "referencedDeclaration": 4294967278, - "src": "2323:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 50, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2323:78:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 51, - "nodeType": "ExpressionStatement", - "src": "2323:78:0" - } - ] - }, - "documentation": { - "id": 20, - "nodeType": "StructuredDocumentation", - "src": "1106:906:0", - "text": " @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]." - }, - "id": 53, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sendValue", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 25, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 22, - "mutability": "mutable", - "name": "recipient", - "nodeType": "VariableDeclaration", - "scope": 53, - "src": "2036:25:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 21, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2036:15:0", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 24, - "mutability": "mutable", - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 53, - "src": "2063:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 23, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2063:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2035:43:0" - }, - "returnParameters": { - "id": 26, - "nodeType": "ParameterList", - "parameters": [], - "src": "2088:0:0" - }, - "scope": 295, - "src": "2017:391:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 69, - "nodeType": "Block", - "src": "3238:82:0", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 64, - "name": "target", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 56, - "src": "3266:6:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 65, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 58, - "src": "3274:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "hexValue": "416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564", - "id": 66, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3280:32:0", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df", - "typeString": "literal_string \"Address: low-level call failed\"" - }, - "value": "Address: low-level call failed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df", - "typeString": "literal_string \"Address: low-level call failed\"" - } - ], - "id": 63, - "name": "functionCall", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 70, - 90 - ], - "referencedDeclaration": 90, - "src": "3253:12:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" - } - }, - "id": 67, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3253:60:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "functionReturnParameters": 62, - "id": 68, - "nodeType": "Return", - "src": "3246:67:0" - } - ] - }, - "documentation": { - "id": 54, - "nodeType": "StructuredDocumentation", - "src": "2414:730:0", - "text": " @dev Performs a Solidity function call using a low level `call`. A\n plain`call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason, it is bubbled up by this\n function (like regular Solidity function calls).\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert.\n _Available since v3.1._" - }, - "id": 70, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "functionCall", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 59, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 56, - "mutability": "mutable", - "name": "target", - "nodeType": "VariableDeclaration", - "scope": 70, - "src": "3171:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 55, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3171:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 58, - "mutability": "mutable", - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 70, - "src": "3187:17:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 57, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3187:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "3170:35:0" - }, - "returnParameters": { - "id": 62, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 61, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "scope": 70, - "src": "3224:12:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 60, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3224:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "3223:14:0" - }, - "scope": 295, - "src": "3149:171:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 89, - "nodeType": "Block", - "src": "3659:76:0", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 83, - "name": "target", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 73, - "src": "3698:6:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 84, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 75, - "src": "3706:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "hexValue": "30", - "id": 85, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3712:1:0", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - { - "id": 86, - "name": "errorMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "3715:12:0", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 82, - "name": "functionCallWithValue", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 110, - 160 - ], - "referencedDeclaration": 160, - "src": "3676:21:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" - } - }, - "id": 87, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3676:52:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "functionReturnParameters": 81, - "id": 88, - "nodeType": "Return", - "src": "3669:59:0" - } - ] - }, - "documentation": { - "id": 71, - "nodeType": "StructuredDocumentation", - "src": "3326:211:0", - "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" - }, - "id": 90, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "functionCall", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 78, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 73, - "mutability": "mutable", - "name": "target", - "nodeType": "VariableDeclaration", - "scope": 90, - "src": "3564:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 72, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3564:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 75, - "mutability": "mutable", - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 90, - "src": "3580:17:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 74, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3580:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 77, - "mutability": "mutable", - "name": "errorMessage", - "nodeType": "VariableDeclaration", - "scope": 90, - "src": "3599:26:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 76, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3599:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "3563:63:0" - }, - "returnParameters": { - "id": 81, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 80, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "scope": 90, - "src": "3645:12:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 79, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3645:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "3644:14:0" - }, - "scope": 295, - "src": "3542:193:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 109, - "nodeType": "Block", - "src": "4210:111:0", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 103, - "name": "target", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 93, - "src": "4249:6:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 104, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 95, - "src": "4257:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "id": 105, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 97, - "src": "4263:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "hexValue": "416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564", - "id": 106, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4270:43:0", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc", - "typeString": "literal_string \"Address: low-level call with value failed\"" - }, - "value": "Address: low-level call with value failed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc", - "typeString": "literal_string \"Address: low-level call with value failed\"" - } - ], - "id": 102, - "name": "functionCallWithValue", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 110, - 160 - ], - "referencedDeclaration": 160, - "src": "4227:21:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" - } - }, - "id": 107, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4227:87:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "functionReturnParameters": 101, - "id": 108, - "nodeType": "Return", - "src": "4220:94:0" - } - ] - }, - "documentation": { - "id": 91, - "nodeType": "StructuredDocumentation", - "src": "3741:351:0", - "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`.\n _Available since v3.1._" - }, - "id": 110, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "functionCallWithValue", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 98, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 93, - "mutability": "mutable", - "name": "target", - "nodeType": "VariableDeclaration", - "scope": 110, - "src": "4128:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 92, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4128:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 95, - "mutability": "mutable", - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 110, - "src": "4144:17:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 94, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4144:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 97, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 110, - "src": "4163:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 96, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4163:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "4127:50:0" - }, - "returnParameters": { - "id": 101, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 100, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "scope": 110, - "src": "4196:12:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 99, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4196:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "4195:14:0" - }, - "scope": 295, - "src": "4097:224:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 159, - "nodeType": "Block", - "src": "4710:382:0", - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 131, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "arguments": [ - { - "id": 127, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4294967268, - "src": "4736:4:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Address_$295", - "typeString": "library Address" - } - } - ], - "expression": { - "argumentTypes": [ + "body": { + "id": 787, + "nodeType": "Block", + "src": "16036:1089:0", + "statements": [ { - "typeIdentifier": "t_contract$_Address_$295", - "typeString": "library Address" - } - ], - "id": 126, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4728:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 125, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4728:7:0", - "typeDescriptions": {} - } - }, - "id": 128, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4728:13:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 129, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balance", - "nodeType": "MemberAccess", - "src": "4728:21:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "id": 130, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 117, - "src": "4753:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4728:30:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c", - "id": 132, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4760:40:0", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", - "typeString": "literal_string \"Address: insufficient balance for call\"" - }, - "value": "Address: insufficient balance for call" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", - "typeString": "literal_string \"Address: insufficient balance for call\"" - } - ], - "id": 124, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4294967278, - 4294967278 - ], - "referencedDeclaration": 4294967278, - "src": "4720:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 133, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4720:81:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 134, - "nodeType": "ExpressionStatement", - "src": "4720:81:0" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 137, - "name": "target", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 113, - "src": "4830:6:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 136, - "name": "isContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19, - "src": "4819:10:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 138, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4819:18:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374", - "id": 139, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4839:31:0", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", - "typeString": "literal_string \"Address: call to non-contract\"" - }, - "value": "Address: call to non-contract" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", - "typeString": "literal_string \"Address: call to non-contract\"" - } - ], - "id": 135, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4294967278, - 4294967278 - ], - "referencedDeclaration": 4294967278, - "src": "4811:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 140, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4811:60:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 141, - "nodeType": "ExpressionStatement", - "src": "4811:60:0" - }, - { - "assignments": [ - 143, - 145 - ], - "declarations": [ - { - "constant": false, - "id": 143, - "mutability": "mutable", - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 159, - "src": "4942:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 142, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4942:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 145, - "mutability": "mutable", - "name": "returndata", - "nodeType": "VariableDeclaration", - "scope": 159, - "src": "4956:23:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 144, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4956:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "id": 152, - "initialValue": { - "arguments": [ - { - "id": 150, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 115, - "src": "5011:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "id": 146, - "name": "target", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 113, - "src": "4983:6:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 147, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "call", - "nodeType": "MemberAccess", - "src": "4983:11:0", - "typeDescriptions": { - "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "function (bytes memory) payable returns (bool,bytes memory)" - } - }, - "id": 149, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "names": [ - "value" - ], - "nodeType": "FunctionCallOptions", - "options": [ - { - "id": 148, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 117, - "src": "5003:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "src": "4983:27:0", - "typeDescriptions": { - "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", - "typeString": "function (bytes memory) payable returns (bool,bytes memory)" - } - }, - "id": 151, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4983:33:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "tuple(bool,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4941:75:0" - }, - { - "expression": { - "arguments": [ - { - "id": 154, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 143, - "src": "5051:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "id": 155, - "name": "returndata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 145, - "src": "5060:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "id": 156, - "name": "errorMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 119, - "src": "5072:12:0", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 153, - "name": "_verifyCallResult", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 294, - "src": "5033:17:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (bool,bytes memory,string memory) pure returns (bytes memory)" - } - }, - "id": 157, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5033:52:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "functionReturnParameters": 123, - "id": 158, - "nodeType": "Return", - "src": "5026:59:0" - } - ] - }, - "documentation": { - "id": 111, - "nodeType": "StructuredDocumentation", - "src": "4327:237:0", - "text": " @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" - }, - "id": 160, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "functionCallWithValue", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 120, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 113, - "mutability": "mutable", - "name": "target", - "nodeType": "VariableDeclaration", - "scope": 160, - "src": "4600:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 112, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4600:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 115, - "mutability": "mutable", - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 160, - "src": "4616:17:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 114, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4616:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 117, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 160, - "src": "4635:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 116, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4635:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 119, - "mutability": "mutable", - "name": "errorMessage", - "nodeType": "VariableDeclaration", - "scope": 160, - "src": "4650:26:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 118, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4650:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "4599:78:0" - }, - "returnParameters": { - "id": 123, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 122, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "scope": 160, - "src": "4696:12:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 121, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4696:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "4695:14:0" - }, - "scope": 295, - "src": "4569:523:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 176, - "nodeType": "Block", - "src": "5369:97:0", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 171, - "name": "target", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 163, - "src": "5405:6:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 172, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 165, - "src": "5413:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "hexValue": "416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564", - "id": 173, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5419:39:0", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0", - "typeString": "literal_string \"Address: low-level static call failed\"" - }, - "value": "Address: low-level static call failed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0", - "typeString": "literal_string \"Address: low-level static call failed\"" - } - ], - "id": 170, - "name": "functionStaticCall", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 177, - 212 - ], - "referencedDeclaration": 212, - "src": "5386:18:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (address,bytes memory,string memory) view returns (bytes memory)" - } - }, - "id": 174, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5386:73:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "functionReturnParameters": 169, - "id": 175, - "nodeType": "Return", - "src": "5379:80:0" - } - ] - }, - "documentation": { - "id": 161, - "nodeType": "StructuredDocumentation", - "src": "5098:166:0", - "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" - }, - "id": 177, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "functionStaticCall", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 166, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 163, - "mutability": "mutable", - "name": "target", - "nodeType": "VariableDeclaration", - "scope": 177, - "src": "5297:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 162, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5297:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 165, - "mutability": "mutable", - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 177, - "src": "5313:17:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 164, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5313:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "5296:35:0" - }, - "returnParameters": { - "id": 169, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 168, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "scope": 177, - "src": "5355:12:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 167, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5355:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "5354:14:0" - }, - "scope": 295, - "src": "5269:197:0", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 211, - "nodeType": "Block", - "src": "5778:288:0", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 191, - "name": "target", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 180, - "src": "5807:6:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 190, - "name": "isContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19, - "src": "5796:10:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 192, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5796:18:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "416464726573733a207374617469632063616c6c20746f206e6f6e2d636f6e7472616374", - "id": 193, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5816:38:0", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9", - "typeString": "literal_string \"Address: static call to non-contract\"" - }, - "value": "Address: static call to non-contract" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9", - "typeString": "literal_string \"Address: static call to non-contract\"" - } - ], - "id": 189, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4294967278, - 4294967278 - ], - "referencedDeclaration": 4294967278, - "src": "5788:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 194, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5788:67:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 195, - "nodeType": "ExpressionStatement", - "src": "5788:67:0" - }, - { - "assignments": [ - 197, - 199 - ], - "declarations": [ - { - "constant": false, - "id": 197, - "mutability": "mutable", - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 211, - "src": "5926:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 196, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5926:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 199, - "mutability": "mutable", - "name": "returndata", - "nodeType": "VariableDeclaration", - "scope": 211, - "src": "5940:23:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 198, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5940:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "id": 204, - "initialValue": { - "arguments": [ - { - "id": 202, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 182, - "src": "5985:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "id": 200, - "name": "target", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 180, - "src": "5967:6:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 201, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "staticcall", - "nodeType": "MemberAccess", - "src": "5967:17:0", - "typeDescriptions": { - "typeIdentifier": "t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "function (bytes memory) view returns (bool,bytes memory)" - } - }, - "id": 203, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5967:23:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "tuple(bool,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5925:65:0" - }, - { - "expression": { - "arguments": [ - { - "id": 206, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 197, - "src": "6025:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "id": 207, - "name": "returndata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 199, - "src": "6034:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "id": 208, - "name": "errorMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 184, - "src": "6046:12:0", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 205, - "name": "_verifyCallResult", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 294, - "src": "6007:17:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (bool,bytes memory,string memory) pure returns (bytes memory)" - } - }, - "id": 209, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6007:52:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "functionReturnParameters": 188, - "id": 210, - "nodeType": "Return", - "src": "6000:59:0" - } - ] - }, - "documentation": { - "id": 178, - "nodeType": "StructuredDocumentation", - "src": "5472:173:0", - "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" - }, - "id": 212, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "functionStaticCall", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 185, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 180, - "mutability": "mutable", - "name": "target", - "nodeType": "VariableDeclaration", - "scope": 212, - "src": "5678:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 179, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5678:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 182, - "mutability": "mutable", - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 212, - "src": "5694:17:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 181, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5694:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 184, - "mutability": "mutable", - "name": "errorMessage", - "nodeType": "VariableDeclaration", - "scope": 212, - "src": "5713:26:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 183, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "5713:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "5677:63:0" - }, - "returnParameters": { - "id": 188, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 187, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "scope": 212, - "src": "5764:12:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 186, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5764:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "5763:14:0" - }, - "scope": 295, - "src": "5650:416:0", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 228, - "nodeType": "Block", - "src": "6342:101:0", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 223, - "name": "target", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 215, - "src": "6380:6:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 224, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 217, - "src": "6388:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "hexValue": "416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", - "id": 225, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6394:41:0", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398", - "typeString": "literal_string \"Address: low-level delegate call failed\"" - }, - "value": "Address: low-level delegate call failed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398", - "typeString": "literal_string \"Address: low-level delegate call failed\"" - } - ], - "id": 222, - "name": "functionDelegateCall", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 229, - 264 - ], - "referencedDeclaration": 264, - "src": "6359:20:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" - } - }, - "id": 226, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6359:77:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "functionReturnParameters": 221, - "id": 227, - "nodeType": "Return", - "src": "6352:84:0" - } - ] - }, - "documentation": { - "id": 213, - "nodeType": "StructuredDocumentation", - "src": "6072:168:0", - "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" - }, - "id": 229, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "functionDelegateCall", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 218, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 215, - "mutability": "mutable", - "name": "target", - "nodeType": "VariableDeclaration", - "scope": 229, - "src": "6275:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 214, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6275:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 217, - "mutability": "mutable", - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 229, - "src": "6291:17:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 216, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6291:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "6274:35:0" - }, - "returnParameters": { - "id": 221, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 220, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "scope": 229, - "src": "6328:12:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 219, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6328:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "6327:14:0" - }, - "scope": 295, - "src": "6245:198:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 263, - "nodeType": "Block", - "src": "6754:292:0", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 243, - "name": "target", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 232, - "src": "6783:6:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 242, - "name": "isContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19, - "src": "6772:10:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 244, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6772:18:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6e7472616374", - "id": 245, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6792:40:0", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520", - "typeString": "literal_string \"Address: delegate call to non-contract\"" - }, - "value": "Address: delegate call to non-contract" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520", - "typeString": "literal_string \"Address: delegate call to non-contract\"" - } - ], - "id": 241, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4294967278, - 4294967278 - ], - "referencedDeclaration": 4294967278, - "src": "6764:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 246, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6764:69:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 247, - "nodeType": "ExpressionStatement", - "src": "6764:69:0" - }, - { - "assignments": [ - 249, - 251 - ], - "declarations": [ - { - "constant": false, - "id": 249, - "mutability": "mutable", - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 263, - "src": "6904:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 248, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6904:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 251, - "mutability": "mutable", - "name": "returndata", - "nodeType": "VariableDeclaration", - "scope": 263, - "src": "6918:23:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 250, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6918:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "id": 256, - "initialValue": { - "arguments": [ - { - "id": 254, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 234, - "src": "6965:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "id": 252, - "name": "target", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 232, - "src": "6945:6:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 253, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "delegatecall", - "nodeType": "MemberAccess", - "src": "6945:19:0", - "typeDescriptions": { - "typeIdentifier": "t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "function (bytes memory) returns (bool,bytes memory)" - } - }, - "id": 255, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6945:25:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "tuple(bool,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6903:67:0" - }, - { - "expression": { - "arguments": [ - { - "id": 258, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 249, - "src": "7005:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "id": 259, - "name": "returndata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 251, - "src": "7014:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "id": 260, - "name": "errorMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 236, - "src": "7026:12:0", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 257, - "name": "_verifyCallResult", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 294, - "src": "6987:17:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (bool,bytes memory,string memory) pure returns (bytes memory)" - } - }, - "id": 261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6987:52:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "functionReturnParameters": 240, - "id": 262, - "nodeType": "Return", - "src": "6980:59:0" - } - ] - }, - "documentation": { - "id": 230, - "nodeType": "StructuredDocumentation", - "src": "6449:175:0", - "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" - }, - "id": 264, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "functionDelegateCall", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 237, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 232, - "mutability": "mutable", - "name": "target", - "nodeType": "VariableDeclaration", - "scope": 264, - "src": "6659:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 231, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6659:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 234, - "mutability": "mutable", - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 264, - "src": "6675:17:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 233, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6675:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 236, - "mutability": "mutable", - "name": "errorMessage", - "nodeType": "VariableDeclaration", - "scope": 264, - "src": "6694:26:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 235, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "6694:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "6658:63:0" - }, - "returnParameters": { - "id": 240, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 239, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "scope": 264, - "src": "6740:12:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 238, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6740:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "6739:14:0" - }, - "scope": 295, - "src": "6629:417:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 293, - "nodeType": "Block", - "src": "7181:596:0", - "statements": [ - { - "condition": { - "id": 275, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 266, - "src": "7195:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 291, - "nodeType": "Block", - "src": "7252:519:0", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 282, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 279, - "name": "returndata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 268, - "src": "7336:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 280, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "src": "7336:17:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 281, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7356:1:0", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7336:21:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 289, - "nodeType": "Block", - "src": "7708:53:0", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 286, - "name": "errorMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 270, - "src": "7733:12:0", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 285, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4294967277, - 4294967277 - ], - "referencedDeclaration": 4294967277, - "src": "7726:6:0", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", - "typeString": "function (string memory) pure" - } - }, - "id": 287, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7726:20:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 288, - "nodeType": "ExpressionStatement", - "src": "7726:20:0" - } - ] - }, - "id": 290, - "nodeType": "IfStatement", - "src": "7332:429:0", - "trueBody": { - "id": 284, - "nodeType": "Block", - "src": "7359:343:0", - "statements": [ - { - "AST": { - "nodeType": "YulBlock", - "src": "7543:145:0", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "7565:40:0", - "value": { - "arguments": [ - { - "name": "returndata", - "nodeType": "YulIdentifier", - "src": "7594:10:0" + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 706, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 703, + "name": "expiration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 689, + "src": "16054:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "id": 704, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967292, + "src": "16067:5:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 705, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "16073:9:0", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "16067:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16054:28:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "494e56414c49445f54494d45", + "id": 707, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16084:14:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b98f3e47db5919a8c78ec10ff6bf7d1326066d3facdc164cf7441d38cae771df", + "typeString": "literal_string \"INVALID_TIME\"" + }, + "value": "INVALID_TIME" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b98f3e47db5919a8c78ec10ff6bf7d1326066d3facdc164cf7441d38cae771df", + "typeString": "literal_string \"INVALID_TIME\"" + } + ], + "id": 702, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "16046:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 708, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16046:53:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "7588:5:0" - }, - "nodeType": "YulFunctionCall", - "src": "7588:17:0" - }, - "variables": [ - { - "name": "returndata_size", - "nodeType": "YulTypedName", - "src": "7569:15:0", - "type": "" - } - ] - }, - { + }, + "id": 709, + "nodeType": "ExpressionStatement", + "src": "16046:53:0" + }, + { "expression": { - "arguments": [ - { - "arguments": [ + "arguments": [ { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7637:2:0", - "type": "", - "value": "32" + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 713, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 711, + "name": "inputAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 685, + "src": "16118:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 712, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16132:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "16118:15:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } }, { - "name": "returndata", - "nodeType": "YulIdentifier", - "src": "7641:10:0" + "hexValue": "494e56414c49445f414d4f554e54", + "id": 714, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16135:16:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_eb6dbbf3194e9f4dd39c8dabe51ddb59ca6ad00c50b1bc74675ce4b263687722", + "typeString": "literal_string \"INVALID_AMOUNT\"" + }, + "value": "INVALID_AMOUNT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_eb6dbbf3194e9f4dd39c8dabe51ddb59ca6ad00c50b1bc74675ce4b263687722", + "typeString": "literal_string \"INVALID_AMOUNT\"" + } + ], + "id": 710, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "16110:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "7633:3:0" - }, - "nodeType": "YulFunctionCall", - "src": "7633:19:0" }, - { - "name": "returndata_size", - "nodeType": "YulIdentifier", - "src": "7654:15:0" + "id": 715, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16110:42:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "7626:6:0" - }, - "nodeType": "YulFunctionCall", - "src": "7626:44:0" - }, - "nodeType": "YulExpressionStatement", - "src": "7626:44:0" - } - ] - }, - "evmVersion": "istanbul", - "externalReferences": [ + }, + "id": 716, + "nodeType": "ExpressionStatement", + "src": "16110:42:0" + }, { - "declaration": 268, - "isOffset": false, - "isSlot": false, - "src": "7594:10:0", - "valueSize": 1 + "expression": { + "arguments": [ + { + "expression": { + "id": 721, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "16197:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 722, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "16201:6:0", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "16197:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 725, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "16217:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_HashedTimeLockContract_$1007", + "typeString": "contract HashedTimeLockContract" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_HashedTimeLockContract_$1007", + "typeString": "contract HashedTimeLockContract" + } + ], + "id": 724, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16209:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 723, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16209:7:0", + "typeDescriptions": {} + } + }, + "id": 726, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16209:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 727, + "name": "inputAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 685, + "src": "16224:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "id": 718, + "name": "tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 693, + "src": "16170:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 717, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 371, + "src": "16163:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$371_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 719, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16163:20:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$371", + "typeString": "contract IERC20" + } + }, + "id": 720, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "16184:12:0", + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 352, + "src": "16163:33:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 728, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16163:73:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 729, + "nodeType": "ExpressionStatement", + "src": "16163:73:0" }, { - "declaration": 268, - "isOffset": false, - "isSlot": false, - "src": "7641:10:0", - "valueSize": 1 - } - ], - "id": 283, - "nodeType": "InlineAssembly", - "src": "7534:154:0" - } - ] - } - } - ] - }, - "id": 292, - "nodeType": "IfStatement", - "src": "7191:580:0", - "trueBody": { - "id": 278, - "nodeType": "Block", - "src": "7204:42:0", - "statements": [ - { - "expression": { - "id": 276, - "name": "returndata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 268, - "src": "7225:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "functionReturnParameters": 274, - "id": 277, - "nodeType": "Return", - "src": "7218:17:0" - } - ] - } - } - ] - }, - "id": 294, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_verifyCallResult", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 271, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 266, - "mutability": "mutable", - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 294, - "src": "7079:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 265, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7079:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 268, - "mutability": "mutable", - "name": "returndata", - "nodeType": "VariableDeclaration", - "scope": 294, - "src": "7093:23:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 267, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7093:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 270, - "mutability": "mutable", - "name": "errorMessage", - "nodeType": "VariableDeclaration", - "scope": 294, - "src": "7118:26:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 269, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "7118:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "7078:67:0" - }, - "returnParameters": { - "id": 274, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 273, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "scope": 294, - "src": "7167:12:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 272, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7167:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "7166:14:0" - }, - "scope": 295, - "src": "7052:725:0", - "stateMutability": "pure", - "virtual": false, - "visibility": "private" - } - ], - "scope": 1008, - "src": "95:7684:0" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": { - "id": 296, - "nodeType": "StructuredDocumentation", - "src": "7781:70:0", - "text": " @dev Interface of the ERC20 standard as defined in the EIP." - }, - "fullyImplemented": false, - "id": 371, - "linearizedBaseContracts": [ - 371 - ], - "name": "IERC20", - "nodeType": "ContractDefinition", - "nodes": [ - { - "documentation": { - "id": 297, - "nodeType": "StructuredDocumentation", - "src": "7875:66:0", - "text": " @dev Returns the amount of tokens in existence." - }, - "functionSelector": "18160ddd", - "id": 302, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 298, - "nodeType": "ParameterList", - "parameters": [], - "src": "7966:2:0" - }, - "returnParameters": { - "id": 301, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 300, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "scope": 302, - "src": "7992:7:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 299, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7992:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "7991:9:0" - }, - "scope": 371, - "src": "7946:55:0", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 303, - "nodeType": "StructuredDocumentation", - "src": "8007:72:0", - "text": " @dev Returns the amount of tokens owned by `account`." - }, - "functionSelector": "70a08231", - "id": 310, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 306, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 305, - "mutability": "mutable", - "name": "account", - "nodeType": "VariableDeclaration", - "scope": 310, - "src": "8103:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 304, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8103:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "8102:17:0" - }, - "returnParameters": { - "id": 309, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 308, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "scope": 310, - "src": "8143:7:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 307, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8143:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "8142:9:0" - }, - "scope": 371, - "src": "8084:68:0", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 311, - "nodeType": "StructuredDocumentation", - "src": "8158:209:0", - "text": " @dev Moves `amount` tokens from the caller's account to `recipient`.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event." - }, - "functionSelector": "a9059cbb", - "id": 320, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 316, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 313, - "mutability": "mutable", - "name": "recipient", - "nodeType": "VariableDeclaration", - "scope": 320, - "src": "8390:17:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 312, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8390:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 315, - "mutability": "mutable", - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 320, - "src": "8409:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 314, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8409:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "8389:35:0" - }, - "returnParameters": { - "id": 319, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 318, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "scope": 320, - "src": "8443:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 317, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8443:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "8442:6:0" - }, - "scope": 371, - "src": "8372:77:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 321, - "nodeType": "StructuredDocumentation", - "src": "8455:264:0", - "text": " @dev Returns the remaining number of tokens that `spender` will be\n allowed to spend on behalf of `owner` through {transferFrom}. This is\n zero by default.\n This value changes when {approve} or {transferFrom} are called." - }, - "functionSelector": "dd62ed3e", - "id": 330, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 326, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 323, - "mutability": "mutable", - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 330, - "src": "8743:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 322, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8743:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 325, - "mutability": "mutable", - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 330, - "src": "8758:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 324, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8758:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "8742:32:0" - }, - "returnParameters": { - "id": 329, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 328, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "scope": 330, - "src": "8798:7:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 327, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8798:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "8797:9:0" - }, - "scope": 371, - "src": "8724:83:0", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 331, - "nodeType": "StructuredDocumentation", - "src": "8813:642:0", - "text": " @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n Returns a boolean value indicating whether the operation succeeded.\n IMPORTANT: Beware that changing an allowance with this method brings the risk\n that someone may use both the old and the new allowance by unfortunate\n transaction ordering. One possible solution to mitigate this race\n condition is to first reduce the spender's allowance to 0 and set the\n desired value afterwards:\n https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n Emits an {Approval} event." - }, - "functionSelector": "095ea7b3", - "id": 340, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 336, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 333, - "mutability": "mutable", - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 340, - "src": "9477:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 332, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9477:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 335, - "mutability": "mutable", - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 340, - "src": "9494:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 334, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9494:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "9476:33:0" - }, - "returnParameters": { - "id": 339, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 338, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "scope": 340, - "src": "9528:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 337, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "9528:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "9527:6:0" - }, - "scope": 371, - "src": "9460:74:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 341, - "nodeType": "StructuredDocumentation", - "src": "9540:296:0", - "text": " @dev Moves `amount` tokens from `sender` to `recipient` using the\n allowance mechanism. `amount` is then deducted from the caller's\n allowance.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event." - }, - "functionSelector": "23b872dd", - "id": 352, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 348, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 343, - "mutability": "mutable", - "name": "sender", - "nodeType": "VariableDeclaration", - "scope": 352, - "src": "9863:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 342, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9863:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 345, - "mutability": "mutable", - "name": "recipient", - "nodeType": "VariableDeclaration", - "scope": 352, - "src": "9879:17:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 344, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9879:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 347, - "mutability": "mutable", - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 352, - "src": "9898:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 346, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9898:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "9862:51:0" - }, - "returnParameters": { - "id": 351, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 350, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "scope": 352, - "src": "9932:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 349, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "9932:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "9931:6:0" - }, - "scope": 371, - "src": "9841:97:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "anonymous": false, - "documentation": { - "id": 353, - "nodeType": "StructuredDocumentation", - "src": "9944:158:0", - "text": " @dev Emitted when `value` tokens are moved from one account (`from`) to\n another (`to`).\n Note that `value` may be zero." - }, - "id": 361, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 360, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 355, - "indexed": true, - "mutability": "mutable", - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 361, - "src": "10122:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 354, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10122:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 357, - "indexed": true, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 361, - "src": "10144:18:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 356, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10144:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 359, - "indexed": false, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 361, - "src": "10164:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 358, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10164:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "10121:57:0" - }, - "src": "10107:72:0" - }, - { - "anonymous": false, - "documentation": { - "id": 362, - "nodeType": "StructuredDocumentation", - "src": "10185:148:0", - "text": " @dev Emitted when the allowance of a `spender` for an `owner` is set by\n a call to {approve}. `value` is the new allowance." - }, - "id": 370, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 369, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 364, - "indexed": true, - "mutability": "mutable", - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 370, - "src": "10353:21:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 363, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10353:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 366, - "indexed": true, - "mutability": "mutable", - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 370, - "src": "10376:23:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 365, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10376:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 368, - "indexed": false, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 370, - "src": "10401:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 367, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10401:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "10352:63:0" - }, - "src": "10338:78:0" - } - ], - "scope": 1008, - "src": "7852:2566:0" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": { - "id": 372, - "nodeType": "StructuredDocumentation", - "src": "10420:457:0", - "text": " @title SafeERC20\n @dev Wrappers around ERC20 operations that throw on failure (when the token\n contract returns false). Tokens that return no value (and instead revert or\n throw on failure) are also supported, non-reverting calls are assumed to be\n successful.\n To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\n which allows you to call the safe operations as `token.safeTransfer(...)`, etc." - }, - "fullyImplemented": true, - "id": 590, - "linearizedBaseContracts": [ - 590 - ], - "name": "SafeERC20", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 375, - "libraryName": { - "id": 373, - "name": "Address", - "nodeType": "IdentifierPath", - "referencedDeclaration": 295, - "src": "10908:7:0" - }, - "nodeType": "UsingForDirective", - "src": "10902:26:0", - "typeName": { - "id": 374, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10920:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - { - "body": { - "id": 397, - "nodeType": "Block", - "src": "11006:103:0", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 386, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 378, - "src": "11036:5:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - } - }, - { - "arguments": [ - { - "expression": { - "expression": { - "id": 389, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 378, - "src": "11066:5:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - } - }, - "id": 390, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 320, - "src": "11066:14:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 391, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "selector", - "nodeType": "MemberAccess", - "src": "11066:23:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - { - "id": 392, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 380, - "src": "11091:2:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 393, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 382, - "src": "11095:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 387, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4294967295, - "src": "11043:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 388, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodeWithSelector", - "nodeType": "MemberAccess", - "src": "11043:22:0", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (bytes4) pure returns (bytes memory)" - } - }, - "id": 394, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11043:58:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 385, - "name": "_callOptionalReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 589, - "src": "11016:19:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$371_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (contract IERC20,bytes memory)" - } - }, - "id": 395, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11016:86:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 396, - "nodeType": "ExpressionStatement", - "src": "11016:86:0" - } - ] - }, - "id": 398, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeTransfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 383, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 378, - "mutability": "mutable", - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 398, - "src": "10956:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - }, - "typeName": { - "id": 377, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 376, - "name": "IERC20", - "nodeType": "IdentifierPath", - "referencedDeclaration": 371, - "src": "10956:6:0" - }, - "referencedDeclaration": 371, - "src": "10956:6:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 380, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 398, - "src": "10970:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 379, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10970:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 382, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 398, - "src": "10982:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 381, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10982:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "10955:41:0" - }, - "returnParameters": { - "id": 384, - "nodeType": "ParameterList", - "parameters": [], - "src": "11006:0:0" - }, - "scope": 590, - "src": "10934:175:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 423, - "nodeType": "Block", - "src": "11205:113:0", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 411, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 401, - "src": "11235:5:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - } - }, - { - "arguments": [ - { - "expression": { - "expression": { - "id": 414, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 401, - "src": "11265:5:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - } - }, - "id": 415, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 352, - "src": "11265:18:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,address,uint256) external returns (bool)" - } - }, - "id": 416, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "selector", - "nodeType": "MemberAccess", - "src": "11265:27:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - { - "id": 417, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 403, - "src": "11294:4:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 418, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 405, - "src": "11300:2:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 419, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "11304:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 412, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4294967295, - "src": "11242:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 413, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodeWithSelector", - "nodeType": "MemberAccess", - "src": "11242:22:0", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (bytes4) pure returns (bytes memory)" - } - }, - "id": 420, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11242:68:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 410, - "name": "_callOptionalReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 589, - "src": "11215:19:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$371_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (contract IERC20,bytes memory)" - } - }, - "id": 421, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11215:96:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 422, - "nodeType": "ExpressionStatement", - "src": "11215:96:0" - } - ] - }, - "id": 424, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 408, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 401, - "mutability": "mutable", - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 424, - "src": "11141:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - }, - "typeName": { - "id": 400, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 399, - "name": "IERC20", - "nodeType": "IdentifierPath", - "referencedDeclaration": 371, - "src": "11141:6:0" - }, - "referencedDeclaration": 371, - "src": "11141:6:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 403, - "mutability": "mutable", - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 424, - "src": "11155:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 402, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11155:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 405, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 424, - "src": "11169:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 404, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11169:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 407, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 424, - "src": "11181:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 406, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11181:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "11140:55:0" - }, - "returnParameters": { - "id": 409, - "nodeType": "ParameterList", - "parameters": [], - "src": "11205:0:0" - }, - "scope": 590, - "src": "11115:203:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 467, - "nodeType": "Block", - "src": "11654:537:0", - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 451, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 438, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 436, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 432, - "src": "11943:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 437, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11952:1:0", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "11943:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 439, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "11942:12:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 449, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "arguments": [ - { - "id": 444, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4294967268, - "src": "11983:4:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeERC20_$590", - "typeString": "library SafeERC20" - } - } + "assignments": [ + 731 ], - "expression": { - "argumentTypes": [ + "declarations": [ { - "typeIdentifier": "t_contract$_SafeERC20_$590", - "typeString": "library SafeERC20" + "constant": false, + "id": 731, + "mutability": "mutable", + "name": "id", + "nameLocation": "16255:2:0", + "nodeType": "VariableDeclaration", + "scope": 787, + "src": "16247:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 730, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "16247:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" } - ], - "id": 443, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "11975:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 442, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11975:7:0", - "typeDescriptions": {} - } - }, - "id": 445, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11975:13:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 446, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 430, - "src": "11990:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 440, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 428, - "src": "11959:5:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - } - }, - "id": 441, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "allowance", - "nodeType": "MemberAccess", - "referencedDeclaration": 330, - "src": "11959:15:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address) view external returns (uint256)" - } - }, - "id": 447, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11959:39:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 448, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12002:1:0", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + ], + "id": 744, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 735, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "16311:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 736, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "16315:6:0", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "16311:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 737, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 695, + "src": "16339:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 738, + "name": "inputAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 685, + "src": "16365:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 739, + "name": "hashLock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 691, + "src": "16394:8:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 740, + "name": "expiration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 689, + "src": "16420:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 741, + "name": "tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 693, + "src": "16448:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 733, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "16283:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 734, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "16287:6:0", + "memberName": "encode", + "nodeType": "MemberAccess", + "src": "16283:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 742, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16283:191:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 732, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967288, + "src": "16260:9:0", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 743, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16260:224:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16247:237:0" }, - "value": "0" - }, - "src": "11959:44:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 450, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "11958:46:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "11942:62:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e6365", - "id": 452, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12018:56:0", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ef945ddb1bfdc0da870feb4560d868b047642b4ac7f2fb7f8b7c51cb4a411e25", - "typeString": "literal_string \"SafeERC20: approve from non-zero to non-zero allowance\"" - }, - "value": "SafeERC20: approve from non-zero to non-zero allowance" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_ef945ddb1bfdc0da870feb4560d868b047642b4ac7f2fb7f8b7c51cb4a411e25", - "typeString": "literal_string \"SafeERC20: approve from non-zero to non-zero allowance\"" - } - ], - "id": 435, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4294967278, - 4294967278 - ], - "referencedDeclaration": 4294967278, - "src": "11934:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 453, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11934:150:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 454, - "nodeType": "ExpressionStatement", - "src": "11934:150:0" - }, - { - "expression": { - "arguments": [ - { - "id": 456, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 428, - "src": "12114:5:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - } - }, - { - "arguments": [ - { - "expression": { - "expression": { - "id": 459, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 428, - "src": "12144:5:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - } - }, - "id": 460, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "approve", - "nodeType": "MemberAccess", - "referencedDeclaration": 340, - "src": "12144:13:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 461, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "selector", - "nodeType": "MemberAccess", - "src": "12144:22:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - { - "id": 462, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 430, - "src": "12168:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 463, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 432, - "src": "12177:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 457, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4294967295, - "src": "12121:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 458, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodeWithSelector", - "nodeType": "MemberAccess", - "src": "12121:22:0", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (bytes4) pure returns (bytes memory)" - } - }, - "id": 464, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12121:62:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 455, - "name": "_callOptionalReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 589, - "src": "12094:19:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$371_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (contract IERC20,bytes memory)" - } - }, - "id": 465, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12094:90:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 466, - "nodeType": "ExpressionStatement", - "src": "12094:90:0" - } - ] - }, - "documentation": { - "id": 425, - "nodeType": "StructuredDocumentation", - "src": "11324:249:0", - "text": " @dev Deprecated. This function has issues similar to the ones found in\n {IERC20-approve}, and its usage is discouraged.\n Whenever possible, use {safeIncreaseAllowance} and\n {safeDecreaseAllowance} instead." - }, - "id": 468, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeApprove", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 433, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 428, - "mutability": "mutable", - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 468, - "src": "11599:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - }, - "typeName": { - "id": 427, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 426, - "name": "IERC20", - "nodeType": "IdentifierPath", - "referencedDeclaration": 371, - "src": "11599:6:0" - }, - "referencedDeclaration": 371, - "src": "11599:6:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 430, - "mutability": "mutable", - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 468, - "src": "11613:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 429, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11613:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 432, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 468, - "src": "11630:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 431, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11630:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "11598:46:0" - }, - "returnParameters": { - "id": 434, - "nodeType": "ParameterList", - "parameters": [], - "src": "11654:0:0" - }, - "scope": 590, - "src": "11578:613:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 503, - "nodeType": "Block", - "src": "12283:194:0", - "statements": [ - { - "assignments": [ - 479 - ], - "declarations": [ - { - "constant": false, - "id": 479, - "mutability": "mutable", - "name": "newAllowance", - "nodeType": "VariableDeclaration", - "scope": 503, - "src": "12293:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 478, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12293:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 490, - "initialValue": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 489, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "arguments": [ - { - "id": 484, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4294967268, - "src": "12340:4:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeERC20_$590", - "typeString": "library SafeERC20" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_SafeERC20_$590", - "typeString": "library SafeERC20" - } - ], - "id": 483, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "12332:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 482, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12332:7:0", - "typeDescriptions": {} - } - }, - "id": 485, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12332:13:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 486, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 473, - "src": "12347:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 480, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 471, - "src": "12316:5:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - } - }, - "id": 481, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "allowance", - "nodeType": "MemberAccess", - "referencedDeclaration": 330, - "src": "12316:15:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address) view external returns (uint256)" - } - }, - "id": 487, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12316:39:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "id": 488, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 475, - "src": "12358:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "12316:47:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "12293:70:0" - }, - { - "expression": { - "arguments": [ - { - "id": 492, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 471, - "src": "12393:5:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - } - }, - { - "arguments": [ - { - "expression": { - "expression": { - "id": 495, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 471, - "src": "12423:5:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - } - }, - "id": 496, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "approve", - "nodeType": "MemberAccess", - "referencedDeclaration": 340, - "src": "12423:13:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 497, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "selector", - "nodeType": "MemberAccess", - "src": "12423:22:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - { - "id": 498, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 473, - "src": "12447:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 499, - "name": "newAllowance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 479, - "src": "12456:12:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 493, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4294967295, - "src": "12400:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 494, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodeWithSelector", - "nodeType": "MemberAccess", - "src": "12400:22:0", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (bytes4) pure returns (bytes memory)" - } - }, - "id": 500, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12400:69:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 491, - "name": "_callOptionalReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 589, - "src": "12373:19:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$371_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (contract IERC20,bytes memory)" - } - }, - "id": 501, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12373:97:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 502, - "nodeType": "ExpressionStatement", - "src": "12373:97:0" - } - ] - }, - "id": 504, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeIncreaseAllowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 476, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 471, - "mutability": "mutable", - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 504, - "src": "12228:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - }, - "typeName": { - "id": 470, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 469, - "name": "IERC20", - "nodeType": "IdentifierPath", - "referencedDeclaration": 371, - "src": "12228:6:0" - }, - "referencedDeclaration": 371, - "src": "12228:6:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 473, - "mutability": "mutable", - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 504, - "src": "12242:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 472, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12242:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 475, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 504, - "src": "12259:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 474, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12259:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "12227:46:0" - }, - "returnParameters": { - "id": 477, - "nodeType": "ParameterList", - "parameters": [], - "src": "12283:0:0" - }, - "scope": 590, - "src": "12197:280:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 550, - "nodeType": "Block", - "src": "12569:340:0", - "statements": [ - { - "assignments": [ - 515 - ], - "declarations": [ - { - "constant": false, - "id": 515, - "mutability": "mutable", - "name": "oldAllowance", - "nodeType": "VariableDeclaration", - "scope": 550, - "src": "12583:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 514, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12583:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 524, - "initialValue": { - "arguments": [ - { - "arguments": [ - { - "id": 520, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4294967268, - "src": "12630:4:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeERC20_$590", - "typeString": "library SafeERC20" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_SafeERC20_$590", - "typeString": "library SafeERC20" - } - ], - "id": 519, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "12622:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 518, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12622:7:0", - "typeDescriptions": {} - } - }, - "id": 521, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12622:13:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 522, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 509, - "src": "12637:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 516, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 507, - "src": "12606:5:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - } - }, - "id": 517, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "allowance", - "nodeType": "MemberAccess", - "referencedDeclaration": 330, - "src": "12606:15:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address) view external returns (uint256)" - } - }, - "id": 523, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12606:39:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "12583:62:0" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 528, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 526, - "name": "oldAllowance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 515, - "src": "12667:12:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "id": 527, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 511, - "src": "12683:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "12667:21:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "5361666545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f", - "id": 529, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12690:43:0", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_2c3af60974a758b7e72e108c9bf0943ecc9e4f2e8af4695da5f52fbf57a63d3a", - "typeString": "literal_string \"SafeERC20: decreased allowance below zero\"" - }, - "value": "SafeERC20: decreased allowance below zero" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_2c3af60974a758b7e72e108c9bf0943ecc9e4f2e8af4695da5f52fbf57a63d3a", - "typeString": "literal_string \"SafeERC20: decreased allowance below zero\"" - } - ], - "id": 525, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4294967278, - 4294967278 - ], - "referencedDeclaration": 4294967278, - "src": "12659:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 530, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12659:75:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 531, - "nodeType": "ExpressionStatement", - "src": "12659:75:0" - }, - { - "assignments": [ - 533 - ], - "declarations": [ - { - "constant": false, - "id": 533, - "mutability": "mutable", - "name": "newAllowance", - "nodeType": "VariableDeclaration", - "scope": 550, - "src": "12748:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 532, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12748:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 537, - "initialValue": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 536, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 534, - "name": "oldAllowance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 515, - "src": "12771:12:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "id": 535, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 511, - "src": "12786:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "12771:20:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "12748:43:0" - }, - { - "expression": { - "arguments": [ - { - "id": 539, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 507, - "src": "12825:5:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - } - }, - { - "arguments": [ - { - "expression": { - "expression": { - "id": 542, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 507, - "src": "12855:5:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - } - }, - "id": 543, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "approve", - "nodeType": "MemberAccess", - "referencedDeclaration": 340, - "src": "12855:13:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 544, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "selector", - "nodeType": "MemberAccess", - "src": "12855:22:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - { - "id": 545, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 509, - "src": "12879:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 546, - "name": "newAllowance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 533, - "src": "12888:12:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 540, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4294967295, - "src": "12832:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 541, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodeWithSelector", - "nodeType": "MemberAccess", - "src": "12832:22:0", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (bytes4) pure returns (bytes memory)" - } - }, - "id": 547, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12832:69:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 538, - "name": "_callOptionalReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 589, - "src": "12805:19:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$371_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (contract IERC20,bytes memory)" - } - }, - "id": 548, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12805:97:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 549, - "nodeType": "ExpressionStatement", - "src": "12805:97:0" - } - ] - }, - "id": 551, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeDecreaseAllowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 512, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 507, - "mutability": "mutable", - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 551, - "src": "12514:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - }, - "typeName": { - "id": 506, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 505, - "name": "IERC20", - "nodeType": "IdentifierPath", - "referencedDeclaration": 371, - "src": "12514:6:0" - }, - "referencedDeclaration": 371, - "src": "12514:6:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 509, - "mutability": "mutable", - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 551, - "src": "12528:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 508, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12528:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 511, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 551, - "src": "12545:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 510, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12545:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "12513:46:0" - }, - "returnParameters": { - "id": 513, - "nodeType": "ParameterList", - "parameters": [], - "src": "12569:0:0" - }, - "scope": 590, - "src": "12483:426:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 588, - "nodeType": "Block", - "src": "13362:681:0", - "statements": [ - { - "assignments": [ - 561 - ], - "declarations": [ - { - "constant": false, - "id": 561, - "mutability": "mutable", - "name": "returndata", - "nodeType": "VariableDeclaration", - "scope": 588, - "src": "13711:23:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 560, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "13711:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "id": 570, - "initialValue": { - "arguments": [ - { - "id": 567, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 557, - "src": "13765:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "hexValue": "5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564", - "id": 568, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13771:34:0", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_47fb62c2c272651d2f0f342bac006756b8ba07f21cc5cb87e0fbb9d50c0c585b", - "typeString": "literal_string \"SafeERC20: low-level call failed\"" - }, - "value": "SafeERC20: low-level call failed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_stringliteral_47fb62c2c272651d2f0f342bac006756b8ba07f21cc5cb87e0fbb9d50c0c585b", - "typeString": "literal_string \"SafeERC20: low-level call failed\"" - } - ], - "expression": { - "arguments": [ - { - "id": 564, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 555, - "src": "13745:5:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - } - ], - "id": 563, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13737:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 562, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13737:7:0", - "typeDescriptions": {} - } - }, - "id": 565, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13737:14:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 566, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "functionCall", - "nodeType": "MemberAccess", - "referencedDeclaration": 90, - "src": "13737:27:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$bound_to$_t_address_$", - "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" - } - }, - "id": 569, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13737:69:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13711:95:0" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 574, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 571, - "name": "returndata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 561, - "src": "13820:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 572, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "src": "13820:17:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 573, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13840:1:0", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "13820:21:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 587, - "nodeType": "IfStatement", - "src": "13816:221:0", - "trueBody": { - "id": 586, - "nodeType": "Block", - "src": "13843:194:0", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 578, - "name": "returndata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 561, - "src": "13960:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "components": [ - { - "id": 580, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13973:4:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bool_$", - "typeString": "type(bool)" - }, - "typeName": { - "id": 579, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "13973:4:0", - "typeDescriptions": {} - } - } - ], - "id": 581, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "13972:6:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bool_$", - "typeString": "type(bool)" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_type$_t_bool_$", - "typeString": "type(bool)" - } - ], - "expression": { - "id": 576, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4294967295, - "src": "13949:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 577, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "decode", - "nodeType": "MemberAccess", - "src": "13949:10:0", - "typeDescriptions": { - "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 582, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13949:30:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "5361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564", - "id": 583, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13981:44:0", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd", - "typeString": "literal_string \"SafeERC20: ERC20 operation did not succeed\"" - }, - "value": "SafeERC20: ERC20 operation did not succeed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd", - "typeString": "literal_string \"SafeERC20: ERC20 operation did not succeed\"" - } - ], - "id": 575, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4294967278, - 4294967278 - ], - "referencedDeclaration": 4294967278, - "src": "13941:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 584, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13941:85:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 585, - "nodeType": "ExpressionStatement", - "src": "13941:85:0" - } - ] - } - } - ] - }, - "documentation": { - "id": 552, - "nodeType": "StructuredDocumentation", - "src": "12915:372:0", - "text": " @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n on the return value: the return value is optional (but if data is returned, it must not be false).\n @param token The token targeted by the call.\n @param data The call data (encoded using abi.encode or one of its variants)." - }, - "id": 589, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_callOptionalReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 558, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 555, - "mutability": "mutable", - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 589, - "src": "13321:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - }, - "typeName": { - "id": 554, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 553, - "name": "IERC20", - "nodeType": "IdentifierPath", - "referencedDeclaration": 371, - "src": "13321:6:0" - }, - "referencedDeclaration": 371, - "src": "13321:6:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 557, - "mutability": "mutable", - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 589, - "src": "13335:17:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 556, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "13335:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "13320:33:0" - }, - "returnParameters": { - "id": 559, - "nodeType": "ParameterList", - "parameters": [], - "src": "13362:0:0" - }, - "scope": 590, - "src": "13292:751:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "private" - } - ], - "scope": 1008, - "src": "10878:3167:0" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "fullyImplemented": true, - "id": 1007, - "linearizedBaseContracts": [ - 1007 - ], - "name": "HashedTimeLockContract", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 594, - "libraryName": { - "id": 591, - "name": "SafeERC20", - "nodeType": "IdentifierPath", - "referencedDeclaration": 590, - "src": "14091:9:0" - }, - "nodeType": "UsingForDirective", - "src": "14085:27:0", - "typeName": { - "id": 593, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 592, - "name": "IERC20", - "nodeType": "IdentifierPath", - "referencedDeclaration": 371, - "src": "14105:6:0" - }, - "referencedDeclaration": 371, - "src": "14105:6:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - } - } - }, - { - "constant": false, - "functionSelector": "ec56a373", - "id": 599, - "mutability": "mutable", - "name": "contracts", - "nodeType": "VariableDeclaration", - "scope": 1007, - "src": "14117:49:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_LockContract_$635_storage_$", - "typeString": "mapping(bytes32 => struct HashedTimeLockContract.LockContract)" - }, - "typeName": { - "id": 598, - "keyType": { - "id": 595, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "14125:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "14117:32:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_LockContract_$635_storage_$", - "typeString": "mapping(bytes32 => struct HashedTimeLockContract.LockContract)" - }, - "valueType": { - "id": 597, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 596, - "name": "LockContract", - "nodeType": "IdentifierPath", - "referencedDeclaration": 635, - "src": "14136:12:0" - }, - "referencedDeclaration": 635, - "src": "14136:12:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", - "typeString": "struct HashedTimeLockContract.LockContract" - } - } - }, - "visibility": "public" - }, - { - "constant": true, - "functionSelector": "7fcce2a9", - "id": 602, - "mutability": "constant", - "name": "INVALID", - "nodeType": "VariableDeclaration", - "scope": 1007, - "src": "14287:35:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 600, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14287:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "hexValue": "30", - "id": 601, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14321:1:0", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "visibility": "public" - }, - { - "constant": true, - "functionSelector": "c90bd047", - "id": 605, - "mutability": "constant", - "name": "ACTIVE", - "nodeType": "VariableDeclaration", - "scope": 1007, - "src": "14371:34:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 603, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14371:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "hexValue": "31", - "id": 604, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14404:1:0", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "visibility": "public" - }, - { - "constant": true, - "functionSelector": "94e15c8f", - "id": 608, - "mutability": "constant", - "name": "REFUNDED", - "nodeType": "VariableDeclaration", - "scope": 1007, - "src": "14460:36:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 606, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14460:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "hexValue": "32", - "id": 607, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14495:1:0", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "visibility": "public" - }, - { - "constant": true, - "functionSelector": "af78feef", - "id": 611, - "mutability": "constant", - "name": "WITHDRAWN", - "nodeType": "VariableDeclaration", - "scope": 1007, - "src": "14538:37:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 609, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14538:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "hexValue": "33", - "id": 610, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14574:1:0", - "typeDescriptions": { - "typeIdentifier": "t_rational_3_by_1", - "typeString": "int_const 3" - }, - "value": "3" - }, - "visibility": "public" - }, - { - "constant": true, - "functionSelector": "414ac85b", - "id": 614, - "mutability": "constant", - "name": "EXPIRED", - "nodeType": "VariableDeclaration", - "scope": 1007, - "src": "14618:35:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 612, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14618:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "hexValue": "34", - "id": 613, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14652:1:0", - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "value": "4" - }, - "visibility": "public" - }, - { - "canonicalName": "HashedTimeLockContract.LockContract", - "id": 635, - "members": [ - { - "constant": false, - "id": 616, - "mutability": "mutable", - "name": "inputAmount", - "nodeType": "VariableDeclaration", - "scope": 635, - "src": "14731:19:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 615, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14731:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 618, - "mutability": "mutable", - "name": "outputAmount", - "nodeType": "VariableDeclaration", - "scope": 635, - "src": "14760:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 617, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14760:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 620, - "mutability": "mutable", - "name": "expiration", - "nodeType": "VariableDeclaration", - "scope": 635, - "src": "14790:18:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 619, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14790:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 622, - "mutability": "mutable", - "name": "status", - "nodeType": "VariableDeclaration", - "scope": 635, - "src": "14818:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 621, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14818:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 624, - "mutability": "mutable", - "name": "hashLock", - "nodeType": "VariableDeclaration", - "scope": 635, - "src": "14842:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 623, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "14842:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 626, - "mutability": "mutable", - "name": "tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 635, - "src": "14868:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 625, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14868:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 628, - "mutability": "mutable", - "name": "sender", - "nodeType": "VariableDeclaration", - "scope": 635, - "src": "14898:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 627, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14898:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 630, - "mutability": "mutable", - "name": "receiver", - "nodeType": "VariableDeclaration", - "scope": 635, - "src": "14922:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 629, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14922:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 632, - "mutability": "mutable", - "name": "outputNetwork", - "nodeType": "VariableDeclaration", - "scope": 635, - "src": "14948:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 631, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "14948:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 634, - "mutability": "mutable", - "name": "outputAddress", - "nodeType": "VariableDeclaration", - "scope": 635, - "src": "14978:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 633, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "14978:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "name": "LockContract", - "nodeType": "StructDefinition", - "scope": 1007, - "src": "14701:304:0", - "visibility": "public" - }, - { - "anonymous": false, - "id": 649, - "name": "Withdraw", - "nodeType": "EventDefinition", - "parameters": { - "id": 648, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 637, - "indexed": false, - "mutability": "mutable", - "name": "id", - "nodeType": "VariableDeclaration", - "scope": 649, - "src": "15035:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 636, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "15035:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 639, - "indexed": false, - "mutability": "mutable", - "name": "secret", - "nodeType": "VariableDeclaration", - "scope": 649, - "src": "15055:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 638, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "15055:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 641, - "indexed": false, - "mutability": "mutable", - "name": "hashLock", - "nodeType": "VariableDeclaration", - "scope": 649, - "src": "15079:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 640, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "15079:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 643, - "indexed": true, - "mutability": "mutable", - "name": "tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 649, - "src": "15105:28:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 642, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15105:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 645, - "indexed": true, - "mutability": "mutable", - "name": "sender", - "nodeType": "VariableDeclaration", - "scope": 649, - "src": "15143:22:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 644, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15143:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 647, - "indexed": true, - "mutability": "mutable", - "name": "receiver", - "nodeType": "VariableDeclaration", - "scope": 649, - "src": "15175:24:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 646, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15175:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "15025:180:0" - }, - "src": "15011:195:0" - }, - { - "anonymous": false, - "id": 661, - "name": "Refund", - "nodeType": "EventDefinition", - "parameters": { - "id": 660, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 651, - "indexed": false, - "mutability": "mutable", - "name": "id", - "nodeType": "VariableDeclaration", - "scope": 661, - "src": "15234:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 650, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "15234:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 653, - "indexed": false, - "mutability": "mutable", - "name": "hashLock", - "nodeType": "VariableDeclaration", - "scope": 661, - "src": "15254:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 652, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "15254:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 655, - "indexed": true, - "mutability": "mutable", - "name": "tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 661, - "src": "15280:28:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 654, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15280:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 657, - "indexed": true, - "mutability": "mutable", - "name": "sender", - "nodeType": "VariableDeclaration", - "scope": 661, - "src": "15318:22:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 656, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15318:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 659, - "indexed": true, - "mutability": "mutable", - "name": "receiver", - "nodeType": "VariableDeclaration", - "scope": 661, - "src": "15350:24:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 658, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15350:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "15224:156:0" - }, - "src": "15212:169:0" - }, - { - "anonymous": false, - "id": 683, - "name": "NewContract", - "nodeType": "EventDefinition", - "parameters": { - "id": 682, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 663, - "indexed": false, - "mutability": "mutable", - "name": "inputAmount", - "nodeType": "VariableDeclaration", - "scope": 683, - "src": "15414:19:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 662, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15414:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 665, - "indexed": false, - "mutability": "mutable", - "name": "outputAmount", - "nodeType": "VariableDeclaration", - "scope": 683, - "src": "15443:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 664, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15443:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 667, - "indexed": false, - "mutability": "mutable", - "name": "expiration", - "nodeType": "VariableDeclaration", - "scope": 683, - "src": "15473:18:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 666, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15473:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 669, - "indexed": false, - "mutability": "mutable", - "name": "id", - "nodeType": "VariableDeclaration", - "scope": 683, - "src": "15501:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 668, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "15501:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 671, - "indexed": false, - "mutability": "mutable", - "name": "hashLock", - "nodeType": "VariableDeclaration", - "scope": 683, - "src": "15521:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 670, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "15521:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 673, - "indexed": true, - "mutability": "mutable", - "name": "tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 683, - "src": "15547:28:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 672, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15547:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 675, - "indexed": true, - "mutability": "mutable", - "name": "sender", - "nodeType": "VariableDeclaration", - "scope": 683, - "src": "15585:22:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 674, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15585:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 677, - "indexed": true, - "mutability": "mutable", - "name": "receiver", - "nodeType": "VariableDeclaration", - "scope": 683, - "src": "15617:24:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 676, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15617:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 679, - "indexed": false, - "mutability": "mutable", - "name": "outputNetwork", - "nodeType": "VariableDeclaration", - "scope": 683, - "src": "15651:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 678, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "15651:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 681, - "indexed": false, - "mutability": "mutable", - "name": "outputAddress", - "nodeType": "VariableDeclaration", - "scope": 683, - "src": "15681:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 680, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "15681:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "15404:303:0" - }, - "src": "15387:321:0" - }, - { - "body": { - "id": 787, - "nodeType": "Block", - "src": "15997:1095:0", - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 706, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 703, - "name": "expiration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 689, - "src": "16015:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "id": 704, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4294967292, - "src": "16028:5:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 705, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "src": "16028:15:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16015:28:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "494e56414c49445f54494d45", - "id": 707, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16045:14:0", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b98f3e47db5919a8c78ec10ff6bf7d1326066d3facdc164cf7441d38cae771df", - "typeString": "literal_string \"INVALID_TIME\"" - }, - "value": "INVALID_TIME" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b98f3e47db5919a8c78ec10ff6bf7d1326066d3facdc164cf7441d38cae771df", - "typeString": "literal_string \"INVALID_TIME\"" - } - ], - "id": 702, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4294967278, - 4294967278 - ], - "referencedDeclaration": 4294967278, - "src": "16007:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16007:53:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 709, - "nodeType": "ExpressionStatement", - "src": "16007:53:0" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 711, - "name": "inputAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 685, - "src": "16079:11:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 712, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16093:1:0", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "16079:15:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "494e56414c49445f414d4f554e54", - "id": 714, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16096:16:0", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_eb6dbbf3194e9f4dd39c8dabe51ddb59ca6ad00c50b1bc74675ce4b263687722", - "typeString": "literal_string \"INVALID_AMOUNT\"" - }, - "value": "INVALID_AMOUNT" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_eb6dbbf3194e9f4dd39c8dabe51ddb59ca6ad00c50b1bc74675ce4b263687722", - "typeString": "literal_string \"INVALID_AMOUNT\"" - } - ], - "id": 710, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4294967278, - 4294967278 - ], - "referencedDeclaration": 4294967278, - "src": "16071:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 715, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16071:42:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 716, - "nodeType": "ExpressionStatement", - "src": "16071:42:0" - }, - { - "expression": { - "arguments": [ - { - "expression": { - "id": 721, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4294967281, - "src": "16158:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 722, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "16158:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [ - { - "id": 725, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4294967268, - "src": "16178:4:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_HashedTimeLockContract_$1007", - "typeString": "contract HashedTimeLockContract" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_HashedTimeLockContract_$1007", - "typeString": "contract HashedTimeLockContract" - } - ], - "id": 724, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "16170:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 723, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16170:7:0", - "typeDescriptions": {} - } - }, - "id": 726, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16170:13:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 727, - "name": "inputAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 685, - "src": "16185:11:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "arguments": [ - { - "id": 718, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 693, - "src": "16131:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 717, - "name": "IERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 371, - "src": "16124:6:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$371_$", - "typeString": "type(contract IERC20)" - } - }, - "id": 719, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16124:20:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - } - }, - "id": 720, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 352, - "src": "16124:33:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,address,uint256) external returns (bool)" - } - }, - "id": 728, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16124:73:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 729, - "nodeType": "ExpressionStatement", - "src": "16124:73:0" - }, - { - "assignments": [ - 731 - ], - "declarations": [ - { - "constant": false, - "id": 731, - "mutability": "mutable", - "name": "id", - "nodeType": "VariableDeclaration", - "scope": 787, - "src": "16208:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 730, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "16208:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "id": 744, - "initialValue": { - "arguments": [ - { - "arguments": [ - { - "expression": { - "id": 735, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4294967281, - "src": "16278:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 736, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "16278:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 737, - "name": "receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 695, - "src": "16306:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 738, - "name": "inputAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 685, - "src": "16332:11:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 739, - "name": "hashLock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 691, - "src": "16361:8:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 740, - "name": "expiration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 689, - "src": "16387:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 741, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 693, - "src": "16415:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 733, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4294967295, - "src": "16244:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 734, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "src": "16244:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 742, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16244:197:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 732, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4294967288, - "src": "16221:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 743, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16221:230:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "16208:243:0" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 751, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "baseExpression": { - "id": 746, - "name": "contracts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 599, - "src": "16470:9:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_LockContract_$635_storage_$", - "typeString": "mapping(bytes32 => struct HashedTimeLockContract.LockContract storage ref)" - } - }, - "id": 748, - "indexExpression": { - "id": 747, - "name": "id", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 731, - "src": "16480:2:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16470:13:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_storage", - "typeString": "struct HashedTimeLockContract.LockContract storage ref" - } - }, - "id": 749, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "status", - "nodeType": "MemberAccess", - "referencedDeclaration": 622, - "src": "16470:20:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "id": 750, - "name": "INVALID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 602, - "src": "16494:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16470:31:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "535741505f455849535453", - "id": 752, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16503:13:0", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_10858945dd31484ce6a77564821a1a6ff0e82939d9bea2b8e6caae50c7fc3750", - "typeString": "literal_string \"SWAP_EXISTS\"" - }, - "value": "SWAP_EXISTS" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_10858945dd31484ce6a77564821a1a6ff0e82939d9bea2b8e6caae50c7fc3750", - "typeString": "literal_string \"SWAP_EXISTS\"" - } - ], - "id": 745, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4294967278, - 4294967278 - ], - "referencedDeclaration": 4294967278, - "src": "16462:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 753, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16462:55:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 754, - "nodeType": "ExpressionStatement", - "src": "16462:55:0" - }, - { - "expression": { - "id": 771, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 755, - "name": "contracts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 599, - "src": "16528:9:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_LockContract_$635_storage_$", - "typeString": "mapping(bytes32 => struct HashedTimeLockContract.LockContract storage ref)" - } - }, - "id": 757, - "indexExpression": { - "id": 756, - "name": "id", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 731, - "src": "16538:2:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "16528:13:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_storage", - "typeString": "struct HashedTimeLockContract.LockContract storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 759, - "name": "inputAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 685, - "src": "16570:11:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 760, - "name": "outputAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 687, - "src": "16595:12:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 761, - "name": "expiration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 689, - "src": "16621:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 762, - "name": "ACTIVE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 605, - "src": "16645:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 763, - "name": "hashLock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 691, - "src": "16665:8:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 764, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 693, - "src": "16687:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 765, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4294967281, - "src": "16713:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 766, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "16713:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 767, - "name": "receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 695, - "src": "16737:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 768, - "name": "outputNetwork", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 697, - "src": "16759:13:0", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - { - "id": 769, - "name": "outputAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 699, - "src": "16786:13:0", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - }, - { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - ], - "id": 758, - "name": "LockContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 635, - "src": "16544:12:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_LockContract_$635_storage_ptr_$", - "typeString": "type(struct HashedTimeLockContract.LockContract storage pointer)" - } - }, - "id": 770, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16544:265:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_memory_ptr", - "typeString": "struct HashedTimeLockContract.LockContract memory" - } - }, - "src": "16528:281:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_storage", - "typeString": "struct HashedTimeLockContract.LockContract storage ref" - } - }, - "id": 772, - "nodeType": "ExpressionStatement", - "src": "16528:281:0" - }, - { - "eventCall": { - "arguments": [ - { - "id": 774, - "name": "inputAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 685, - "src": "16850:11:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 775, - "name": "outputAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 687, - "src": "16875:12:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 776, - "name": "expiration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 689, - "src": "16901:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 777, - "name": "id", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 731, - "src": "16925:2:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 778, - "name": "hashLock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 691, - "src": "16941:8:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 779, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 693, - "src": "16963:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 780, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4294967281, - "src": "16989:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 781, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "16989:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 782, - "name": "receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 695, - "src": "17013:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 783, - "name": "outputNetwork", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 697, - "src": "17035:13:0", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - { - "id": 784, - "name": "outputAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 699, - "src": "17062:13:0", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - }, - { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - ], - "id": 773, - "name": "NewContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 683, - "src": "16825:11:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_bytes32_$_t_bytes32_$_t_address_$_t_address_$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (uint256,uint256,uint256,bytes32,bytes32,address,address,address,string memory,string memory)" - } - }, - "id": 785, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16825:260:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 786, - "nodeType": "EmitStatement", - "src": "16820:265:0" - } - ] - }, - "functionSelector": "d2fd8b76", - "id": 788, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "newContract", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 700, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 685, - "mutability": "mutable", - "name": "inputAmount", - "nodeType": "VariableDeclaration", - "scope": 788, - "src": "15744:19:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 684, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15744:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 687, - "mutability": "mutable", - "name": "outputAmount", - "nodeType": "VariableDeclaration", - "scope": 788, - "src": "15773:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 686, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15773:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 689, - "mutability": "mutable", - "name": "expiration", - "nodeType": "VariableDeclaration", - "scope": 788, - "src": "15803:18:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 688, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15803:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 691, - "mutability": "mutable", - "name": "hashLock", - "nodeType": "VariableDeclaration", - "scope": 788, - "src": "15831:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 690, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "15831:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 693, - "mutability": "mutable", - "name": "tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 788, - "src": "15857:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 692, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15857:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 695, - "mutability": "mutable", - "name": "receiver", - "nodeType": "VariableDeclaration", - "scope": 788, - "src": "15887:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 694, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15887:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 697, - "mutability": "mutable", - "name": "outputNetwork", - "nodeType": "VariableDeclaration", - "scope": 788, - "src": "15913:29:0", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 696, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "15913:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 699, - "mutability": "mutable", - "name": "outputAddress", - "nodeType": "VariableDeclaration", - "scope": 788, - "src": "15952:29:0", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 698, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "15952:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "15734:253:0" - }, - "returnParameters": { - "id": 701, - "nodeType": "ParameterList", - "parameters": [], - "src": "15997:0:0" - }, - "scope": 1007, - "src": "15714:1378:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 862, - "nodeType": "Block", - "src": "17165:564:0", - "statements": [ - { - "assignments": [ - 797 - ], - "declarations": [ - { - "constant": false, - "id": 797, - "mutability": "mutable", - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 862, - "src": "17175:22:0", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", - "typeString": "struct HashedTimeLockContract.LockContract" - }, - "typeName": { - "id": 796, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 795, - "name": "LockContract", - "nodeType": "IdentifierPath", - "referencedDeclaration": 635, - "src": "17175:12:0" - }, - "referencedDeclaration": 635, - "src": "17175:12:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", - "typeString": "struct HashedTimeLockContract.LockContract" - } - }, - "visibility": "internal" - } - ], - "id": 801, - "initialValue": { - "baseExpression": { - "id": 798, - "name": "contracts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 599, - "src": "17200:9:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_LockContract_$635_storage_$", - "typeString": "mapping(bytes32 => struct HashedTimeLockContract.LockContract storage ref)" - } - }, - "id": 800, - "indexExpression": { - "id": 799, - "name": "id", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 790, - "src": "17210:2:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17200:13:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_storage", - "typeString": "struct HashedTimeLockContract.LockContract storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "17175:38:0" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 806, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 803, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 797, - "src": "17232:1:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", - "typeString": "struct HashedTimeLockContract.LockContract storage pointer" - } - }, - "id": 804, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "status", - "nodeType": "MemberAccess", - "referencedDeclaration": 622, - "src": "17232:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "id": 805, - "name": "ACTIVE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 605, - "src": "17244:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "17232:18:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "535741505f4e4f545f414354495645", - "id": 807, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17252:17:0", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_afbfa7d3db262df0c92c413f0113503b1c1332dc5a4a874fcd8d6a6de57b74dd", - "typeString": "literal_string \"SWAP_NOT_ACTIVE\"" - }, - "value": "SWAP_NOT_ACTIVE" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_afbfa7d3db262df0c92c413f0113503b1c1332dc5a4a874fcd8d6a6de57b74dd", - "typeString": "literal_string \"SWAP_NOT_ACTIVE\"" - } - ], - "id": 802, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4294967278, - 4294967278 - ], - "referencedDeclaration": 4294967278, - "src": "17224:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 808, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17224:46:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 809, - "nodeType": "ExpressionStatement", - "src": "17224:46:0" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 815, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 811, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 797, - "src": "17289:1:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", - "typeString": "struct HashedTimeLockContract.LockContract storage pointer" - } - }, - "id": 812, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "expiration", - "nodeType": "MemberAccess", - "referencedDeclaration": 620, - "src": "17289:12:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "id": 813, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4294967292, - "src": "17304:5:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 814, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "src": "17304:15:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "17289:30:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "494e56414c49445f54494d45", - "id": 816, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17321:14:0", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b98f3e47db5919a8c78ec10ff6bf7d1326066d3facdc164cf7441d38cae771df", - "typeString": "literal_string \"INVALID_TIME\"" - }, - "value": "INVALID_TIME" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b98f3e47db5919a8c78ec10ff6bf7d1326066d3facdc164cf7441d38cae771df", - "typeString": "literal_string \"INVALID_TIME\"" - } - ], - "id": 810, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4294967278, - 4294967278 - ], - "referencedDeclaration": 4294967278, - "src": "17281:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 817, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17281:55:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 818, - "nodeType": "ExpressionStatement", - "src": "17281:55:0" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 828, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 820, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 797, - "src": "17368:1:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", - "typeString": "struct HashedTimeLockContract.LockContract storage pointer" - } - }, - "id": 821, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "hashLock", - "nodeType": "MemberAccess", - "referencedDeclaration": 624, - "src": "17368:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "arguments": [ - { - "arguments": [ - { - "id": 825, - "name": "secret", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "17406:6:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "id": 823, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4294967295, - "src": "17389:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 824, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "src": "17389:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 826, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17389:24:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 822, - "name": "sha256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4294967274, - "src": "17382:6:0", - "typeDescriptions": { - "typeIdentifier": "t_function_sha256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 827, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17382:32:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "17368:46:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "494e56414c49445f534543524554", - "id": 829, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17428:16:0", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_20442b474b3561be70a7e12c2acf875277f59e68e7748337cd68bf5c8ada064b", - "typeString": "literal_string \"INVALID_SECRET\"" - }, - "value": "INVALID_SECRET" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_20442b474b3561be70a7e12c2acf875277f59e68e7748337cd68bf5c8ada064b", - "typeString": "literal_string \"INVALID_SECRET\"" - } - ], - "id": 819, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4294967278, - 4294967278 - ], - "referencedDeclaration": 4294967278, - "src": "17347:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 830, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17347:107:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 831, - "nodeType": "ExpressionStatement", - "src": "17347:107:0" - }, - { - "expression": { - "id": 836, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 832, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 797, - "src": "17465:1:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", - "typeString": "struct HashedTimeLockContract.LockContract storage pointer" - } - }, - "id": 834, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "status", - "nodeType": "MemberAccess", - "referencedDeclaration": 622, - "src": "17465:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 835, - "name": "WITHDRAWN", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 611, - "src": "17476:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "17465:20:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 837, - "nodeType": "ExpressionStatement", - "src": "17465:20:0" - }, - { - "expression": { - "arguments": [ - { - "expression": { - "id": 843, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 797, - "src": "17528:1:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", - "typeString": "struct HashedTimeLockContract.LockContract storage pointer" - } - }, - "id": 844, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "receiver", - "nodeType": "MemberAccess", - "referencedDeclaration": 630, - "src": "17528:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 845, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 797, - "src": "17540:1:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", - "typeString": "struct HashedTimeLockContract.LockContract storage pointer" - } - }, - "id": 846, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "inputAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 616, - "src": "17540:13:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "arguments": [ - { - "expression": { - "id": 839, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 797, - "src": "17503:1:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", - "typeString": "struct HashedTimeLockContract.LockContract storage pointer" - } - }, - "id": 840, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "tokenAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 626, - "src": "17503:14:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 838, - "name": "IERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 371, - "src": "17496:6:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$371_$", - "typeString": "type(contract IERC20)" - } - }, - "id": 841, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17496:22:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - } - }, - "id": 842, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 320, - "src": "17496:31:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 847, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17496:58:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 848, - "nodeType": "ExpressionStatement", - "src": "17496:58:0" - }, - { - "eventCall": { - "arguments": [ - { - "id": 850, - "name": "id", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 790, - "src": "17592:2:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 851, - "name": "secret", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "17608:6:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "expression": { - "id": 852, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 797, - "src": "17628:1:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", - "typeString": "struct HashedTimeLockContract.LockContract storage pointer" - } - }, - "id": 853, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "hashLock", - "nodeType": "MemberAccess", - "referencedDeclaration": 624, - "src": "17628:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "expression": { - "id": 854, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 797, - "src": "17652:1:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", - "typeString": "struct HashedTimeLockContract.LockContract storage pointer" - } - }, - "id": 855, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "tokenAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 626, - "src": "17652:14:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 856, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 797, - "src": "17680:1:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", - "typeString": "struct HashedTimeLockContract.LockContract storage pointer" - } - }, - "id": 857, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": 628, - "src": "17680:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 858, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 797, - "src": "17702:1:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", - "typeString": "struct HashedTimeLockContract.LockContract storage pointer" - } - }, - "id": 859, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "receiver", - "nodeType": "MemberAccess", - "referencedDeclaration": 630, - "src": "17702:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 849, - "name": "Withdraw", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 649, - "src": "17570:8:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_address_$_t_address_$_t_address_$returns$__$", - "typeString": "function (bytes32,bytes32,bytes32,address,address,address)" - } - }, - "id": 860, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17570:152:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 861, - "nodeType": "EmitStatement", - "src": "17565:157:0" - } - ] - }, - "functionSelector": "63615149", - "id": 863, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "withdraw", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 793, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 790, - "mutability": "mutable", - "name": "id", - "nodeType": "VariableDeclaration", - "scope": 863, - "src": "17116:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 789, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "17116:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 792, - "mutability": "mutable", - "name": "secret", - "nodeType": "VariableDeclaration", - "scope": 863, - "src": "17128:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 791, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "17128:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "17115:28:0" - }, - "returnParameters": { - "id": 794, - "nodeType": "ParameterList", - "parameters": [], - "src": "17165:0:0" - }, - "scope": 1007, - "src": "17098:631:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 921, - "nodeType": "Block", - "src": "17772:352:0", - "statements": [ - { - "assignments": [ - 870 - ], - "declarations": [ - { - "constant": false, - "id": 870, - "mutability": "mutable", - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 921, - "src": "17782:22:0", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", - "typeString": "struct HashedTimeLockContract.LockContract" - }, - "typeName": { - "id": 869, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 868, - "name": "LockContract", - "nodeType": "IdentifierPath", - "referencedDeclaration": 635, - "src": "17782:12:0" - }, - "referencedDeclaration": 635, - "src": "17782:12:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", - "typeString": "struct HashedTimeLockContract.LockContract" - } - }, - "visibility": "internal" - } - ], - "id": 874, - "initialValue": { - "baseExpression": { - "id": 871, - "name": "contracts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 599, - "src": "17807:9:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_LockContract_$635_storage_$", - "typeString": "mapping(bytes32 => struct HashedTimeLockContract.LockContract storage ref)" - } - }, - "id": 873, - "indexExpression": { - "id": 872, - "name": "id", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 865, - "src": "17817:2:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17807:13:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_storage", - "typeString": "struct HashedTimeLockContract.LockContract storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "17782:38:0" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 879, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 876, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 870, - "src": "17839:1:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", - "typeString": "struct HashedTimeLockContract.LockContract storage pointer" - } - }, - "id": 877, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "status", - "nodeType": "MemberAccess", - "referencedDeclaration": 622, - "src": "17839:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "id": 878, - "name": "ACTIVE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 605, - "src": "17851:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "17839:18:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "535741505f4e4f545f414354495645", - "id": 880, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17859:17:0", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_afbfa7d3db262df0c92c413f0113503b1c1332dc5a4a874fcd8d6a6de57b74dd", - "typeString": "literal_string \"SWAP_NOT_ACTIVE\"" - }, - "value": "SWAP_NOT_ACTIVE" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_afbfa7d3db262df0c92c413f0113503b1c1332dc5a4a874fcd8d6a6de57b74dd", - "typeString": "literal_string \"SWAP_NOT_ACTIVE\"" - } - ], - "id": 875, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4294967278, - 4294967278 - ], - "referencedDeclaration": 4294967278, - "src": "17831:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 881, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17831:46:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 882, - "nodeType": "ExpressionStatement", - "src": "17831:46:0" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 888, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 884, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 870, - "src": "17896:1:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", - "typeString": "struct HashedTimeLockContract.LockContract storage pointer" - } - }, - "id": 885, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "expiration", - "nodeType": "MemberAccess", - "referencedDeclaration": 620, - "src": "17896:12:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "expression": { - "id": 886, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4294967292, - "src": "17912:5:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 887, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "src": "17912:15:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "17896:31:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "494e56414c49445f54494d45", - "id": 889, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17929:14:0", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b98f3e47db5919a8c78ec10ff6bf7d1326066d3facdc164cf7441d38cae771df", - "typeString": "literal_string \"INVALID_TIME\"" - }, - "value": "INVALID_TIME" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b98f3e47db5919a8c78ec10ff6bf7d1326066d3facdc164cf7441d38cae771df", - "typeString": "literal_string \"INVALID_TIME\"" - } - ], - "id": 883, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4294967278, - 4294967278 - ], - "referencedDeclaration": 4294967278, - "src": "17888:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 890, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17888:56:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 891, - "nodeType": "ExpressionStatement", - "src": "17888:56:0" - }, - { - "expression": { - "id": 896, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 892, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 870, - "src": "17955:1:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", - "typeString": "struct HashedTimeLockContract.LockContract storage pointer" - } - }, - "id": 894, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "status", - "nodeType": "MemberAccess", - "referencedDeclaration": 622, - "src": "17955:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 895, - "name": "REFUNDED", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 608, - "src": "17966:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "17955:19:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 897, - "nodeType": "ExpressionStatement", - "src": "17955:19:0" - }, - { - "expression": { - "arguments": [ - { - "expression": { - "id": 903, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 870, - "src": "18017:1:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", - "typeString": "struct HashedTimeLockContract.LockContract storage pointer" - } - }, - "id": 904, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": 628, - "src": "18017:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 905, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 870, - "src": "18027:1:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", - "typeString": "struct HashedTimeLockContract.LockContract storage pointer" - } - }, - "id": 906, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "inputAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 616, - "src": "18027:13:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "arguments": [ - { - "expression": { - "id": 899, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 870, - "src": "17992:1:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", - "typeString": "struct HashedTimeLockContract.LockContract storage pointer" - } - }, - "id": 900, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "tokenAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 626, - "src": "17992:14:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 898, - "name": "IERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 371, - "src": "17985:6:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$371_$", - "typeString": "type(contract IERC20)" - } - }, - "id": 901, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17985:22:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - } - }, - "id": 902, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 320, - "src": "17985:31:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 907, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17985:56:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 908, - "nodeType": "ExpressionStatement", - "src": "17985:56:0" - }, - { - "eventCall": { - "arguments": [ - { - "id": 910, - "name": "id", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 865, - "src": "18064:2:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "expression": { - "id": 911, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 870, - "src": "18068:1:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", - "typeString": "struct HashedTimeLockContract.LockContract storage pointer" - } - }, - "id": 912, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "hashLock", - "nodeType": "MemberAccess", - "referencedDeclaration": 624, - "src": "18068:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "expression": { - "id": 913, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 870, - "src": "18080:1:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", - "typeString": "struct HashedTimeLockContract.LockContract storage pointer" - } - }, - "id": 914, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "tokenAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 626, - "src": "18080:14:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 915, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 870, - "src": "18096:1:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", - "typeString": "struct HashedTimeLockContract.LockContract storage pointer" - } - }, - "id": 916, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": 628, - "src": "18096:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 917, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 870, - "src": "18106:1:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", - "typeString": "struct HashedTimeLockContract.LockContract storage pointer" - } - }, - "id": 918, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "receiver", - "nodeType": "MemberAccess", - "referencedDeclaration": 630, - "src": "18106:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 909, - "name": "Refund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 661, - "src": "18057:6:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$_t_address_$_t_address_$returns$__$", - "typeString": "function (bytes32,bytes32,address,address,address)" - } - }, - "id": 919, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18057:60:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 920, - "nodeType": "EmitStatement", - "src": "18052:65:0" - } - ] - }, - "functionSelector": "7249fbb6", - "id": 922, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "refund", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 866, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 865, - "mutability": "mutable", - "name": "id", - "nodeType": "VariableDeclaration", - "scope": 922, - "src": "17751:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 864, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "17751:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "17750:12:0" - }, - "returnParameters": { - "id": 867, - "nodeType": "ParameterList", - "parameters": [], - "src": "17772:0:0" - }, - "scope": 1007, - "src": "17735:389:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 968, - "nodeType": "Block", - "src": "18238:223:0", - "statements": [ - { - "assignments": [ - 935 - ], - "declarations": [ - { - "constant": false, - "id": 935, - "mutability": "mutable", - "name": "result", - "nodeType": "VariableDeclaration", - "scope": 968, - "src": "18248:23:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 933, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18248:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 934, - "nodeType": "ArrayTypeName", - "src": "18248:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "visibility": "internal" - } - ], - "id": 942, - "initialValue": { - "arguments": [ - { - "expression": { - "id": 939, - "name": "ids", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 925, - "src": "18288:3:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", - "typeString": "bytes32[] memory" - } - }, - "id": 940, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "src": "18288:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 938, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "18274:13:0", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", - "typeString": "function (uint256) pure returns (uint256[] memory)" - }, - "typeName": { - "baseType": { - "id": 936, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18278:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 937, - "nodeType": "ArrayTypeName", - "src": "18278:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - } - }, - "id": 941, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18274:25:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "18248:51:0" - }, - { - "body": { - "id": 964, - "nodeType": "Block", - "src": "18363:68:0", - "statements": [ - { - "expression": { - "id": 962, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 954, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 935, - "src": "18377:6:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 956, - "indexExpression": { - "id": 955, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 944, - "src": "18384:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "18377:13:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "baseExpression": { - "id": 958, - "name": "ids", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 925, - "src": "18409:3:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", - "typeString": "bytes32[] memory" - } - }, - "id": 960, - "indexExpression": { - "id": 959, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 944, - "src": "18413:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "18409:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 957, - "name": "getSingleStatus", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1006, - "src": "18393:15:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_uint256_$", - "typeString": "function (bytes32) view returns (uint256)" - } - }, - "id": 961, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18393:27:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "18377:43:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 963, - "nodeType": "ExpressionStatement", - "src": "18377:43:0" - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 950, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 947, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 944, - "src": "18334:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "expression": { - "id": 948, - "name": "ids", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 925, - "src": "18342:3:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", - "typeString": "bytes32[] memory" - } - }, - "id": 949, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "src": "18342:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "18334:18:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 965, - "initializationExpression": { - "assignments": [ - 944 - ], - "declarations": [ - { - "constant": false, - "id": 944, - "mutability": "mutable", - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 965, - "src": "18315:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 943, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18315:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 946, - "initialValue": { - "hexValue": "30", - "id": 945, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18331:1:0", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "18315:17:0" - }, - "loopExpression": { - "expression": { - "id": 952, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "18354:7:0", - "subExpression": { - "id": 951, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 944, - "src": "18354:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 953, - "nodeType": "ExpressionStatement", - "src": "18354:7:0" - }, - "nodeType": "ForStatement", - "src": "18310:121:0" - }, - { - "expression": { - "id": 966, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 935, - "src": "18448:6:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "functionReturnParameters": 930, - "id": 967, - "nodeType": "Return", - "src": "18441:13:0" - } - ] - }, - "functionSelector": "2f21a663", - "id": 969, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getStatus", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 926, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 925, - "mutability": "mutable", - "name": "ids", - "nodeType": "VariableDeclaration", - "scope": 969, - "src": "18149:20:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", - "typeString": "bytes32[]" - }, - "typeName": { - "baseType": { - "id": 923, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "18149:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 924, - "nodeType": "ArrayTypeName", - "src": "18149:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", - "typeString": "bytes32[]" - } - }, - "visibility": "internal" - } - ], - "src": "18148:22:0" - }, - "returnParameters": { - "id": 930, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 929, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "scope": 969, - "src": "18216:16:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 927, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18216:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 928, - "nodeType": "ArrayTypeName", - "src": "18216:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "visibility": "internal" - } - ], - "src": "18215:18:0" - }, - "scope": 1007, - "src": "18130:331:0", - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 1005, - "nodeType": "Block", - "src": "18541:289:0", - "statements": [ - { - "assignments": [ - 978 - ], - "declarations": [ - { - "constant": false, - "id": 978, - "mutability": "mutable", - "name": "tempContract", - "nodeType": "VariableDeclaration", - "scope": 1005, - "src": "18551:32:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_memory_ptr", - "typeString": "struct HashedTimeLockContract.LockContract" - }, - "typeName": { - "id": 977, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 976, - "name": "LockContract", - "nodeType": "IdentifierPath", - "referencedDeclaration": 635, - "src": "18551:12:0" - }, - "referencedDeclaration": 635, - "src": "18551:12:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", - "typeString": "struct HashedTimeLockContract.LockContract" - } - }, - "visibility": "internal" - } - ], - "id": 982, - "initialValue": { - "baseExpression": { - "id": 979, - "name": "contracts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 599, - "src": "18586:9:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_LockContract_$635_storage_$", - "typeString": "mapping(bytes32 => struct HashedTimeLockContract.LockContract storage ref)" - } - }, - "id": 981, - "indexExpression": { - "id": 980, - "name": "id", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 971, - "src": "18596:2:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "18586:13:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_storage", - "typeString": "struct HashedTimeLockContract.LockContract storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "18551:48:0" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 992, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 986, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 983, - "name": "tempContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 978, - "src": "18627:12:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_memory_ptr", - "typeString": "struct HashedTimeLockContract.LockContract memory" - } - }, - "id": 984, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "status", - "nodeType": "MemberAccess", - "referencedDeclaration": 622, - "src": "18627:19:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "id": 985, - "name": "ACTIVE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 605, - "src": "18650:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "18627:29:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 991, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 987, - "name": "tempContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 978, - "src": "18672:12:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_memory_ptr", - "typeString": "struct HashedTimeLockContract.LockContract memory" - } - }, - "id": 988, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "expiration", - "nodeType": "MemberAccess", - "referencedDeclaration": 620, - "src": "18672:23:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "expression": { - "id": 989, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4294967292, - "src": "18698:5:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 990, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "src": "18698:15:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "18672:41:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "18627:86:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 1003, - "nodeType": "Block", - "src": "18771:53:0", - "statements": [ - { - "expression": { - "id": 1001, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 998, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 974, - "src": "18785:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 999, - "name": "tempContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 978, - "src": "18794:12:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_memory_ptr", - "typeString": "struct HashedTimeLockContract.LockContract memory" - } - }, - "id": 1000, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "status", - "nodeType": "MemberAccess", - "referencedDeclaration": 622, - "src": "18794:19:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "18785:28:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1002, - "nodeType": "ExpressionStatement", - "src": "18785:28:0" - } - ] - }, - "id": 1004, - "nodeType": "IfStatement", - "src": "18610:214:0", - "trueBody": { - "id": 997, - "nodeType": "Block", - "src": "18724:41:0", - "statements": [ - { - "expression": { - "id": 995, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 993, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 974, - "src": "18738:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 994, - "name": "EXPIRED", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 614, - "src": "18747:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "18738:16:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 996, - "nodeType": "ExpressionStatement", - "src": "18738:16:0" - } - ] - } - } - ] - }, - "functionSelector": "fbdf3b43", - "id": 1006, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getSingleStatus", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 972, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 971, - "mutability": "mutable", - "name": "id", - "nodeType": "VariableDeclaration", - "scope": 1006, - "src": "18492:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 970, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "18492:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "18491:12:0" - }, - "returnParameters": { - "id": 975, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 974, - "mutability": "mutable", - "name": "result", - "nodeType": "VariableDeclaration", - "scope": 1006, - "src": "18525:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 973, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18525:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "18524:16:0" - }, - "scope": 1007, - "src": "18467:363:0", - "stateMutability": "view", - "virtual": false, - "visibility": "public" - } - ], - "scope": 1008, - "src": "14047:4785:0" - } - ], - "src": "0:18832:0" - }, - "legacyAST": { - "absolutePath": "/Users/jordigironamezcua/pruebas/contracts/HashTimeLock.sol", - "exportedSymbols": { - "Address": [ - 295 - ], - "HashedTimeLockContract": [ - 1007 - ], - "IERC20": [ - 371 - ], - "SafeERC20": [ - 590 - ] - }, - "id": 1008, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1, - "literals": [ - "solidity", - "^", - "0.8", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:0" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": { - "id": 2, - "nodeType": "StructuredDocumentation", - "src": "27:67:0", - "text": " @dev Collection of functions related to the address type" - }, - "fullyImplemented": true, - "id": 295, - "linearizedBaseContracts": [ - 295 - ], - "name": "Address", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 18, - "nodeType": "Block", - "src": "753:347:0", - "statements": [ - { - "assignments": [ - 11 - ], - "declarations": [ - { - "constant": false, - "id": 11, - "mutability": "mutable", - "name": "size", - "nodeType": "VariableDeclaration", - "scope": 18, - "src": "950:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "950:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 12, - "nodeType": "VariableDeclarationStatement", - "src": "950:12:0" - }, - { - "AST": { - "nodeType": "YulBlock", - "src": "1037:32:0", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "1039:28:0", - "value": { - "arguments": [ - { - "name": "account", - "nodeType": "YulIdentifier", - "src": "1059:7:0" - } - ], - "functionName": { - "name": "extcodesize", - "nodeType": "YulIdentifier", - "src": "1047:11:0" - }, - "nodeType": "YulFunctionCall", - "src": "1047:20:0" - }, - "variableNames": [ - { - "name": "size", - "nodeType": "YulIdentifier", - "src": "1039:4:0" - } - ] - } - ] - }, - "evmVersion": "istanbul", - "externalReferences": [ - { - "declaration": 5, - "isOffset": false, - "isSlot": false, - "src": "1059:7:0", - "valueSize": 1 - }, - { - "declaration": 11, - "isOffset": false, - "isSlot": false, - "src": "1039:4:0", - "valueSize": 1 - } - ], - "id": 13, - "nodeType": "InlineAssembly", - "src": "1028:41:0" - }, - { - "expression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 16, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 14, - "name": "size", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 11, - "src": "1085:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 15, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1092:1:0", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1085:8:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 9, - "id": 17, - "nodeType": "Return", - "src": "1078:15:0" - } - ] - }, - "documentation": { - "id": 3, - "nodeType": "StructuredDocumentation", - "src": "117:565:0", - "text": " @dev Returns true if `account` is a contract.\n [IMPORTANT]\n ====\n It is unsafe to assume that an address for which this function returns\n false is an externally-owned account (EOA) and not a contract.\n Among others, `isContract` will return false for the following\n types of addresses:\n - an externally-owned account\n - a contract in construction\n - an address where a contract will be created\n - an address where a contract lived, but was destroyed\n ====" - }, - "id": 19, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isContract", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5, - "mutability": "mutable", - "name": "account", - "nodeType": "VariableDeclaration", - "scope": 19, - "src": "707:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "707:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "706:17:0" - }, - "returnParameters": { - "id": 9, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "scope": 19, - "src": "747:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 7, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "747:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "746:6:0" - }, - "scope": 295, - "src": "687:413:0", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 52, - "nodeType": "Block", - "src": "2088:320:0", - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 34, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "arguments": [ - { - "id": 30, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4294967268, - "src": "2114:4:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Address_$295", - "typeString": "library Address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Address_$295", - "typeString": "library Address" - } - ], - "id": 29, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2106:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 28, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2106:7:0", - "typeDescriptions": {} - } - }, - "id": 31, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2106:13:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 32, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balance", - "nodeType": "MemberAccess", - "src": "2106:21:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "id": 33, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 24, - "src": "2131:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2106:31:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "416464726573733a20696e73756666696369656e742062616c616e6365", - "id": 35, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2139:31:0", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9", - "typeString": "literal_string \"Address: insufficient balance\"" - }, - "value": "Address: insufficient balance" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9", - "typeString": "literal_string \"Address: insufficient balance\"" - } - ], - "id": 27, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4294967278, - 4294967278 - ], - "referencedDeclaration": 4294967278, - "src": "2098:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 36, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2098:73:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 37, - "nodeType": "ExpressionStatement", - "src": "2098:73:0" - }, - { - "assignments": [ - 39, - null - ], - "declarations": [ - { - "constant": false, - "id": 39, - "mutability": "mutable", - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 52, - "src": "2260:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 38, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2260:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - null - ], - "id": 46, - "initialValue": { - "arguments": [ - { - "hexValue": "", - "id": 44, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2310:2:0", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - } - ], - "expression": { - "id": 40, - "name": "recipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22, - "src": "2278:9:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 41, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "call", - "nodeType": "MemberAccess", - "src": "2278:14:0", - "typeDescriptions": { - "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "function (bytes memory) payable returns (bool,bytes memory)" - } - }, - "id": 43, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "names": [ - "value" - ], - "nodeType": "FunctionCallOptions", - "options": [ - { - "id": 42, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 24, - "src": "2301:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "src": "2278:31:0", - "typeDescriptions": { - "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", - "typeString": "function (bytes memory) payable returns (bool,bytes memory)" - } - }, - "id": 45, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2278:35:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "tuple(bool,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2259:54:0" - }, - { - "expression": { - "arguments": [ - { - "id": 48, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 39, - "src": "2331:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564", - "id": 49, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2340:60:0", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae", - "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\"" - }, - "value": "Address: unable to send value, recipient may have reverted" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae", - "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\"" - } - ], - "id": 47, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4294967278, - 4294967278 - ], - "referencedDeclaration": 4294967278, - "src": "2323:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 50, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2323:78:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 51, - "nodeType": "ExpressionStatement", - "src": "2323:78:0" - } - ] - }, - "documentation": { - "id": 20, - "nodeType": "StructuredDocumentation", - "src": "1106:906:0", - "text": " @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]." - }, - "id": 53, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sendValue", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 25, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 22, - "mutability": "mutable", - "name": "recipient", - "nodeType": "VariableDeclaration", - "scope": 53, - "src": "2036:25:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 21, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2036:15:0", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 24, - "mutability": "mutable", - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 53, - "src": "2063:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 23, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2063:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2035:43:0" - }, - "returnParameters": { - "id": 26, - "nodeType": "ParameterList", - "parameters": [], - "src": "2088:0:0" - }, - "scope": 295, - "src": "2017:391:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 69, - "nodeType": "Block", - "src": "3238:82:0", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 64, - "name": "target", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 56, - "src": "3266:6:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 65, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 58, - "src": "3274:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "hexValue": "416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564", - "id": 66, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3280:32:0", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df", - "typeString": "literal_string \"Address: low-level call failed\"" - }, - "value": "Address: low-level call failed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df", - "typeString": "literal_string \"Address: low-level call failed\"" - } - ], - "id": 63, - "name": "functionCall", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 70, - 90 - ], - "referencedDeclaration": 90, - "src": "3253:12:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" - } - }, - "id": 67, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3253:60:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "functionReturnParameters": 62, - "id": 68, - "nodeType": "Return", - "src": "3246:67:0" - } - ] - }, - "documentation": { - "id": 54, - "nodeType": "StructuredDocumentation", - "src": "2414:730:0", - "text": " @dev Performs a Solidity function call using a low level `call`. A\n plain`call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason, it is bubbled up by this\n function (like regular Solidity function calls).\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert.\n _Available since v3.1._" - }, - "id": 70, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "functionCall", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 59, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 56, - "mutability": "mutable", - "name": "target", - "nodeType": "VariableDeclaration", - "scope": 70, - "src": "3171:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 55, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3171:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 58, - "mutability": "mutable", - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 70, - "src": "3187:17:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 57, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3187:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "3170:35:0" - }, - "returnParameters": { - "id": 62, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 61, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "scope": 70, - "src": "3224:12:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 60, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3224:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "3223:14:0" - }, - "scope": 295, - "src": "3149:171:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 89, - "nodeType": "Block", - "src": "3659:76:0", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 83, - "name": "target", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 73, - "src": "3698:6:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 84, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 75, - "src": "3706:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "hexValue": "30", - "id": 85, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3712:1:0", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - { - "id": 86, - "name": "errorMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "3715:12:0", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 82, - "name": "functionCallWithValue", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 110, - 160 - ], - "referencedDeclaration": 160, - "src": "3676:21:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" - } - }, - "id": 87, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3676:52:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "functionReturnParameters": 81, - "id": 88, - "nodeType": "Return", - "src": "3669:59:0" - } - ] - }, - "documentation": { - "id": 71, - "nodeType": "StructuredDocumentation", - "src": "3326:211:0", - "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" - }, - "id": 90, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "functionCall", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 78, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 73, - "mutability": "mutable", - "name": "target", - "nodeType": "VariableDeclaration", - "scope": 90, - "src": "3564:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 72, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3564:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 75, - "mutability": "mutable", - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 90, - "src": "3580:17:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 74, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3580:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 77, - "mutability": "mutable", - "name": "errorMessage", - "nodeType": "VariableDeclaration", - "scope": 90, - "src": "3599:26:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 76, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3599:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "3563:63:0" - }, - "returnParameters": { - "id": 81, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 80, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "scope": 90, - "src": "3645:12:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 79, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3645:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "3644:14:0" - }, - "scope": 295, - "src": "3542:193:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 109, - "nodeType": "Block", - "src": "4210:111:0", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 103, - "name": "target", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 93, - "src": "4249:6:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 104, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 95, - "src": "4257:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "id": 105, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 97, - "src": "4263:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "hexValue": "416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564", - "id": 106, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4270:43:0", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc", - "typeString": "literal_string \"Address: low-level call with value failed\"" - }, - "value": "Address: low-level call with value failed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc", - "typeString": "literal_string \"Address: low-level call with value failed\"" - } - ], - "id": 102, - "name": "functionCallWithValue", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 110, - 160 - ], - "referencedDeclaration": 160, - "src": "4227:21:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" - } - }, - "id": 107, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4227:87:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "functionReturnParameters": 101, - "id": 108, - "nodeType": "Return", - "src": "4220:94:0" - } - ] - }, - "documentation": { - "id": 91, - "nodeType": "StructuredDocumentation", - "src": "3741:351:0", - "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`.\n _Available since v3.1._" - }, - "id": 110, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "functionCallWithValue", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 98, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 93, - "mutability": "mutable", - "name": "target", - "nodeType": "VariableDeclaration", - "scope": 110, - "src": "4128:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 92, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4128:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 95, - "mutability": "mutable", - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 110, - "src": "4144:17:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 94, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4144:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 97, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 110, - "src": "4163:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 96, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4163:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "4127:50:0" - }, - "returnParameters": { - "id": 101, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 100, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "scope": 110, - "src": "4196:12:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 99, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4196:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "4195:14:0" - }, - "scope": 295, - "src": "4097:224:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 159, - "nodeType": "Block", - "src": "4710:382:0", - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 131, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "arguments": [ - { - "id": 127, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4294967268, - "src": "4736:4:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Address_$295", - "typeString": "library Address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Address_$295", - "typeString": "library Address" - } - ], - "id": 126, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4728:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 125, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4728:7:0", - "typeDescriptions": {} - } - }, - "id": 128, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4728:13:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 129, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balance", - "nodeType": "MemberAccess", - "src": "4728:21:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "id": 130, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 117, - "src": "4753:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4728:30:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c", - "id": 132, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4760:40:0", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", - "typeString": "literal_string \"Address: insufficient balance for call\"" - }, - "value": "Address: insufficient balance for call" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", - "typeString": "literal_string \"Address: insufficient balance for call\"" - } - ], - "id": 124, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4294967278, - 4294967278 - ], - "referencedDeclaration": 4294967278, - "src": "4720:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 133, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4720:81:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 134, - "nodeType": "ExpressionStatement", - "src": "4720:81:0" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 137, - "name": "target", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 113, - "src": "4830:6:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 136, - "name": "isContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19, - "src": "4819:10:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 138, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4819:18:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374", - "id": 139, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4839:31:0", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", - "typeString": "literal_string \"Address: call to non-contract\"" - }, - "value": "Address: call to non-contract" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", - "typeString": "literal_string \"Address: call to non-contract\"" - } - ], - "id": 135, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4294967278, - 4294967278 - ], - "referencedDeclaration": 4294967278, - "src": "4811:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 140, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4811:60:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 141, - "nodeType": "ExpressionStatement", - "src": "4811:60:0" - }, - { - "assignments": [ - 143, - 145 - ], - "declarations": [ - { - "constant": false, - "id": 143, - "mutability": "mutable", - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 159, - "src": "4942:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 142, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4942:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 145, - "mutability": "mutable", - "name": "returndata", - "nodeType": "VariableDeclaration", - "scope": 159, - "src": "4956:23:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 144, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4956:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "id": 152, - "initialValue": { - "arguments": [ - { - "id": 150, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 115, - "src": "5011:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "id": 146, - "name": "target", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 113, - "src": "4983:6:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 147, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "call", - "nodeType": "MemberAccess", - "src": "4983:11:0", - "typeDescriptions": { - "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "function (bytes memory) payable returns (bool,bytes memory)" - } - }, - "id": 149, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "names": [ - "value" - ], - "nodeType": "FunctionCallOptions", - "options": [ - { - "id": 148, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 117, - "src": "5003:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "src": "4983:27:0", - "typeDescriptions": { - "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", - "typeString": "function (bytes memory) payable returns (bool,bytes memory)" - } - }, - "id": 151, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4983:33:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "tuple(bool,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4941:75:0" - }, - { - "expression": { - "arguments": [ - { - "id": 154, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 143, - "src": "5051:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "id": 155, - "name": "returndata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 145, - "src": "5060:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "id": 156, - "name": "errorMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 119, - "src": "5072:12:0", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 153, - "name": "_verifyCallResult", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 294, - "src": "5033:17:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (bool,bytes memory,string memory) pure returns (bytes memory)" - } - }, - "id": 157, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5033:52:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "functionReturnParameters": 123, - "id": 158, - "nodeType": "Return", - "src": "5026:59:0" - } - ] - }, - "documentation": { - "id": 111, - "nodeType": "StructuredDocumentation", - "src": "4327:237:0", - "text": " @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" - }, - "id": 160, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "functionCallWithValue", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 120, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 113, - "mutability": "mutable", - "name": "target", - "nodeType": "VariableDeclaration", - "scope": 160, - "src": "4600:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 112, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4600:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 115, - "mutability": "mutable", - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 160, - "src": "4616:17:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 114, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4616:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 117, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 160, - "src": "4635:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 116, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4635:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 119, - "mutability": "mutable", - "name": "errorMessage", - "nodeType": "VariableDeclaration", - "scope": 160, - "src": "4650:26:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 118, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4650:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "4599:78:0" - }, - "returnParameters": { - "id": 123, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 122, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "scope": 160, - "src": "4696:12:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 121, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4696:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "4695:14:0" - }, - "scope": 295, - "src": "4569:523:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 176, - "nodeType": "Block", - "src": "5369:97:0", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 171, - "name": "target", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 163, - "src": "5405:6:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 172, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 165, - "src": "5413:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "hexValue": "416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564", - "id": 173, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5419:39:0", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0", - "typeString": "literal_string \"Address: low-level static call failed\"" - }, - "value": "Address: low-level static call failed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0", - "typeString": "literal_string \"Address: low-level static call failed\"" - } - ], - "id": 170, - "name": "functionStaticCall", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 177, - 212 - ], - "referencedDeclaration": 212, - "src": "5386:18:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (address,bytes memory,string memory) view returns (bytes memory)" - } - }, - "id": 174, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5386:73:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "functionReturnParameters": 169, - "id": 175, - "nodeType": "Return", - "src": "5379:80:0" - } - ] - }, - "documentation": { - "id": 161, - "nodeType": "StructuredDocumentation", - "src": "5098:166:0", - "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" - }, - "id": 177, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "functionStaticCall", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 166, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 163, - "mutability": "mutable", - "name": "target", - "nodeType": "VariableDeclaration", - "scope": 177, - "src": "5297:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 162, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5297:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 165, - "mutability": "mutable", - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 177, - "src": "5313:17:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 164, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5313:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "5296:35:0" - }, - "returnParameters": { - "id": 169, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 168, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "scope": 177, - "src": "5355:12:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 167, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5355:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "5354:14:0" - }, - "scope": 295, - "src": "5269:197:0", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 211, - "nodeType": "Block", - "src": "5778:288:0", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 191, - "name": "target", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 180, - "src": "5807:6:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 190, - "name": "isContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19, - "src": "5796:10:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 192, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5796:18:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "416464726573733a207374617469632063616c6c20746f206e6f6e2d636f6e7472616374", - "id": 193, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5816:38:0", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9", - "typeString": "literal_string \"Address: static call to non-contract\"" - }, - "value": "Address: static call to non-contract" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9", - "typeString": "literal_string \"Address: static call to non-contract\"" - } - ], - "id": 189, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4294967278, - 4294967278 - ], - "referencedDeclaration": 4294967278, - "src": "5788:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 194, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5788:67:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 195, - "nodeType": "ExpressionStatement", - "src": "5788:67:0" - }, - { - "assignments": [ - 197, - 199 - ], - "declarations": [ - { - "constant": false, - "id": 197, - "mutability": "mutable", - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 211, - "src": "5926:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 196, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5926:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 199, - "mutability": "mutable", - "name": "returndata", - "nodeType": "VariableDeclaration", - "scope": 211, - "src": "5940:23:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 198, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5940:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "id": 204, - "initialValue": { - "arguments": [ - { - "id": 202, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 182, - "src": "5985:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "id": 200, - "name": "target", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 180, - "src": "5967:6:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 201, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "staticcall", - "nodeType": "MemberAccess", - "src": "5967:17:0", - "typeDescriptions": { - "typeIdentifier": "t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "function (bytes memory) view returns (bool,bytes memory)" - } - }, - "id": 203, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5967:23:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "tuple(bool,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5925:65:0" - }, - { - "expression": { - "arguments": [ - { - "id": 206, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 197, - "src": "6025:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "id": 207, - "name": "returndata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 199, - "src": "6034:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "id": 208, - "name": "errorMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 184, - "src": "6046:12:0", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 205, - "name": "_verifyCallResult", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 294, - "src": "6007:17:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (bool,bytes memory,string memory) pure returns (bytes memory)" - } - }, - "id": 209, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6007:52:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "functionReturnParameters": 188, - "id": 210, - "nodeType": "Return", - "src": "6000:59:0" - } - ] - }, - "documentation": { - "id": 178, - "nodeType": "StructuredDocumentation", - "src": "5472:173:0", - "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" - }, - "id": 212, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "functionStaticCall", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 185, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 180, - "mutability": "mutable", - "name": "target", - "nodeType": "VariableDeclaration", - "scope": 212, - "src": "5678:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 179, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5678:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 182, - "mutability": "mutable", - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 212, - "src": "5694:17:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 181, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5694:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 184, - "mutability": "mutable", - "name": "errorMessage", - "nodeType": "VariableDeclaration", - "scope": 212, - "src": "5713:26:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 183, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "5713:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "5677:63:0" - }, - "returnParameters": { - "id": 188, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 187, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "scope": 212, - "src": "5764:12:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 186, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5764:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "5763:14:0" - }, - "scope": 295, - "src": "5650:416:0", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 228, - "nodeType": "Block", - "src": "6342:101:0", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 223, - "name": "target", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 215, - "src": "6380:6:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 224, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 217, - "src": "6388:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "hexValue": "416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", - "id": 225, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6394:41:0", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398", - "typeString": "literal_string \"Address: low-level delegate call failed\"" - }, - "value": "Address: low-level delegate call failed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398", - "typeString": "literal_string \"Address: low-level delegate call failed\"" - } - ], - "id": 222, - "name": "functionDelegateCall", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 229, - 264 - ], - "referencedDeclaration": 264, - "src": "6359:20:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" - } - }, - "id": 226, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6359:77:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "functionReturnParameters": 221, - "id": 227, - "nodeType": "Return", - "src": "6352:84:0" - } - ] - }, - "documentation": { - "id": 213, - "nodeType": "StructuredDocumentation", - "src": "6072:168:0", - "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" - }, - "id": 229, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "functionDelegateCall", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 218, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 215, - "mutability": "mutable", - "name": "target", - "nodeType": "VariableDeclaration", - "scope": 229, - "src": "6275:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 214, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6275:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 217, - "mutability": "mutable", - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 229, - "src": "6291:17:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 216, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6291:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "6274:35:0" - }, - "returnParameters": { - "id": 221, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 220, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "scope": 229, - "src": "6328:12:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 219, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6328:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "6327:14:0" - }, - "scope": 295, - "src": "6245:198:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 263, - "nodeType": "Block", - "src": "6754:292:0", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 243, - "name": "target", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 232, - "src": "6783:6:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 242, - "name": "isContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19, - "src": "6772:10:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 244, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6772:18:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6e7472616374", - "id": 245, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6792:40:0", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520", - "typeString": "literal_string \"Address: delegate call to non-contract\"" - }, - "value": "Address: delegate call to non-contract" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520", - "typeString": "literal_string \"Address: delegate call to non-contract\"" - } - ], - "id": 241, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4294967278, - 4294967278 - ], - "referencedDeclaration": 4294967278, - "src": "6764:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 246, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6764:69:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 247, - "nodeType": "ExpressionStatement", - "src": "6764:69:0" - }, - { - "assignments": [ - 249, - 251 - ], - "declarations": [ - { - "constant": false, - "id": 249, - "mutability": "mutable", - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 263, - "src": "6904:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 248, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6904:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 251, - "mutability": "mutable", - "name": "returndata", - "nodeType": "VariableDeclaration", - "scope": 263, - "src": "6918:23:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 250, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6918:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "id": 256, - "initialValue": { - "arguments": [ - { - "id": 254, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 234, - "src": "6965:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "id": 252, - "name": "target", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 232, - "src": "6945:6:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 253, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "delegatecall", - "nodeType": "MemberAccess", - "src": "6945:19:0", - "typeDescriptions": { - "typeIdentifier": "t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "function (bytes memory) returns (bool,bytes memory)" - } - }, - "id": 255, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6945:25:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "tuple(bool,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6903:67:0" - }, - { - "expression": { - "arguments": [ - { - "id": 258, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 249, - "src": "7005:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "id": 259, - "name": "returndata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 251, - "src": "7014:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "id": 260, - "name": "errorMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 236, - "src": "7026:12:0", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 257, - "name": "_verifyCallResult", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 294, - "src": "6987:17:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (bool,bytes memory,string memory) pure returns (bytes memory)" - } - }, - "id": 261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6987:52:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "functionReturnParameters": 240, - "id": 262, - "nodeType": "Return", - "src": "6980:59:0" - } - ] - }, - "documentation": { - "id": 230, - "nodeType": "StructuredDocumentation", - "src": "6449:175:0", - "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" - }, - "id": 264, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "functionDelegateCall", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 237, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 232, - "mutability": "mutable", - "name": "target", - "nodeType": "VariableDeclaration", - "scope": 264, - "src": "6659:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 231, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6659:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 234, - "mutability": "mutable", - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 264, - "src": "6675:17:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 233, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6675:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 236, - "mutability": "mutable", - "name": "errorMessage", - "nodeType": "VariableDeclaration", - "scope": 264, - "src": "6694:26:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 235, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "6694:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "6658:63:0" - }, - "returnParameters": { - "id": 240, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 239, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "scope": 264, - "src": "6740:12:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 238, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6740:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "6739:14:0" - }, - "scope": 295, - "src": "6629:417:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 293, - "nodeType": "Block", - "src": "7181:596:0", - "statements": [ - { - "condition": { - "id": 275, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 266, - "src": "7195:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 291, - "nodeType": "Block", - "src": "7252:519:0", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 282, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 279, - "name": "returndata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 268, - "src": "7336:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 280, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "src": "7336:17:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 281, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7356:1:0", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7336:21:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 289, - "nodeType": "Block", - "src": "7708:53:0", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 286, - "name": "errorMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 270, - "src": "7733:12:0", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 285, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4294967277, - 4294967277 - ], - "referencedDeclaration": 4294967277, - "src": "7726:6:0", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", - "typeString": "function (string memory) pure" - } - }, - "id": 287, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7726:20:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 288, - "nodeType": "ExpressionStatement", - "src": "7726:20:0" - } - ] - }, - "id": 290, - "nodeType": "IfStatement", - "src": "7332:429:0", - "trueBody": { - "id": 284, - "nodeType": "Block", - "src": "7359:343:0", - "statements": [ - { - "AST": { - "nodeType": "YulBlock", - "src": "7543:145:0", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "7565:40:0", - "value": { - "arguments": [ - { - "name": "returndata", - "nodeType": "YulIdentifier", - "src": "7594:10:0" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "7588:5:0" - }, - "nodeType": "YulFunctionCall", - "src": "7588:17:0" - }, - "variables": [ - { - "name": "returndata_size", - "nodeType": "YulTypedName", - "src": "7569:15:0", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7637:2:0", - "type": "", - "value": "32" - }, - { - "name": "returndata", - "nodeType": "YulIdentifier", - "src": "7641:10:0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "7633:3:0" - }, - "nodeType": "YulFunctionCall", - "src": "7633:19:0" - }, - { - "name": "returndata_size", - "nodeType": "YulIdentifier", - "src": "7654:15:0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "7626:6:0" - }, - "nodeType": "YulFunctionCall", - "src": "7626:44:0" - }, - "nodeType": "YulExpressionStatement", - "src": "7626:44:0" - } - ] - }, - "evmVersion": "istanbul", - "externalReferences": [ - { - "declaration": 268, - "isOffset": false, - "isSlot": false, - "src": "7594:10:0", - "valueSize": 1 - }, - { - "declaration": 268, - "isOffset": false, - "isSlot": false, - "src": "7641:10:0", - "valueSize": 1 - } - ], - "id": 283, - "nodeType": "InlineAssembly", - "src": "7534:154:0" - } - ] - } - } - ] - }, - "id": 292, - "nodeType": "IfStatement", - "src": "7191:580:0", - "trueBody": { - "id": 278, - "nodeType": "Block", - "src": "7204:42:0", - "statements": [ - { - "expression": { - "id": 276, - "name": "returndata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 268, - "src": "7225:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "functionReturnParameters": 274, - "id": 277, - "nodeType": "Return", - "src": "7218:17:0" - } - ] - } - } - ] - }, - "id": 294, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_verifyCallResult", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 271, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 266, - "mutability": "mutable", - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 294, - "src": "7079:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 265, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7079:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 268, - "mutability": "mutable", - "name": "returndata", - "nodeType": "VariableDeclaration", - "scope": 294, - "src": "7093:23:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 267, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7093:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 270, - "mutability": "mutable", - "name": "errorMessage", - "nodeType": "VariableDeclaration", - "scope": 294, - "src": "7118:26:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 269, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "7118:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "7078:67:0" - }, - "returnParameters": { - "id": 274, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 273, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "scope": 294, - "src": "7167:12:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 272, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7167:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "7166:14:0" - }, - "scope": 295, - "src": "7052:725:0", - "stateMutability": "pure", - "virtual": false, - "visibility": "private" - } - ], - "scope": 1008, - "src": "95:7684:0" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": { - "id": 296, - "nodeType": "StructuredDocumentation", - "src": "7781:70:0", - "text": " @dev Interface of the ERC20 standard as defined in the EIP." - }, - "fullyImplemented": false, - "id": 371, - "linearizedBaseContracts": [ - 371 - ], - "name": "IERC20", - "nodeType": "ContractDefinition", - "nodes": [ - { - "documentation": { - "id": 297, - "nodeType": "StructuredDocumentation", - "src": "7875:66:0", - "text": " @dev Returns the amount of tokens in existence." - }, - "functionSelector": "18160ddd", - "id": 302, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 298, - "nodeType": "ParameterList", - "parameters": [], - "src": "7966:2:0" - }, - "returnParameters": { - "id": 301, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 300, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "scope": 302, - "src": "7992:7:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 299, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7992:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "7991:9:0" - }, - "scope": 371, - "src": "7946:55:0", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 303, - "nodeType": "StructuredDocumentation", - "src": "8007:72:0", - "text": " @dev Returns the amount of tokens owned by `account`." - }, - "functionSelector": "70a08231", - "id": 310, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 306, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 305, - "mutability": "mutable", - "name": "account", - "nodeType": "VariableDeclaration", - "scope": 310, - "src": "8103:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 304, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8103:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "8102:17:0" - }, - "returnParameters": { - "id": 309, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 308, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "scope": 310, - "src": "8143:7:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 307, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8143:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "8142:9:0" - }, - "scope": 371, - "src": "8084:68:0", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 311, - "nodeType": "StructuredDocumentation", - "src": "8158:209:0", - "text": " @dev Moves `amount` tokens from the caller's account to `recipient`.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event." - }, - "functionSelector": "a9059cbb", - "id": 320, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 316, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 313, - "mutability": "mutable", - "name": "recipient", - "nodeType": "VariableDeclaration", - "scope": 320, - "src": "8390:17:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 312, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8390:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 315, - "mutability": "mutable", - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 320, - "src": "8409:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 314, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8409:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "8389:35:0" - }, - "returnParameters": { - "id": 319, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 318, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "scope": 320, - "src": "8443:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 317, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8443:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "8442:6:0" - }, - "scope": 371, - "src": "8372:77:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 321, - "nodeType": "StructuredDocumentation", - "src": "8455:264:0", - "text": " @dev Returns the remaining number of tokens that `spender` will be\n allowed to spend on behalf of `owner` through {transferFrom}. This is\n zero by default.\n This value changes when {approve} or {transferFrom} are called." - }, - "functionSelector": "dd62ed3e", - "id": 330, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 326, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 323, - "mutability": "mutable", - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 330, - "src": "8743:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 322, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8743:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 325, - "mutability": "mutable", - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 330, - "src": "8758:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 324, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8758:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "8742:32:0" - }, - "returnParameters": { - "id": 329, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 328, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "scope": 330, - "src": "8798:7:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 327, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8798:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "8797:9:0" - }, - "scope": 371, - "src": "8724:83:0", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 331, - "nodeType": "StructuredDocumentation", - "src": "8813:642:0", - "text": " @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n Returns a boolean value indicating whether the operation succeeded.\n IMPORTANT: Beware that changing an allowance with this method brings the risk\n that someone may use both the old and the new allowance by unfortunate\n transaction ordering. One possible solution to mitigate this race\n condition is to first reduce the spender's allowance to 0 and set the\n desired value afterwards:\n https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n Emits an {Approval} event." - }, - "functionSelector": "095ea7b3", - "id": 340, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 336, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 333, - "mutability": "mutable", - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 340, - "src": "9477:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 332, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9477:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 335, - "mutability": "mutable", - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 340, - "src": "9494:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 334, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9494:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "9476:33:0" - }, - "returnParameters": { - "id": 339, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 338, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "scope": 340, - "src": "9528:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 337, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "9528:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "9527:6:0" - }, - "scope": 371, - "src": "9460:74:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "documentation": { - "id": 341, - "nodeType": "StructuredDocumentation", - "src": "9540:296:0", - "text": " @dev Moves `amount` tokens from `sender` to `recipient` using the\n allowance mechanism. `amount` is then deducted from the caller's\n allowance.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event." - }, - "functionSelector": "23b872dd", - "id": 352, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 348, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 343, - "mutability": "mutable", - "name": "sender", - "nodeType": "VariableDeclaration", - "scope": 352, - "src": "9863:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 342, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9863:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 345, - "mutability": "mutable", - "name": "recipient", - "nodeType": "VariableDeclaration", - "scope": 352, - "src": "9879:17:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 344, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9879:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 347, - "mutability": "mutable", - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 352, - "src": "9898:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 346, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9898:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "9862:51:0" - }, - "returnParameters": { - "id": 351, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 350, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "scope": 352, - "src": "9932:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 349, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "9932:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "9931:6:0" - }, - "scope": 371, - "src": "9841:97:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "anonymous": false, - "documentation": { - "id": 353, - "nodeType": "StructuredDocumentation", - "src": "9944:158:0", - "text": " @dev Emitted when `value` tokens are moved from one account (`from`) to\n another (`to`).\n Note that `value` may be zero." - }, - "id": 361, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 360, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 355, - "indexed": true, - "mutability": "mutable", - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 361, - "src": "10122:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 354, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10122:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 357, - "indexed": true, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 361, - "src": "10144:18:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 356, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10144:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 359, - "indexed": false, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 361, - "src": "10164:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 358, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10164:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "10121:57:0" - }, - "src": "10107:72:0" - }, - { - "anonymous": false, - "documentation": { - "id": 362, - "nodeType": "StructuredDocumentation", - "src": "10185:148:0", - "text": " @dev Emitted when the allowance of a `spender` for an `owner` is set by\n a call to {approve}. `value` is the new allowance." - }, - "id": 370, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 369, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 364, - "indexed": true, - "mutability": "mutable", - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 370, - "src": "10353:21:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 363, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10353:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 366, - "indexed": true, - "mutability": "mutable", - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 370, - "src": "10376:23:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 365, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10376:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 368, - "indexed": false, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 370, - "src": "10401:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 367, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10401:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "10352:63:0" - }, - "src": "10338:78:0" - } - ], - "scope": 1008, - "src": "7852:2566:0" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": { - "id": 372, - "nodeType": "StructuredDocumentation", - "src": "10420:457:0", - "text": " @title SafeERC20\n @dev Wrappers around ERC20 operations that throw on failure (when the token\n contract returns false). Tokens that return no value (and instead revert or\n throw on failure) are also supported, non-reverting calls are assumed to be\n successful.\n To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\n which allows you to call the safe operations as `token.safeTransfer(...)`, etc." - }, - "fullyImplemented": true, - "id": 590, - "linearizedBaseContracts": [ - 590 - ], - "name": "SafeERC20", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 375, - "libraryName": { - "id": 373, - "name": "Address", - "nodeType": "IdentifierPath", - "referencedDeclaration": 295, - "src": "10908:7:0" - }, - "nodeType": "UsingForDirective", - "src": "10902:26:0", - "typeName": { - "id": 374, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10920:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - { - "body": { - "id": 397, - "nodeType": "Block", - "src": "11006:103:0", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 386, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 378, - "src": "11036:5:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - } - }, - { - "arguments": [ - { - "expression": { - "expression": { - "id": 389, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 378, - "src": "11066:5:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - } - }, - "id": 390, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 320, - "src": "11066:14:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 391, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "selector", - "nodeType": "MemberAccess", - "src": "11066:23:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - { - "id": 392, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 380, - "src": "11091:2:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 393, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 382, - "src": "11095:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 387, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4294967295, - "src": "11043:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 388, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodeWithSelector", - "nodeType": "MemberAccess", - "src": "11043:22:0", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (bytes4) pure returns (bytes memory)" - } - }, - "id": 394, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11043:58:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 385, - "name": "_callOptionalReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 589, - "src": "11016:19:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$371_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (contract IERC20,bytes memory)" - } - }, - "id": 395, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11016:86:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 396, - "nodeType": "ExpressionStatement", - "src": "11016:86:0" - } - ] - }, - "id": 398, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeTransfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 383, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 378, - "mutability": "mutable", - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 398, - "src": "10956:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - }, - "typeName": { - "id": 377, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 376, - "name": "IERC20", - "nodeType": "IdentifierPath", - "referencedDeclaration": 371, - "src": "10956:6:0" - }, - "referencedDeclaration": 371, - "src": "10956:6:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 380, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 398, - "src": "10970:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 379, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10970:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 382, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 398, - "src": "10982:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 381, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10982:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "10955:41:0" - }, - "returnParameters": { - "id": 384, - "nodeType": "ParameterList", - "parameters": [], - "src": "11006:0:0" - }, - "scope": 590, - "src": "10934:175:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 423, - "nodeType": "Block", - "src": "11205:113:0", - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 411, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 401, - "src": "11235:5:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - } - }, - { - "arguments": [ - { - "expression": { - "expression": { - "id": 414, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 401, - "src": "11265:5:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - } - }, - "id": 415, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 352, - "src": "11265:18:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,address,uint256) external returns (bool)" - } - }, - "id": 416, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "selector", - "nodeType": "MemberAccess", - "src": "11265:27:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - { - "id": 417, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 403, - "src": "11294:4:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 418, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 405, - "src": "11300:2:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 419, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 407, - "src": "11304:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 412, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4294967295, - "src": "11242:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 413, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodeWithSelector", - "nodeType": "MemberAccess", - "src": "11242:22:0", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (bytes4) pure returns (bytes memory)" - } - }, - "id": 420, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11242:68:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 410, - "name": "_callOptionalReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 589, - "src": "11215:19:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$371_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (contract IERC20,bytes memory)" - } - }, - "id": 421, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11215:96:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 422, - "nodeType": "ExpressionStatement", - "src": "11215:96:0" - } - ] - }, - "id": 424, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 408, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 401, - "mutability": "mutable", - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 424, - "src": "11141:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - }, - "typeName": { - "id": 400, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 399, - "name": "IERC20", - "nodeType": "IdentifierPath", - "referencedDeclaration": 371, - "src": "11141:6:0" - }, - "referencedDeclaration": 371, - "src": "11141:6:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 403, - "mutability": "mutable", - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 424, - "src": "11155:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 402, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11155:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 405, - "mutability": "mutable", - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 424, - "src": "11169:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 404, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11169:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 407, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 424, - "src": "11181:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 406, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11181:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "11140:55:0" - }, - "returnParameters": { - "id": 409, - "nodeType": "ParameterList", - "parameters": [], - "src": "11205:0:0" - }, - "scope": 590, - "src": "11115:203:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 467, - "nodeType": "Block", - "src": "11654:537:0", - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 451, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 438, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 436, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 432, - "src": "11943:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 437, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11952:1:0", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "11943:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 439, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "11942:12:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "components": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 449, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "arguments": [ - { - "id": 444, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4294967268, - "src": "11983:4:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeERC20_$590", - "typeString": "library SafeERC20" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_SafeERC20_$590", - "typeString": "library SafeERC20" - } - ], - "id": 443, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "11975:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 442, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11975:7:0", - "typeDescriptions": {} - } - }, - "id": 445, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11975:13:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 446, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 430, - "src": "11990:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 440, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 428, - "src": "11959:5:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - } - }, - "id": 441, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "allowance", - "nodeType": "MemberAccess", - "referencedDeclaration": 330, - "src": "11959:15:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address) view external returns (uint256)" - } - }, - "id": 447, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11959:39:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 448, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12002:1:0", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "11959:44:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 450, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "11958:46:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "11942:62:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e6365", - "id": 452, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12018:56:0", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ef945ddb1bfdc0da870feb4560d868b047642b4ac7f2fb7f8b7c51cb4a411e25", - "typeString": "literal_string \"SafeERC20: approve from non-zero to non-zero allowance\"" - }, - "value": "SafeERC20: approve from non-zero to non-zero allowance" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_ef945ddb1bfdc0da870feb4560d868b047642b4ac7f2fb7f8b7c51cb4a411e25", - "typeString": "literal_string \"SafeERC20: approve from non-zero to non-zero allowance\"" - } - ], - "id": 435, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4294967278, - 4294967278 - ], - "referencedDeclaration": 4294967278, - "src": "11934:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 453, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11934:150:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 454, - "nodeType": "ExpressionStatement", - "src": "11934:150:0" - }, - { - "expression": { - "arguments": [ - { - "id": 456, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 428, - "src": "12114:5:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - } - }, - { - "arguments": [ - { - "expression": { - "expression": { - "id": 459, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 428, - "src": "12144:5:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - } - }, - "id": 460, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "approve", - "nodeType": "MemberAccess", - "referencedDeclaration": 340, - "src": "12144:13:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 461, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "selector", - "nodeType": "MemberAccess", - "src": "12144:22:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - { - "id": 462, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 430, - "src": "12168:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 463, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 432, - "src": "12177:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 457, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4294967295, - "src": "12121:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 458, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodeWithSelector", - "nodeType": "MemberAccess", - "src": "12121:22:0", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (bytes4) pure returns (bytes memory)" - } - }, - "id": 464, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12121:62:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 455, - "name": "_callOptionalReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 589, - "src": "12094:19:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$371_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (contract IERC20,bytes memory)" - } - }, - "id": 465, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12094:90:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 466, - "nodeType": "ExpressionStatement", - "src": "12094:90:0" - } - ] - }, - "documentation": { - "id": 425, - "nodeType": "StructuredDocumentation", - "src": "11324:249:0", - "text": " @dev Deprecated. This function has issues similar to the ones found in\n {IERC20-approve}, and its usage is discouraged.\n Whenever possible, use {safeIncreaseAllowance} and\n {safeDecreaseAllowance} instead." - }, - "id": 468, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeApprove", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 433, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 428, - "mutability": "mutable", - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 468, - "src": "11599:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - }, - "typeName": { - "id": 427, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 426, - "name": "IERC20", - "nodeType": "IdentifierPath", - "referencedDeclaration": 371, - "src": "11599:6:0" - }, - "referencedDeclaration": 371, - "src": "11599:6:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 430, - "mutability": "mutable", - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 468, - "src": "11613:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 429, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11613:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 432, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 468, - "src": "11630:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 431, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11630:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "11598:46:0" - }, - "returnParameters": { - "id": 434, - "nodeType": "ParameterList", - "parameters": [], - "src": "11654:0:0" - }, - "scope": 590, - "src": "11578:613:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 503, - "nodeType": "Block", - "src": "12283:194:0", - "statements": [ - { - "assignments": [ - 479 - ], - "declarations": [ - { - "constant": false, - "id": 479, - "mutability": "mutable", - "name": "newAllowance", - "nodeType": "VariableDeclaration", - "scope": 503, - "src": "12293:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 478, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12293:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 490, - "initialValue": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 489, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "arguments": [ - { - "id": 484, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4294967268, - "src": "12340:4:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeERC20_$590", - "typeString": "library SafeERC20" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_SafeERC20_$590", - "typeString": "library SafeERC20" - } - ], - "id": 483, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "12332:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 482, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12332:7:0", - "typeDescriptions": {} - } - }, - "id": 485, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12332:13:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 486, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 473, - "src": "12347:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 480, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 471, - "src": "12316:5:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - } - }, - "id": 481, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "allowance", - "nodeType": "MemberAccess", - "referencedDeclaration": 330, - "src": "12316:15:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address) view external returns (uint256)" - } - }, - "id": 487, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12316:39:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "id": 488, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 475, - "src": "12358:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "12316:47:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "12293:70:0" - }, - { - "expression": { - "arguments": [ - { - "id": 492, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 471, - "src": "12393:5:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - } - }, - { - "arguments": [ - { - "expression": { - "expression": { - "id": 495, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 471, - "src": "12423:5:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - } - }, - "id": 496, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "approve", - "nodeType": "MemberAccess", - "referencedDeclaration": 340, - "src": "12423:13:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 497, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "selector", - "nodeType": "MemberAccess", - "src": "12423:22:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - { - "id": 498, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 473, - "src": "12447:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 499, - "name": "newAllowance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 479, - "src": "12456:12:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 493, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4294967295, - "src": "12400:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 494, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodeWithSelector", - "nodeType": "MemberAccess", - "src": "12400:22:0", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (bytes4) pure returns (bytes memory)" - } - }, - "id": 500, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12400:69:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 491, - "name": "_callOptionalReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 589, - "src": "12373:19:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$371_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (contract IERC20,bytes memory)" - } - }, - "id": 501, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12373:97:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 502, - "nodeType": "ExpressionStatement", - "src": "12373:97:0" - } - ] - }, - "id": 504, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeIncreaseAllowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 476, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 471, - "mutability": "mutable", - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 504, - "src": "12228:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - }, - "typeName": { - "id": 470, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 469, - "name": "IERC20", - "nodeType": "IdentifierPath", - "referencedDeclaration": 371, - "src": "12228:6:0" - }, - "referencedDeclaration": 371, - "src": "12228:6:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 473, - "mutability": "mutable", - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 504, - "src": "12242:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 472, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12242:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 475, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 504, - "src": "12259:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 474, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12259:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "12227:46:0" - }, - "returnParameters": { - "id": 477, - "nodeType": "ParameterList", - "parameters": [], - "src": "12283:0:0" - }, - "scope": 590, - "src": "12197:280:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 550, - "nodeType": "Block", - "src": "12569:340:0", - "statements": [ - { - "assignments": [ - 515 - ], - "declarations": [ - { - "constant": false, - "id": 515, - "mutability": "mutable", - "name": "oldAllowance", - "nodeType": "VariableDeclaration", - "scope": 550, - "src": "12583:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 514, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12583:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 524, - "initialValue": { - "arguments": [ - { - "arguments": [ - { - "id": 520, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4294967268, - "src": "12630:4:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeERC20_$590", - "typeString": "library SafeERC20" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_SafeERC20_$590", - "typeString": "library SafeERC20" - } - ], - "id": 519, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "12622:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 518, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12622:7:0", - "typeDescriptions": {} - } - }, - "id": 521, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12622:13:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 522, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 509, - "src": "12637:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 516, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 507, - "src": "12606:5:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - } - }, - "id": 517, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "allowance", - "nodeType": "MemberAccess", - "referencedDeclaration": 330, - "src": "12606:15:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address) view external returns (uint256)" - } - }, - "id": 523, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12606:39:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "12583:62:0" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 528, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 526, - "name": "oldAllowance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 515, - "src": "12667:12:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "id": 527, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 511, - "src": "12683:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "12667:21:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "5361666545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f", - "id": 529, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12690:43:0", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_2c3af60974a758b7e72e108c9bf0943ecc9e4f2e8af4695da5f52fbf57a63d3a", - "typeString": "literal_string \"SafeERC20: decreased allowance below zero\"" - }, - "value": "SafeERC20: decreased allowance below zero" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_2c3af60974a758b7e72e108c9bf0943ecc9e4f2e8af4695da5f52fbf57a63d3a", - "typeString": "literal_string \"SafeERC20: decreased allowance below zero\"" - } - ], - "id": 525, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4294967278, - 4294967278 - ], - "referencedDeclaration": 4294967278, - "src": "12659:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 530, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12659:75:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 531, - "nodeType": "ExpressionStatement", - "src": "12659:75:0" - }, - { - "assignments": [ - 533 - ], - "declarations": [ - { - "constant": false, - "id": 533, - "mutability": "mutable", - "name": "newAllowance", - "nodeType": "VariableDeclaration", - "scope": 550, - "src": "12748:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 532, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12748:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 537, - "initialValue": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 536, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 534, - "name": "oldAllowance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 515, - "src": "12771:12:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "id": 535, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 511, - "src": "12786:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "12771:20:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "12748:43:0" - }, - { - "expression": { - "arguments": [ - { - "id": 539, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 507, - "src": "12825:5:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - } - }, - { - "arguments": [ - { - "expression": { - "expression": { - "id": 542, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 507, - "src": "12855:5:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - } - }, - "id": 543, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "approve", - "nodeType": "MemberAccess", - "referencedDeclaration": 340, - "src": "12855:13:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 544, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "selector", - "nodeType": "MemberAccess", - "src": "12855:22:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - { - "id": 545, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 509, - "src": "12879:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 546, - "name": "newAllowance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 533, - "src": "12888:12:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 540, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4294967295, - "src": "12832:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 541, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodeWithSelector", - "nodeType": "MemberAccess", - "src": "12832:22:0", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (bytes4) pure returns (bytes memory)" - } - }, - "id": 547, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12832:69:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 538, - "name": "_callOptionalReturn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 589, - "src": "12805:19:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$371_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (contract IERC20,bytes memory)" - } - }, - "id": 548, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12805:97:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 549, - "nodeType": "ExpressionStatement", - "src": "12805:97:0" - } - ] - }, - "id": 551, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "safeDecreaseAllowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 512, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 507, - "mutability": "mutable", - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 551, - "src": "12514:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - }, - "typeName": { - "id": 506, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 505, - "name": "IERC20", - "nodeType": "IdentifierPath", - "referencedDeclaration": 371, - "src": "12514:6:0" - }, - "referencedDeclaration": 371, - "src": "12514:6:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 509, - "mutability": "mutable", - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 551, - "src": "12528:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 508, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12528:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 511, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 551, - "src": "12545:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 510, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12545:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "12513:46:0" - }, - "returnParameters": { - "id": 513, - "nodeType": "ParameterList", - "parameters": [], - "src": "12569:0:0" - }, - "scope": 590, - "src": "12483:426:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 588, - "nodeType": "Block", - "src": "13362:681:0", - "statements": [ - { - "assignments": [ - 561 - ], - "declarations": [ - { - "constant": false, - "id": 561, - "mutability": "mutable", - "name": "returndata", - "nodeType": "VariableDeclaration", - "scope": 588, - "src": "13711:23:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 560, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "13711:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "id": 570, - "initialValue": { - "arguments": [ - { - "id": 567, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 557, - "src": "13765:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "hexValue": "5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564", - "id": 568, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13771:34:0", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_47fb62c2c272651d2f0f342bac006756b8ba07f21cc5cb87e0fbb9d50c0c585b", - "typeString": "literal_string \"SafeERC20: low-level call failed\"" - }, - "value": "SafeERC20: low-level call failed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_stringliteral_47fb62c2c272651d2f0f342bac006756b8ba07f21cc5cb87e0fbb9d50c0c585b", - "typeString": "literal_string \"SafeERC20: low-level call failed\"" - } - ], - "expression": { - "arguments": [ - { - "id": 564, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 555, - "src": "13745:5:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - } - ], - "id": 563, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13737:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 562, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13737:7:0", - "typeDescriptions": {} - } - }, - "id": 565, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13737:14:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 566, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "functionCall", - "nodeType": "MemberAccess", - "referencedDeclaration": 90, - "src": "13737:27:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$bound_to$_t_address_$", - "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" - } - }, - "id": 569, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13737:69:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13711:95:0" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 574, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 571, - "name": "returndata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 561, - "src": "13820:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 572, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "src": "13820:17:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 573, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13840:1:0", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "13820:21:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 587, - "nodeType": "IfStatement", - "src": "13816:221:0", - "trueBody": { - "id": 586, - "nodeType": "Block", - "src": "13843:194:0", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 578, - "name": "returndata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 561, - "src": "13960:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "components": [ - { - "id": 580, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13973:4:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bool_$", - "typeString": "type(bool)" - }, - "typeName": { - "id": 579, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "13973:4:0", - "typeDescriptions": {} - } - } - ], - "id": 581, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "13972:6:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bool_$", - "typeString": "type(bool)" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_type$_t_bool_$", - "typeString": "type(bool)" - } - ], - "expression": { - "id": 576, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4294967295, - "src": "13949:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 577, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "decode", - "nodeType": "MemberAccess", - "src": "13949:10:0", - "typeDescriptions": { - "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 582, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13949:30:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "5361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564", - "id": 583, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13981:44:0", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd", - "typeString": "literal_string \"SafeERC20: ERC20 operation did not succeed\"" - }, - "value": "SafeERC20: ERC20 operation did not succeed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd", - "typeString": "literal_string \"SafeERC20: ERC20 operation did not succeed\"" - } - ], - "id": 575, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4294967278, - 4294967278 - ], - "referencedDeclaration": 4294967278, - "src": "13941:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 584, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13941:85:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 585, - "nodeType": "ExpressionStatement", - "src": "13941:85:0" - } - ] - } - } - ] - }, - "documentation": { - "id": 552, - "nodeType": "StructuredDocumentation", - "src": "12915:372:0", - "text": " @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n on the return value: the return value is optional (but if data is returned, it must not be false).\n @param token The token targeted by the call.\n @param data The call data (encoded using abi.encode or one of its variants)." - }, - "id": 589, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_callOptionalReturn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 558, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 555, - "mutability": "mutable", - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 589, - "src": "13321:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - }, - "typeName": { - "id": 554, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 553, - "name": "IERC20", - "nodeType": "IdentifierPath", - "referencedDeclaration": 371, - "src": "13321:6:0" - }, - "referencedDeclaration": 371, - "src": "13321:6:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 557, - "mutability": "mutable", - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 589, - "src": "13335:17:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 556, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "13335:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "src": "13320:33:0" - }, - "returnParameters": { - "id": 559, - "nodeType": "ParameterList", - "parameters": [], - "src": "13362:0:0" - }, - "scope": 590, - "src": "13292:751:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "private" - } - ], - "scope": 1008, - "src": "10878:3167:0" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "fullyImplemented": true, - "id": 1007, - "linearizedBaseContracts": [ - 1007 - ], - "name": "HashedTimeLockContract", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 594, - "libraryName": { - "id": 591, - "name": "SafeERC20", - "nodeType": "IdentifierPath", - "referencedDeclaration": 590, - "src": "14091:9:0" - }, - "nodeType": "UsingForDirective", - "src": "14085:27:0", - "typeName": { - "id": 593, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 592, - "name": "IERC20", - "nodeType": "IdentifierPath", - "referencedDeclaration": 371, - "src": "14105:6:0" - }, - "referencedDeclaration": 371, - "src": "14105:6:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - } - } - }, - { - "constant": false, - "functionSelector": "ec56a373", - "id": 599, - "mutability": "mutable", - "name": "contracts", - "nodeType": "VariableDeclaration", - "scope": 1007, - "src": "14117:49:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_LockContract_$635_storage_$", - "typeString": "mapping(bytes32 => struct HashedTimeLockContract.LockContract)" - }, - "typeName": { - "id": 598, - "keyType": { - "id": 595, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "14125:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "14117:32:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_LockContract_$635_storage_$", - "typeString": "mapping(bytes32 => struct HashedTimeLockContract.LockContract)" - }, - "valueType": { - "id": 597, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 596, - "name": "LockContract", - "nodeType": "IdentifierPath", - "referencedDeclaration": 635, - "src": "14136:12:0" - }, - "referencedDeclaration": 635, - "src": "14136:12:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", - "typeString": "struct HashedTimeLockContract.LockContract" - } - } - }, - "visibility": "public" - }, - { - "constant": true, - "functionSelector": "7fcce2a9", - "id": 602, - "mutability": "constant", - "name": "INVALID", - "nodeType": "VariableDeclaration", - "scope": 1007, - "src": "14287:35:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 600, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14287:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "hexValue": "30", - "id": 601, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14321:1:0", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "visibility": "public" - }, - { - "constant": true, - "functionSelector": "c90bd047", - "id": 605, - "mutability": "constant", - "name": "ACTIVE", - "nodeType": "VariableDeclaration", - "scope": 1007, - "src": "14371:34:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 603, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14371:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "hexValue": "31", - "id": 604, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14404:1:0", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "visibility": "public" - }, - { - "constant": true, - "functionSelector": "94e15c8f", - "id": 608, - "mutability": "constant", - "name": "REFUNDED", - "nodeType": "VariableDeclaration", - "scope": 1007, - "src": "14460:36:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 606, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14460:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "hexValue": "32", - "id": 607, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14495:1:0", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "visibility": "public" - }, - { - "constant": true, - "functionSelector": "af78feef", - "id": 611, - "mutability": "constant", - "name": "WITHDRAWN", - "nodeType": "VariableDeclaration", - "scope": 1007, - "src": "14538:37:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 609, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14538:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "hexValue": "33", - "id": 610, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14574:1:0", - "typeDescriptions": { - "typeIdentifier": "t_rational_3_by_1", - "typeString": "int_const 3" - }, - "value": "3" - }, - "visibility": "public" - }, - { - "constant": true, - "functionSelector": "414ac85b", - "id": 614, - "mutability": "constant", - "name": "EXPIRED", - "nodeType": "VariableDeclaration", - "scope": 1007, - "src": "14618:35:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 612, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14618:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "hexValue": "34", - "id": 613, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14652:1:0", - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "value": "4" - }, - "visibility": "public" - }, - { - "canonicalName": "HashedTimeLockContract.LockContract", - "id": 635, - "members": [ - { - "constant": false, - "id": 616, - "mutability": "mutable", - "name": "inputAmount", - "nodeType": "VariableDeclaration", - "scope": 635, - "src": "14731:19:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 615, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14731:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 618, - "mutability": "mutable", - "name": "outputAmount", - "nodeType": "VariableDeclaration", - "scope": 635, - "src": "14760:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 617, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14760:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 620, - "mutability": "mutable", - "name": "expiration", - "nodeType": "VariableDeclaration", - "scope": 635, - "src": "14790:18:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 619, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14790:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 622, - "mutability": "mutable", - "name": "status", - "nodeType": "VariableDeclaration", - "scope": 635, - "src": "14818:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 621, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14818:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 624, - "mutability": "mutable", - "name": "hashLock", - "nodeType": "VariableDeclaration", - "scope": 635, - "src": "14842:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 623, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "14842:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 626, - "mutability": "mutable", - "name": "tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 635, - "src": "14868:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 625, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14868:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 628, - "mutability": "mutable", - "name": "sender", - "nodeType": "VariableDeclaration", - "scope": 635, - "src": "14898:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 627, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14898:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 630, - "mutability": "mutable", - "name": "receiver", - "nodeType": "VariableDeclaration", - "scope": 635, - "src": "14922:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 629, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14922:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 632, - "mutability": "mutable", - "name": "outputNetwork", - "nodeType": "VariableDeclaration", - "scope": 635, - "src": "14948:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 631, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "14948:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 634, - "mutability": "mutable", - "name": "outputAddress", - "nodeType": "VariableDeclaration", - "scope": 635, - "src": "14978:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 633, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "14978:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "name": "LockContract", - "nodeType": "StructDefinition", - "scope": 1007, - "src": "14701:304:0", - "visibility": "public" - }, - { - "anonymous": false, - "id": 649, - "name": "Withdraw", - "nodeType": "EventDefinition", - "parameters": { - "id": 648, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 637, - "indexed": false, - "mutability": "mutable", - "name": "id", - "nodeType": "VariableDeclaration", - "scope": 649, - "src": "15035:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 636, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "15035:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 639, - "indexed": false, - "mutability": "mutable", - "name": "secret", - "nodeType": "VariableDeclaration", - "scope": 649, - "src": "15055:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 638, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "15055:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 641, - "indexed": false, - "mutability": "mutable", - "name": "hashLock", - "nodeType": "VariableDeclaration", - "scope": 649, - "src": "15079:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 640, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "15079:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 643, - "indexed": true, - "mutability": "mutable", - "name": "tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 649, - "src": "15105:28:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 642, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15105:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 645, - "indexed": true, - "mutability": "mutable", - "name": "sender", - "nodeType": "VariableDeclaration", - "scope": 649, - "src": "15143:22:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 644, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15143:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 647, - "indexed": true, - "mutability": "mutable", - "name": "receiver", - "nodeType": "VariableDeclaration", - "scope": 649, - "src": "15175:24:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 646, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15175:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "15025:180:0" - }, - "src": "15011:195:0" - }, - { - "anonymous": false, - "id": 661, - "name": "Refund", - "nodeType": "EventDefinition", - "parameters": { - "id": 660, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 651, - "indexed": false, - "mutability": "mutable", - "name": "id", - "nodeType": "VariableDeclaration", - "scope": 661, - "src": "15234:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 650, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "15234:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 653, - "indexed": false, - "mutability": "mutable", - "name": "hashLock", - "nodeType": "VariableDeclaration", - "scope": 661, - "src": "15254:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 652, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "15254:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 655, - "indexed": true, - "mutability": "mutable", - "name": "tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 661, - "src": "15280:28:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 654, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15280:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 657, - "indexed": true, - "mutability": "mutable", - "name": "sender", - "nodeType": "VariableDeclaration", - "scope": 661, - "src": "15318:22:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 656, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15318:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 659, - "indexed": true, - "mutability": "mutable", - "name": "receiver", - "nodeType": "VariableDeclaration", - "scope": 661, - "src": "15350:24:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 658, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15350:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "15224:156:0" - }, - "src": "15212:169:0" - }, - { - "anonymous": false, - "id": 683, - "name": "NewContract", - "nodeType": "EventDefinition", - "parameters": { - "id": 682, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 663, - "indexed": false, - "mutability": "mutable", - "name": "inputAmount", - "nodeType": "VariableDeclaration", - "scope": 683, - "src": "15414:19:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 662, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15414:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 665, - "indexed": false, - "mutability": "mutable", - "name": "outputAmount", - "nodeType": "VariableDeclaration", - "scope": 683, - "src": "15443:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 664, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15443:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 667, - "indexed": false, - "mutability": "mutable", - "name": "expiration", - "nodeType": "VariableDeclaration", - "scope": 683, - "src": "15473:18:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 666, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15473:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 669, - "indexed": false, - "mutability": "mutable", - "name": "id", - "nodeType": "VariableDeclaration", - "scope": 683, - "src": "15501:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 668, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "15501:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 671, - "indexed": false, - "mutability": "mutable", - "name": "hashLock", - "nodeType": "VariableDeclaration", - "scope": 683, - "src": "15521:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 670, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "15521:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 673, - "indexed": true, - "mutability": "mutable", - "name": "tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 683, - "src": "15547:28:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 672, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15547:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 675, - "indexed": true, - "mutability": "mutable", - "name": "sender", - "nodeType": "VariableDeclaration", - "scope": 683, - "src": "15585:22:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 674, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15585:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 677, - "indexed": true, - "mutability": "mutable", - "name": "receiver", - "nodeType": "VariableDeclaration", - "scope": 683, - "src": "15617:24:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 676, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15617:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 679, - "indexed": false, - "mutability": "mutable", - "name": "outputNetwork", - "nodeType": "VariableDeclaration", - "scope": 683, - "src": "15651:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 678, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "15651:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 681, - "indexed": false, - "mutability": "mutable", - "name": "outputAddress", - "nodeType": "VariableDeclaration", - "scope": 683, - "src": "15681:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 680, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "15681:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "15404:303:0" - }, - "src": "15387:321:0" - }, - { - "body": { - "id": 787, - "nodeType": "Block", - "src": "15997:1095:0", - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 706, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 703, - "name": "expiration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 689, - "src": "16015:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "id": 704, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4294967292, - "src": "16028:5:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 705, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "src": "16028:15:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16015:28:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "494e56414c49445f54494d45", - "id": 707, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16045:14:0", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b98f3e47db5919a8c78ec10ff6bf7d1326066d3facdc164cf7441d38cae771df", - "typeString": "literal_string \"INVALID_TIME\"" - }, - "value": "INVALID_TIME" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b98f3e47db5919a8c78ec10ff6bf7d1326066d3facdc164cf7441d38cae771df", - "typeString": "literal_string \"INVALID_TIME\"" - } - ], - "id": 702, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4294967278, - 4294967278 - ], - "referencedDeclaration": 4294967278, - "src": "16007:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16007:53:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 709, - "nodeType": "ExpressionStatement", - "src": "16007:53:0" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 711, - "name": "inputAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 685, - "src": "16079:11:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 712, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16093:1:0", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "16079:15:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "494e56414c49445f414d4f554e54", - "id": 714, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16096:16:0", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_eb6dbbf3194e9f4dd39c8dabe51ddb59ca6ad00c50b1bc74675ce4b263687722", - "typeString": "literal_string \"INVALID_AMOUNT\"" - }, - "value": "INVALID_AMOUNT" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_eb6dbbf3194e9f4dd39c8dabe51ddb59ca6ad00c50b1bc74675ce4b263687722", - "typeString": "literal_string \"INVALID_AMOUNT\"" - } - ], - "id": 710, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4294967278, - 4294967278 - ], - "referencedDeclaration": 4294967278, - "src": "16071:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 715, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16071:42:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 716, - "nodeType": "ExpressionStatement", - "src": "16071:42:0" - }, - { - "expression": { - "arguments": [ - { - "expression": { - "id": 721, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4294967281, - "src": "16158:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 722, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "16158:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [ - { - "id": 725, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4294967268, - "src": "16178:4:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_HashedTimeLockContract_$1007", - "typeString": "contract HashedTimeLockContract" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_HashedTimeLockContract_$1007", - "typeString": "contract HashedTimeLockContract" - } - ], - "id": 724, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "16170:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 723, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16170:7:0", - "typeDescriptions": {} - } - }, - "id": 726, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16170:13:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 727, - "name": "inputAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 685, - "src": "16185:11:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "arguments": [ - { - "id": 718, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 693, - "src": "16131:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 717, - "name": "IERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 371, - "src": "16124:6:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$371_$", - "typeString": "type(contract IERC20)" - } - }, - "id": 719, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16124:20:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - } - }, - "id": 720, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 352, - "src": "16124:33:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,address,uint256) external returns (bool)" - } - }, - "id": 728, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16124:73:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 729, - "nodeType": "ExpressionStatement", - "src": "16124:73:0" - }, - { - "assignments": [ - 731 - ], - "declarations": [ - { - "constant": false, - "id": 731, - "mutability": "mutable", - "name": "id", - "nodeType": "VariableDeclaration", - "scope": 787, - "src": "16208:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 730, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "16208:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "id": 744, - "initialValue": { - "arguments": [ - { - "arguments": [ - { - "expression": { - "id": 735, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4294967281, - "src": "16278:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 736, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "16278:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 737, - "name": "receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 695, - "src": "16306:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 738, - "name": "inputAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 685, - "src": "16332:11:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 739, - "name": "hashLock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 691, - "src": "16361:8:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 740, - "name": "expiration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 689, - "src": "16387:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 741, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 693, - "src": "16415:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 733, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4294967295, - "src": "16244:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 734, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "src": "16244:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 742, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16244:197:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 732, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4294967288, - "src": "16221:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 743, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16221:230:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "16208:243:0" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 751, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "baseExpression": { - "id": 746, - "name": "contracts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 599, - "src": "16470:9:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_LockContract_$635_storage_$", - "typeString": "mapping(bytes32 => struct HashedTimeLockContract.LockContract storage ref)" - } - }, - "id": 748, - "indexExpression": { - "id": 747, - "name": "id", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 731, - "src": "16480:2:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16470:13:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_storage", - "typeString": "struct HashedTimeLockContract.LockContract storage ref" - } - }, - "id": 749, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "status", - "nodeType": "MemberAccess", - "referencedDeclaration": 622, - "src": "16470:20:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "id": 750, - "name": "INVALID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 602, - "src": "16494:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16470:31:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "535741505f455849535453", - "id": 752, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16503:13:0", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_10858945dd31484ce6a77564821a1a6ff0e82939d9bea2b8e6caae50c7fc3750", - "typeString": "literal_string \"SWAP_EXISTS\"" - }, - "value": "SWAP_EXISTS" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_10858945dd31484ce6a77564821a1a6ff0e82939d9bea2b8e6caae50c7fc3750", - "typeString": "literal_string \"SWAP_EXISTS\"" - } - ], - "id": 745, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4294967278, - 4294967278 - ], - "referencedDeclaration": 4294967278, - "src": "16462:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 753, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16462:55:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 754, - "nodeType": "ExpressionStatement", - "src": "16462:55:0" - }, - { - "expression": { - "id": 771, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 755, - "name": "contracts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 599, - "src": "16528:9:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_LockContract_$635_storage_$", - "typeString": "mapping(bytes32 => struct HashedTimeLockContract.LockContract storage ref)" - } - }, - "id": 757, - "indexExpression": { - "id": 756, - "name": "id", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 731, - "src": "16538:2:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "16528:13:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_storage", - "typeString": "struct HashedTimeLockContract.LockContract storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 759, - "name": "inputAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 685, - "src": "16570:11:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 760, - "name": "outputAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 687, - "src": "16595:12:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 761, - "name": "expiration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 689, - "src": "16621:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 762, - "name": "ACTIVE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 605, - "src": "16645:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 763, - "name": "hashLock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 691, - "src": "16665:8:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 764, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 693, - "src": "16687:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 765, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4294967281, - "src": "16713:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 766, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "16713:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 767, - "name": "receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 695, - "src": "16737:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 768, - "name": "outputNetwork", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 697, - "src": "16759:13:0", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - { - "id": 769, - "name": "outputAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 699, - "src": "16786:13:0", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - }, - { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - ], - "id": 758, - "name": "LockContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 635, - "src": "16544:12:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_LockContract_$635_storage_ptr_$", - "typeString": "type(struct HashedTimeLockContract.LockContract storage pointer)" - } - }, - "id": 770, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16544:265:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_memory_ptr", - "typeString": "struct HashedTimeLockContract.LockContract memory" - } - }, - "src": "16528:281:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_storage", - "typeString": "struct HashedTimeLockContract.LockContract storage ref" - } - }, - "id": 772, - "nodeType": "ExpressionStatement", - "src": "16528:281:0" - }, - { - "eventCall": { - "arguments": [ - { - "id": 774, - "name": "inputAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 685, - "src": "16850:11:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 775, - "name": "outputAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 687, - "src": "16875:12:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 776, - "name": "expiration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 689, - "src": "16901:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 777, - "name": "id", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 731, - "src": "16925:2:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 778, - "name": "hashLock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 691, - "src": "16941:8:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 779, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 693, - "src": "16963:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 780, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4294967281, - "src": "16989:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 781, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "16989:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 782, - "name": "receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 695, - "src": "17013:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 783, - "name": "outputNetwork", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 697, - "src": "17035:13:0", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - { - "id": 784, - "name": "outputAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 699, - "src": "17062:13:0", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - }, - { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - ], - "id": 773, - "name": "NewContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 683, - "src": "16825:11:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_bytes32_$_t_bytes32_$_t_address_$_t_address_$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (uint256,uint256,uint256,bytes32,bytes32,address,address,address,string memory,string memory)" - } - }, - "id": 785, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16825:260:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 786, - "nodeType": "EmitStatement", - "src": "16820:265:0" - } - ] - }, - "functionSelector": "d2fd8b76", - "id": 788, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "newContract", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 700, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 685, - "mutability": "mutable", - "name": "inputAmount", - "nodeType": "VariableDeclaration", - "scope": 788, - "src": "15744:19:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 684, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15744:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 687, - "mutability": "mutable", - "name": "outputAmount", - "nodeType": "VariableDeclaration", - "scope": 788, - "src": "15773:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 686, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15773:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 689, - "mutability": "mutable", - "name": "expiration", - "nodeType": "VariableDeclaration", - "scope": 788, - "src": "15803:18:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 688, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15803:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 691, - "mutability": "mutable", - "name": "hashLock", - "nodeType": "VariableDeclaration", - "scope": 788, - "src": "15831:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 690, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "15831:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 693, - "mutability": "mutable", - "name": "tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 788, - "src": "15857:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 692, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15857:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 695, - "mutability": "mutable", - "name": "receiver", - "nodeType": "VariableDeclaration", - "scope": 788, - "src": "15887:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 694, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15887:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 697, - "mutability": "mutable", - "name": "outputNetwork", - "nodeType": "VariableDeclaration", - "scope": 788, - "src": "15913:29:0", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 696, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "15913:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 699, - "mutability": "mutable", - "name": "outputAddress", - "nodeType": "VariableDeclaration", - "scope": 788, - "src": "15952:29:0", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 698, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "15952:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "15734:253:0" - }, - "returnParameters": { - "id": 701, - "nodeType": "ParameterList", - "parameters": [], - "src": "15997:0:0" - }, - "scope": 1007, - "src": "15714:1378:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 862, - "nodeType": "Block", - "src": "17165:564:0", - "statements": [ - { - "assignments": [ - 797 - ], - "declarations": [ - { - "constant": false, - "id": 797, - "mutability": "mutable", - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 862, - "src": "17175:22:0", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", - "typeString": "struct HashedTimeLockContract.LockContract" - }, - "typeName": { - "id": 796, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 795, - "name": "LockContract", - "nodeType": "IdentifierPath", - "referencedDeclaration": 635, - "src": "17175:12:0" - }, - "referencedDeclaration": 635, - "src": "17175:12:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", - "typeString": "struct HashedTimeLockContract.LockContract" - } - }, - "visibility": "internal" - } - ], - "id": 801, - "initialValue": { - "baseExpression": { - "id": 798, - "name": "contracts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 599, - "src": "17200:9:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_LockContract_$635_storage_$", - "typeString": "mapping(bytes32 => struct HashedTimeLockContract.LockContract storage ref)" - } - }, - "id": 800, - "indexExpression": { - "id": 799, - "name": "id", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 790, - "src": "17210:2:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17200:13:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_storage", - "typeString": "struct HashedTimeLockContract.LockContract storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "17175:38:0" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 806, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 803, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 797, - "src": "17232:1:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", - "typeString": "struct HashedTimeLockContract.LockContract storage pointer" - } - }, - "id": 804, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "status", - "nodeType": "MemberAccess", - "referencedDeclaration": 622, - "src": "17232:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "id": 805, - "name": "ACTIVE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 605, - "src": "17244:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "17232:18:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "535741505f4e4f545f414354495645", - "id": 807, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17252:17:0", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_afbfa7d3db262df0c92c413f0113503b1c1332dc5a4a874fcd8d6a6de57b74dd", - "typeString": "literal_string \"SWAP_NOT_ACTIVE\"" - }, - "value": "SWAP_NOT_ACTIVE" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_afbfa7d3db262df0c92c413f0113503b1c1332dc5a4a874fcd8d6a6de57b74dd", - "typeString": "literal_string \"SWAP_NOT_ACTIVE\"" - } - ], - "id": 802, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4294967278, - 4294967278 - ], - "referencedDeclaration": 4294967278, - "src": "17224:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 808, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17224:46:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 809, - "nodeType": "ExpressionStatement", - "src": "17224:46:0" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 815, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 811, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 797, - "src": "17289:1:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", - "typeString": "struct HashedTimeLockContract.LockContract storage pointer" - } - }, - "id": 812, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "expiration", - "nodeType": "MemberAccess", - "referencedDeclaration": 620, - "src": "17289:12:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "id": 813, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4294967292, - "src": "17304:5:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 814, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "src": "17304:15:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "17289:30:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "494e56414c49445f54494d45", - "id": 816, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17321:14:0", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b98f3e47db5919a8c78ec10ff6bf7d1326066d3facdc164cf7441d38cae771df", - "typeString": "literal_string \"INVALID_TIME\"" - }, - "value": "INVALID_TIME" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b98f3e47db5919a8c78ec10ff6bf7d1326066d3facdc164cf7441d38cae771df", - "typeString": "literal_string \"INVALID_TIME\"" - } - ], - "id": 810, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4294967278, - 4294967278 - ], - "referencedDeclaration": 4294967278, - "src": "17281:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 817, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17281:55:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 818, - "nodeType": "ExpressionStatement", - "src": "17281:55:0" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "id": 828, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 820, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 797, - "src": "17368:1:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", - "typeString": "struct HashedTimeLockContract.LockContract storage pointer" - } - }, - "id": 821, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "hashLock", - "nodeType": "MemberAccess", - "referencedDeclaration": 624, - "src": "17368:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "arguments": [ - { - "arguments": [ { - "id": 825, - "name": "secret", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "17406:6:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 751, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "id": 746, + "name": "contracts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 599, + "src": "16503:9:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_LockContract_$635_storage_$", + "typeString": "mapping(bytes32 => struct HashedTimeLockContract.LockContract storage ref)" + } + }, + "id": 748, + "indexExpression": { + "id": 747, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 731, + "src": "16513:2:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "16503:13:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$635_storage", + "typeString": "struct HashedTimeLockContract.LockContract storage ref" + } + }, + "id": 749, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "16517:6:0", + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 622, + "src": "16503:20:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 750, + "name": "INVALID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 602, + "src": "16527:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16503:31:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "535741505f455849535453", + "id": 752, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16536:13:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_10858945dd31484ce6a77564821a1a6ff0e82939d9bea2b8e6caae50c7fc3750", + "typeString": "literal_string \"SWAP_EXISTS\"" + }, + "value": "SWAP_EXISTS" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_10858945dd31484ce6a77564821a1a6ff0e82939d9bea2b8e6caae50c7fc3750", + "typeString": "literal_string \"SWAP_EXISTS\"" + } + ], + "id": 745, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "16495:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 753, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16495:55:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 754, + "nodeType": "ExpressionStatement", + "src": "16495:55:0" + }, + { + "expression": { + "id": 771, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 755, + "name": "contracts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 599, + "src": "16561:9:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_LockContract_$635_storage_$", + "typeString": "mapping(bytes32 => struct HashedTimeLockContract.LockContract storage ref)" + } + }, + "id": 757, + "indexExpression": { + "id": 756, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 731, + "src": "16571:2:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "16561:13:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$635_storage", + "typeString": "struct HashedTimeLockContract.LockContract storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 759, + "name": "inputAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 685, + "src": "16603:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 760, + "name": "outputAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 687, + "src": "16628:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 761, + "name": "expiration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 689, + "src": "16654:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 762, + "name": "ACTIVE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 605, + "src": "16678:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 763, + "name": "hashLock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 691, + "src": "16698:8:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 764, + "name": "tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 693, + "src": "16720:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 765, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "16746:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "16750:6:0", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "16746:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 767, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 695, + "src": "16770:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 768, + "name": "outputNetwork", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 697, + "src": "16792:13:0", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + }, + { + "id": 769, + "name": "outputAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 699, + "src": "16819:13:0", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + }, + { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + ], + "id": 758, + "name": "LockContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 635, + "src": "16577:12:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_LockContract_$635_storage_ptr_$", + "typeString": "type(struct HashedTimeLockContract.LockContract storage pointer)" + } + }, + "id": 770, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16577:265:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$635_memory_ptr", + "typeString": "struct HashedTimeLockContract.LockContract memory" + } + }, + "src": "16561:281:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$635_storage", + "typeString": "struct HashedTimeLockContract.LockContract storage ref" + } + }, + "id": 772, + "nodeType": "ExpressionStatement", + "src": "16561:281:0" + }, + { + "eventCall": { + "arguments": [ + { + "id": 774, + "name": "inputAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 685, + "src": "16883:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 775, + "name": "outputAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 687, + "src": "16908:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 776, + "name": "expiration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 689, + "src": "16934:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 777, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 731, + "src": "16958:2:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 778, + "name": "hashLock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 691, + "src": "16974:8:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 779, + "name": "tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 693, + "src": "16996:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 780, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "17022:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 781, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "17026:6:0", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "17022:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 782, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 695, + "src": "17046:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 783, + "name": "outputNetwork", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 697, + "src": "17068:13:0", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + }, + { + "id": 784, + "name": "outputAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 699, + "src": "17095:13:0", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + }, + { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + ], + "id": 773, + "name": "NewContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 683, + "src": "16858:11:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_bytes32_$_t_bytes32_$_t_address_$_t_address_$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (uint256,uint256,uint256,bytes32,bytes32,address,address,address,string memory,string memory)" + } + }, + "id": 785, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16858:260:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 786, + "nodeType": "EmitStatement", + "src": "16853:265:0" } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "id": 823, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4294967295, - "src": "17389:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } + ] + }, + "functionSelector": "d2fd8b76", + "id": 788, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "newContract", + "nameLocation": "15762:11:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 700, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 685, + "mutability": "mutable", + "name": "inputAmount", + "nameLocation": "15791:11:0", + "nodeType": "VariableDeclaration", + "scope": 788, + "src": "15783:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 684, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15783:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 687, + "mutability": "mutable", + "name": "outputAmount", + "nameLocation": "15820:12:0", + "nodeType": "VariableDeclaration", + "scope": 788, + "src": "15812:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 686, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15812:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 689, + "mutability": "mutable", + "name": "expiration", + "nameLocation": "15850:10:0", + "nodeType": "VariableDeclaration", + "scope": 788, + "src": "15842:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 688, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15842:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 691, + "mutability": "mutable", + "name": "hashLock", + "nameLocation": "15878:8:0", + "nodeType": "VariableDeclaration", + "scope": 788, + "src": "15870:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 690, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "15870:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 693, + "mutability": "mutable", + "name": "tokenAddress", + "nameLocation": "15904:12:0", + "nodeType": "VariableDeclaration", + "scope": 788, + "src": "15896:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 692, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15896:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 695, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "15934:8:0", + "nodeType": "VariableDeclaration", + "scope": 788, + "src": "15926:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 694, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15926:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 697, + "mutability": "mutable", + "name": "outputNetwork", + "nameLocation": "15968:13:0", + "nodeType": "VariableDeclaration", + "scope": 788, + "src": "15952:29:0", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 696, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "15952:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 699, + "mutability": "mutable", + "name": "outputAddress", + "nameLocation": "16007:13:0", + "nodeType": "VariableDeclaration", + "scope": 788, + "src": "15991:29:0", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 698, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "15991:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "15773:253:0" + }, + "returnParameters": { + "id": 701, + "nodeType": "ParameterList", + "parameters": [], + "src": "16036:0:0" + }, + "scope": 1007, + "src": "15753:1372:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 862, + "nodeType": "Block", + "src": "17198:561:0", + "statements": [ + { + "assignments": [ + 797 + ], + "declarations": [ + { + "constant": false, + "id": 797, + "mutability": "mutable", + "name": "c", + "nameLocation": "17229:1:0", + "nodeType": "VariableDeclaration", + "scope": 862, + "src": "17208:22:0", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", + "typeString": "struct HashedTimeLockContract.LockContract" + }, + "typeName": { + "id": 796, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 795, + "name": "LockContract", + "nameLocations": [ + "17208:12:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 635, + "src": "17208:12:0" + }, + "referencedDeclaration": 635, + "src": "17208:12:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", + "typeString": "struct HashedTimeLockContract.LockContract" + } + }, + "visibility": "internal" + } + ], + "id": 801, + "initialValue": { + "baseExpression": { + "id": 798, + "name": "contracts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 599, + "src": "17233:9:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_LockContract_$635_storage_$", + "typeString": "mapping(bytes32 => struct HashedTimeLockContract.LockContract storage ref)" + } + }, + "id": 800, + "indexExpression": { + "id": 799, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 790, + "src": "17243:2:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17233:13:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$635_storage", + "typeString": "struct HashedTimeLockContract.LockContract storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17208:38:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 806, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 803, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 797, + "src": "17265:1:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", + "typeString": "struct HashedTimeLockContract.LockContract storage pointer" + } + }, + "id": 804, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "17267:6:0", + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 622, + "src": "17265:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 805, + "name": "ACTIVE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 605, + "src": "17277:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17265:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "535741505f4e4f545f414354495645", + "id": 807, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17285:17:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_afbfa7d3db262df0c92c413f0113503b1c1332dc5a4a874fcd8d6a6de57b74dd", + "typeString": "literal_string \"SWAP_NOT_ACTIVE\"" + }, + "value": "SWAP_NOT_ACTIVE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_afbfa7d3db262df0c92c413f0113503b1c1332dc5a4a874fcd8d6a6de57b74dd", + "typeString": "literal_string \"SWAP_NOT_ACTIVE\"" + } + ], + "id": 802, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "17257:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 808, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17257:46:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 809, + "nodeType": "ExpressionStatement", + "src": "17257:46:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 811, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 797, + "src": "17322:1:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", + "typeString": "struct HashedTimeLockContract.LockContract storage pointer" + } + }, + "id": 812, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "17324:10:0", + "memberName": "expiration", + "nodeType": "MemberAccess", + "referencedDeclaration": 620, + "src": "17322:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "id": 813, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967292, + "src": "17337:5:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 814, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "17343:9:0", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "17337:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17322:30:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "494e56414c49445f54494d45", + "id": 816, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17354:14:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b98f3e47db5919a8c78ec10ff6bf7d1326066d3facdc164cf7441d38cae771df", + "typeString": "literal_string \"INVALID_TIME\"" + }, + "value": "INVALID_TIME" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b98f3e47db5919a8c78ec10ff6bf7d1326066d3facdc164cf7441d38cae771df", + "typeString": "literal_string \"INVALID_TIME\"" + } + ], + "id": 810, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "17314:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 817, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17314:55:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 818, + "nodeType": "ExpressionStatement", + "src": "17314:55:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 828, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 820, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 797, + "src": "17401:1:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", + "typeString": "struct HashedTimeLockContract.LockContract storage pointer" + } + }, + "id": 821, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "17403:8:0", + "memberName": "hashLock", + "nodeType": "MemberAccess", + "referencedDeclaration": 624, + "src": "17401:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "arguments": [ + { + "id": 825, + "name": "secret", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "17436:6:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "id": 823, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "17425:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 824, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "17429:6:0", + "memberName": "encode", + "nodeType": "MemberAccess", + "src": "17425:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 826, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17425:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 822, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967288, + "src": "17415:9:0", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 827, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17415:29:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "17401:43:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "494e56414c49445f534543524554", + "id": 829, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17458:16:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_20442b474b3561be70a7e12c2acf875277f59e68e7748337cd68bf5c8ada064b", + "typeString": "literal_string \"INVALID_SECRET\"" + }, + "value": "INVALID_SECRET" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_20442b474b3561be70a7e12c2acf875277f59e68e7748337cd68bf5c8ada064b", + "typeString": "literal_string \"INVALID_SECRET\"" + } + ], + "id": 819, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "17380:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 830, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17380:104:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 831, + "nodeType": "ExpressionStatement", + "src": "17380:104:0" + }, + { + "expression": { + "id": 836, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 832, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 797, + "src": "17495:1:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", + "typeString": "struct HashedTimeLockContract.LockContract storage pointer" + } + }, + "id": 834, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "17497:6:0", + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 622, + "src": "17495:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 835, + "name": "WITHDRAWN", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 611, + "src": "17506:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17495:20:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 837, + "nodeType": "ExpressionStatement", + "src": "17495:20:0" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 843, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 797, + "src": "17558:1:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", + "typeString": "struct HashedTimeLockContract.LockContract storage pointer" + } + }, + "id": 844, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "17560:8:0", + "memberName": "receiver", + "nodeType": "MemberAccess", + "referencedDeclaration": 630, + "src": "17558:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 845, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 797, + "src": "17570:1:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", + "typeString": "struct HashedTimeLockContract.LockContract storage pointer" + } + }, + "id": 846, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "17572:11:0", + "memberName": "inputAmount", + "nodeType": "MemberAccess", + "referencedDeclaration": 616, + "src": "17570:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "expression": { + "id": 839, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 797, + "src": "17533:1:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", + "typeString": "struct HashedTimeLockContract.LockContract storage pointer" + } + }, + "id": 840, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "17535:12:0", + "memberName": "tokenAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 626, + "src": "17533:14:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 838, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 371, + "src": "17526:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$371_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 841, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17526:22:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$371", + "typeString": "contract IERC20" + } + }, + "id": 842, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "17549:8:0", + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 320, + "src": "17526:31:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 847, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17526:58:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 848, + "nodeType": "ExpressionStatement", + "src": "17526:58:0" + }, + { + "eventCall": { + "arguments": [ + { + "id": 850, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 790, + "src": "17622:2:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 851, + "name": "secret", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "17638:6:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 852, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 797, + "src": "17658:1:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", + "typeString": "struct HashedTimeLockContract.LockContract storage pointer" + } + }, + "id": 853, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "17660:8:0", + "memberName": "hashLock", + "nodeType": "MemberAccess", + "referencedDeclaration": 624, + "src": "17658:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 854, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 797, + "src": "17682:1:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", + "typeString": "struct HashedTimeLockContract.LockContract storage pointer" + } + }, + "id": 855, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "17684:12:0", + "memberName": "tokenAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 626, + "src": "17682:14:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 856, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 797, + "src": "17710:1:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", + "typeString": "struct HashedTimeLockContract.LockContract storage pointer" + } + }, + "id": 857, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "17712:6:0", + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": 628, + "src": "17710:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 858, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 797, + "src": "17732:1:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", + "typeString": "struct HashedTimeLockContract.LockContract storage pointer" + } + }, + "id": 859, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "17734:8:0", + "memberName": "receiver", + "nodeType": "MemberAccess", + "referencedDeclaration": 630, + "src": "17732:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 849, + "name": "Withdraw", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 649, + "src": "17600:8:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_address_$_t_address_$_t_address_$returns$__$", + "typeString": "function (bytes32,bytes32,bytes32,address,address,address)" + } + }, + "id": 860, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17600:152:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 861, + "nodeType": "EmitStatement", + "src": "17595:157:0" + } + ] + }, + "functionSelector": "63615149", + "id": 863, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "withdraw", + "nameLocation": "17140:8:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 793, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 790, + "mutability": "mutable", + "name": "id", + "nameLocation": "17157:2:0", + "nodeType": "VariableDeclaration", + "scope": 863, + "src": "17149:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 789, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "17149:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 792, + "mutability": "mutable", + "name": "secret", + "nameLocation": "17169:6:0", + "nodeType": "VariableDeclaration", + "scope": 863, + "src": "17161:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 791, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "17161:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "17148:28:0" + }, + "returnParameters": { + "id": 794, + "nodeType": "ParameterList", + "parameters": [], + "src": "17198:0:0" + }, + "scope": 1007, + "src": "17131:628:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 921, + "nodeType": "Block", + "src": "17802:352:0", + "statements": [ + { + "assignments": [ + 870 + ], + "declarations": [ + { + "constant": false, + "id": 870, + "mutability": "mutable", + "name": "c", + "nameLocation": "17833:1:0", + "nodeType": "VariableDeclaration", + "scope": 921, + "src": "17812:22:0", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", + "typeString": "struct HashedTimeLockContract.LockContract" + }, + "typeName": { + "id": 869, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 868, + "name": "LockContract", + "nameLocations": [ + "17812:12:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 635, + "src": "17812:12:0" + }, + "referencedDeclaration": 635, + "src": "17812:12:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", + "typeString": "struct HashedTimeLockContract.LockContract" + } + }, + "visibility": "internal" + } + ], + "id": 874, + "initialValue": { + "baseExpression": { + "id": 871, + "name": "contracts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 599, + "src": "17837:9:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_LockContract_$635_storage_$", + "typeString": "mapping(bytes32 => struct HashedTimeLockContract.LockContract storage ref)" + } + }, + "id": 873, + "indexExpression": { + "id": 872, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 865, + "src": "17847:2:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17837:13:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$635_storage", + "typeString": "struct HashedTimeLockContract.LockContract storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17812:38:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 879, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 876, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 870, + "src": "17869:1:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", + "typeString": "struct HashedTimeLockContract.LockContract storage pointer" + } + }, + "id": 877, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "17871:6:0", + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 622, + "src": "17869:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 878, + "name": "ACTIVE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 605, + "src": "17881:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17869:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "535741505f4e4f545f414354495645", + "id": 880, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17889:17:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_afbfa7d3db262df0c92c413f0113503b1c1332dc5a4a874fcd8d6a6de57b74dd", + "typeString": "literal_string \"SWAP_NOT_ACTIVE\"" + }, + "value": "SWAP_NOT_ACTIVE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_afbfa7d3db262df0c92c413f0113503b1c1332dc5a4a874fcd8d6a6de57b74dd", + "typeString": "literal_string \"SWAP_NOT_ACTIVE\"" + } + ], + "id": 875, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "17861:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 881, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17861:46:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 882, + "nodeType": "ExpressionStatement", + "src": "17861:46:0" }, - "id": 824, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "src": "17389:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 826, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17389:24:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 822, - "name": "sha256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4294967274, - "src": "17382:6:0", - "typeDescriptions": { - "typeIdentifier": "t_function_sha256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 827, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17382:32:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "src": "17368:46:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "494e56414c49445f534543524554", - "id": 829, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17428:16:0", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_20442b474b3561be70a7e12c2acf875277f59e68e7748337cd68bf5c8ada064b", - "typeString": "literal_string \"INVALID_SECRET\"" - }, - "value": "INVALID_SECRET" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_20442b474b3561be70a7e12c2acf875277f59e68e7748337cd68bf5c8ada064b", - "typeString": "literal_string \"INVALID_SECRET\"" - } - ], - "id": 819, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4294967278, - 4294967278 - ], - "referencedDeclaration": 4294967278, - "src": "17347:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 830, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17347:107:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 831, - "nodeType": "ExpressionStatement", - "src": "17347:107:0" - }, - { - "expression": { - "id": 836, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 832, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 797, - "src": "17465:1:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", - "typeString": "struct HashedTimeLockContract.LockContract storage pointer" - } - }, - "id": 834, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "status", - "nodeType": "MemberAccess", - "referencedDeclaration": 622, - "src": "17465:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 835, - "name": "WITHDRAWN", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 611, - "src": "17476:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "17465:20:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 837, - "nodeType": "ExpressionStatement", - "src": "17465:20:0" - }, - { - "expression": { - "arguments": [ - { - "expression": { - "id": 843, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 797, - "src": "17528:1:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", - "typeString": "struct HashedTimeLockContract.LockContract storage pointer" - } - }, - "id": 844, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "receiver", - "nodeType": "MemberAccess", - "referencedDeclaration": 630, - "src": "17528:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 845, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 797, - "src": "17540:1:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", - "typeString": "struct HashedTimeLockContract.LockContract storage pointer" - } - }, - "id": 846, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "inputAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 616, - "src": "17540:13:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "arguments": [ - { - "expression": { - "id": 839, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 797, - "src": "17503:1:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", - "typeString": "struct HashedTimeLockContract.LockContract storage pointer" - } - }, - "id": 840, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "tokenAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 626, - "src": "17503:14:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 838, - "name": "IERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 371, - "src": "17496:6:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$371_$", - "typeString": "type(contract IERC20)" - } - }, - "id": 841, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17496:22:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - } - }, - "id": 842, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 320, - "src": "17496:31:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 847, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17496:58:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 848, - "nodeType": "ExpressionStatement", - "src": "17496:58:0" - }, - { - "eventCall": { - "arguments": [ - { - "id": 850, - "name": "id", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 790, - "src": "17592:2:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 851, - "name": "secret", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 792, - "src": "17608:6:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "expression": { - "id": 852, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 797, - "src": "17628:1:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", - "typeString": "struct HashedTimeLockContract.LockContract storage pointer" - } - }, - "id": 853, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "hashLock", - "nodeType": "MemberAccess", - "referencedDeclaration": 624, - "src": "17628:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "expression": { - "id": 854, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 797, - "src": "17652:1:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", - "typeString": "struct HashedTimeLockContract.LockContract storage pointer" - } - }, - "id": 855, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "tokenAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 626, - "src": "17652:14:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 856, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 797, - "src": "17680:1:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", - "typeString": "struct HashedTimeLockContract.LockContract storage pointer" - } - }, - "id": 857, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": 628, - "src": "17680:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 858, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 797, - "src": "17702:1:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", - "typeString": "struct HashedTimeLockContract.LockContract storage pointer" - } - }, - "id": 859, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "receiver", - "nodeType": "MemberAccess", - "referencedDeclaration": 630, - "src": "17702:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 849, - "name": "Withdraw", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 649, - "src": "17570:8:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_address_$_t_address_$_t_address_$returns$__$", - "typeString": "function (bytes32,bytes32,bytes32,address,address,address)" - } - }, - "id": 860, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17570:152:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 861, - "nodeType": "EmitStatement", - "src": "17565:157:0" - } - ] - }, - "functionSelector": "63615149", - "id": 863, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "withdraw", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 793, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 790, - "mutability": "mutable", - "name": "id", - "nodeType": "VariableDeclaration", - "scope": 863, - "src": "17116:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 789, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "17116:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 792, - "mutability": "mutable", - "name": "secret", - "nodeType": "VariableDeclaration", - "scope": 863, - "src": "17128:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 791, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "17128:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "17115:28:0" - }, - "returnParameters": { - "id": 794, - "nodeType": "ParameterList", - "parameters": [], - "src": "17165:0:0" - }, - "scope": 1007, - "src": "17098:631:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 921, - "nodeType": "Block", - "src": "17772:352:0", - "statements": [ - { - "assignments": [ - 870 - ], - "declarations": [ - { - "constant": false, - "id": 870, - "mutability": "mutable", - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 921, - "src": "17782:22:0", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", - "typeString": "struct HashedTimeLockContract.LockContract" - }, - "typeName": { - "id": 869, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 868, - "name": "LockContract", - "nodeType": "IdentifierPath", - "referencedDeclaration": 635, - "src": "17782:12:0" - }, - "referencedDeclaration": 635, - "src": "17782:12:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", - "typeString": "struct HashedTimeLockContract.LockContract" - } - }, - "visibility": "internal" - } - ], - "id": 874, - "initialValue": { - "baseExpression": { - "id": 871, - "name": "contracts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 599, - "src": "17807:9:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_LockContract_$635_storage_$", - "typeString": "mapping(bytes32 => struct HashedTimeLockContract.LockContract storage ref)" - } - }, - "id": 873, - "indexExpression": { - "id": 872, - "name": "id", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 865, - "src": "17817:2:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17807:13:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_storage", - "typeString": "struct HashedTimeLockContract.LockContract storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "17782:38:0" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 879, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 876, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 870, - "src": "17839:1:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", - "typeString": "struct HashedTimeLockContract.LockContract storage pointer" - } - }, - "id": 877, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "status", - "nodeType": "MemberAccess", - "referencedDeclaration": 622, - "src": "17839:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "id": 878, - "name": "ACTIVE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 605, - "src": "17851:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "17839:18:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "535741505f4e4f545f414354495645", - "id": 880, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17859:17:0", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_afbfa7d3db262df0c92c413f0113503b1c1332dc5a4a874fcd8d6a6de57b74dd", - "typeString": "literal_string \"SWAP_NOT_ACTIVE\"" - }, - "value": "SWAP_NOT_ACTIVE" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_afbfa7d3db262df0c92c413f0113503b1c1332dc5a4a874fcd8d6a6de57b74dd", - "typeString": "literal_string \"SWAP_NOT_ACTIVE\"" - } - ], - "id": 875, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4294967278, - 4294967278 - ], - "referencedDeclaration": 4294967278, - "src": "17831:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 881, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17831:46:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 882, - "nodeType": "ExpressionStatement", - "src": "17831:46:0" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 888, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 884, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 870, - "src": "17896:1:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", - "typeString": "struct HashedTimeLockContract.LockContract storage pointer" - } - }, - "id": 885, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "expiration", - "nodeType": "MemberAccess", - "referencedDeclaration": 620, - "src": "17896:12:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "expression": { - "id": 886, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4294967292, - "src": "17912:5:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 887, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "src": "17912:15:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "17896:31:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "494e56414c49445f54494d45", - "id": 889, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17929:14:0", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b98f3e47db5919a8c78ec10ff6bf7d1326066d3facdc164cf7441d38cae771df", - "typeString": "literal_string \"INVALID_TIME\"" - }, - "value": "INVALID_TIME" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b98f3e47db5919a8c78ec10ff6bf7d1326066d3facdc164cf7441d38cae771df", - "typeString": "literal_string \"INVALID_TIME\"" - } - ], - "id": 883, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4294967278, - 4294967278 - ], - "referencedDeclaration": 4294967278, - "src": "17888:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 890, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17888:56:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 891, - "nodeType": "ExpressionStatement", - "src": "17888:56:0" - }, - { - "expression": { - "id": 896, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "expression": { - "id": 892, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 870, - "src": "17955:1:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", - "typeString": "struct HashedTimeLockContract.LockContract storage pointer" - } - }, - "id": 894, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "status", - "nodeType": "MemberAccess", - "referencedDeclaration": 622, - "src": "17955:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 895, - "name": "REFUNDED", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 608, - "src": "17966:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "17955:19:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 897, - "nodeType": "ExpressionStatement", - "src": "17955:19:0" - }, - { - "expression": { - "arguments": [ - { - "expression": { - "id": 903, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 870, - "src": "18017:1:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", - "typeString": "struct HashedTimeLockContract.LockContract storage pointer" - } - }, - "id": 904, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": 628, - "src": "18017:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 905, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 870, - "src": "18027:1:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", - "typeString": "struct HashedTimeLockContract.LockContract storage pointer" - } - }, - "id": 906, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "inputAmount", - "nodeType": "MemberAccess", - "referencedDeclaration": 616, - "src": "18027:13:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "arguments": [ - { - "expression": { - "id": 899, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 870, - "src": "17992:1:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", - "typeString": "struct HashedTimeLockContract.LockContract storage pointer" - } - }, - "id": 900, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "tokenAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 626, - "src": "17992:14:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 898, - "name": "IERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 371, - "src": "17985:6:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$371_$", - "typeString": "type(contract IERC20)" - } - }, - "id": 901, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17985:22:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$371", - "typeString": "contract IERC20" - } - }, - "id": 902, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 320, - "src": "17985:31:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 907, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17985:56:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 908, - "nodeType": "ExpressionStatement", - "src": "17985:56:0" - }, - { - "eventCall": { - "arguments": [ - { - "id": 910, - "name": "id", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 865, - "src": "18064:2:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "expression": { - "id": 911, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 870, - "src": "18068:1:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", - "typeString": "struct HashedTimeLockContract.LockContract storage pointer" - } - }, - "id": 912, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "hashLock", - "nodeType": "MemberAccess", - "referencedDeclaration": 624, - "src": "18068:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "expression": { - "id": 913, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 870, - "src": "18080:1:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", - "typeString": "struct HashedTimeLockContract.LockContract storage pointer" - } - }, - "id": 914, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "tokenAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 626, - "src": "18080:14:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 915, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 870, - "src": "18096:1:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", - "typeString": "struct HashedTimeLockContract.LockContract storage pointer" - } - }, - "id": 916, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": 628, - "src": "18096:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 917, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 870, - "src": "18106:1:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", - "typeString": "struct HashedTimeLockContract.LockContract storage pointer" - } - }, - "id": 918, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "receiver", - "nodeType": "MemberAccess", - "referencedDeclaration": 630, - "src": "18106:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 909, - "name": "Refund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 661, - "src": "18057:6:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$_t_address_$_t_address_$returns$__$", - "typeString": "function (bytes32,bytes32,address,address,address)" - } - }, - "id": 919, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18057:60:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 920, - "nodeType": "EmitStatement", - "src": "18052:65:0" - } - ] - }, - "functionSelector": "7249fbb6", - "id": 922, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "refund", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 866, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 865, - "mutability": "mutable", - "name": "id", - "nodeType": "VariableDeclaration", - "scope": 922, - "src": "17751:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 864, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "17751:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "17750:12:0" - }, - "returnParameters": { - "id": 867, - "nodeType": "ParameterList", - "parameters": [], - "src": "17772:0:0" - }, - "scope": 1007, - "src": "17735:389:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "body": { - "id": 968, - "nodeType": "Block", - "src": "18238:223:0", - "statements": [ - { - "assignments": [ - 935 - ], - "declarations": [ - { - "constant": false, - "id": 935, - "mutability": "mutable", - "name": "result", - "nodeType": "VariableDeclaration", - "scope": 968, - "src": "18248:23:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 933, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18248:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 934, - "nodeType": "ArrayTypeName", - "src": "18248:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "visibility": "internal" - } - ], - "id": 942, - "initialValue": { - "arguments": [ - { - "expression": { - "id": 939, - "name": "ids", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 925, - "src": "18288:3:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", - "typeString": "bytes32[] memory" - } - }, - "id": 940, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "src": "18288:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 938, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "18274:13:0", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", - "typeString": "function (uint256) pure returns (uint256[] memory)" - }, - "typeName": { - "baseType": { - "id": 936, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18278:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 937, - "nodeType": "ArrayTypeName", - "src": "18278:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - } - }, - "id": 941, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18274:25:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "18248:51:0" - }, - { - "body": { - "id": 964, - "nodeType": "Block", - "src": "18363:68:0", - "statements": [ - { - "expression": { - "id": 962, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 954, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 935, - "src": "18377:6:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 956, - "indexExpression": { - "id": 955, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 944, - "src": "18384:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "18377:13:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "baseExpression": { - "id": 958, - "name": "ids", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 925, - "src": "18409:3:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", - "typeString": "bytes32[] memory" - } + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 884, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 870, + "src": "17926:1:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", + "typeString": "struct HashedTimeLockContract.LockContract storage pointer" + } + }, + "id": 885, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "17928:10:0", + "memberName": "expiration", + "nodeType": "MemberAccess", + "referencedDeclaration": 620, + "src": "17926:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "expression": { + "id": 886, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967292, + "src": "17942:5:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 887, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "17948:9:0", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "17942:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17926:31:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "494e56414c49445f54494d45", + "id": 889, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17959:14:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b98f3e47db5919a8c78ec10ff6bf7d1326066d3facdc164cf7441d38cae771df", + "typeString": "literal_string \"INVALID_TIME\"" + }, + "value": "INVALID_TIME" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b98f3e47db5919a8c78ec10ff6bf7d1326066d3facdc164cf7441d38cae771df", + "typeString": "literal_string \"INVALID_TIME\"" + } + ], + "id": 883, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "17918:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17918:56:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 891, + "nodeType": "ExpressionStatement", + "src": "17918:56:0" }, - "id": 960, - "indexExpression": { - "id": 959, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 944, - "src": "18413:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + { + "expression": { + "id": 896, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 892, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 870, + "src": "17985:1:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", + "typeString": "struct HashedTimeLockContract.LockContract storage pointer" + } + }, + "id": 894, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "17987:6:0", + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 622, + "src": "17985:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 895, + "name": "REFUNDED", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 608, + "src": "17996:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17985:19:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 897, + "nodeType": "ExpressionStatement", + "src": "17985:19:0" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 903, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 870, + "src": "18047:1:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", + "typeString": "struct HashedTimeLockContract.LockContract storage pointer" + } + }, + "id": 904, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "18049:6:0", + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": 628, + "src": "18047:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 905, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 870, + "src": "18057:1:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", + "typeString": "struct HashedTimeLockContract.LockContract storage pointer" + } + }, + "id": 906, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "18059:11:0", + "memberName": "inputAmount", + "nodeType": "MemberAccess", + "referencedDeclaration": 616, + "src": "18057:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "expression": { + "id": 899, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 870, + "src": "18022:1:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", + "typeString": "struct HashedTimeLockContract.LockContract storage pointer" + } + }, + "id": 900, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "18024:12:0", + "memberName": "tokenAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 626, + "src": "18022:14:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 898, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 371, + "src": "18015:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$371_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 901, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18015:22:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$371", + "typeString": "contract IERC20" + } + }, + "id": 902, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "18038:8:0", + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 320, + "src": "18015:31:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 907, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18015:56:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 908, + "nodeType": "ExpressionStatement", + "src": "18015:56:0" }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "18409:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + { + "eventCall": { + "arguments": [ + { + "id": 910, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 865, + "src": "18094:2:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 911, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 870, + "src": "18098:1:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", + "typeString": "struct HashedTimeLockContract.LockContract storage pointer" + } + }, + "id": 912, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "18100:8:0", + "memberName": "hashLock", + "nodeType": "MemberAccess", + "referencedDeclaration": 624, + "src": "18098:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 913, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 870, + "src": "18110:1:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", + "typeString": "struct HashedTimeLockContract.LockContract storage pointer" + } + }, + "id": 914, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "18112:12:0", + "memberName": "tokenAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 626, + "src": "18110:14:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 915, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 870, + "src": "18126:1:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", + "typeString": "struct HashedTimeLockContract.LockContract storage pointer" + } + }, + "id": 916, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "18128:6:0", + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": 628, + "src": "18126:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 917, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 870, + "src": "18136:1:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", + "typeString": "struct HashedTimeLockContract.LockContract storage pointer" + } + }, + "id": 918, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "18138:8:0", + "memberName": "receiver", + "nodeType": "MemberAccess", + "referencedDeclaration": 630, + "src": "18136:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 909, + "name": "Refund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 661, + "src": "18087:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$_t_address_$_t_address_$returns$__$", + "typeString": "function (bytes32,bytes32,address,address,address)" + } + }, + "id": 919, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18087:60:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 920, + "nodeType": "EmitStatement", + "src": "18082:65:0" + } + ] + }, + "functionSelector": "7249fbb6", + "id": 922, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "refund", + "nameLocation": "17774:6:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 866, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 865, + "mutability": "mutable", + "name": "id", + "nameLocation": "17789:2:0", + "nodeType": "VariableDeclaration", + "scope": 922, + "src": "17781:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 864, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "17781:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" } - } ], - "expression": { - "argumentTypes": [ + "src": "17780:12:0" + }, + "returnParameters": { + "id": 867, + "nodeType": "ParameterList", + "parameters": [], + "src": "17802:0:0" + }, + "scope": 1007, + "src": "17765:389:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 968, + "nodeType": "Block", + "src": "18268:223:0", + "statements": [ + { + "assignments": [ + 935 + ], + "declarations": [ + { + "constant": false, + "id": 935, + "mutability": "mutable", + "name": "result", + "nameLocation": "18295:6:0", + "nodeType": "VariableDeclaration", + "scope": 968, + "src": "18278:23:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 933, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18278:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 934, + "nodeType": "ArrayTypeName", + "src": "18278:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "id": 942, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 939, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 925, + "src": "18318:3:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[] memory" + } + }, + "id": 940, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "18322:6:0", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "18318:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 938, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "18304:13:0", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (uint256[] memory)" + }, + "typeName": { + "baseType": { + "id": 936, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18308:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 937, + "nodeType": "ArrayTypeName", + "src": "18308:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + } + }, + "id": 941, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18304:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "18278:51:0" + }, + { + "body": { + "id": 964, + "nodeType": "Block", + "src": "18393:68:0", + "statements": [ + { + "expression": { + "id": 962, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 954, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 935, + "src": "18407:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 956, + "indexExpression": { + "id": 955, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 944, + "src": "18414:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "18407:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "baseExpression": { + "id": 958, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 925, + "src": "18439:3:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[] memory" + } + }, + "id": 960, + "indexExpression": { + "id": 959, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 944, + "src": "18443:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "18439:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 957, + "name": "getSingleStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1006, + "src": "18423:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_uint256_$", + "typeString": "function (bytes32) view returns (uint256)" + } + }, + "id": 961, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18423:27:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18407:43:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 963, + "nodeType": "ExpressionStatement", + "src": "18407:43:0" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 950, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 947, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 944, + "src": "18364:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 948, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 925, + "src": "18372:3:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[] memory" + } + }, + "id": 949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "18376:6:0", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "18372:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18364:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 965, + "initializationExpression": { + "assignments": [ + 944 + ], + "declarations": [ + { + "constant": false, + "id": 944, + "mutability": "mutable", + "name": "index", + "nameLocation": "18353:5:0", + "nodeType": "VariableDeclaration", + "scope": 965, + "src": "18345:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 943, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18345:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 946, + "initialValue": { + "hexValue": "30", + "id": 945, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18361:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "18345:17:0" + }, + "loopExpression": { + "expression": { + "id": 952, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "18384:7:0", + "subExpression": { + "id": 951, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 944, + "src": "18384:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 953, + "nodeType": "ExpressionStatement", + "src": "18384:7:0" + }, + "nodeType": "ForStatement", + "src": "18340:121:0" + }, { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "expression": { + "id": 966, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 935, + "src": "18478:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "functionReturnParameters": 930, + "id": 967, + "nodeType": "Return", + "src": "18471:13:0" } - ], - "id": 957, - "name": "getSingleStatus", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1006, - "src": "18393:15:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_uint256_$", - "typeString": "function (bytes32) view returns (uint256)" - } - }, - "id": 961, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18393:27:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "18377:43:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 963, - "nodeType": "ExpressionStatement", - "src": "18377:43:0" - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 950, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 947, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 944, - "src": "18334:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "expression": { - "id": 948, - "name": "ids", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 925, - "src": "18342:3:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", - "typeString": "bytes32[] memory" - } - }, - "id": 949, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "src": "18342:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "18334:18:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 965, - "initializationExpression": { - "assignments": [ - 944 - ], - "declarations": [ - { - "constant": false, - "id": 944, - "mutability": "mutable", - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 965, - "src": "18315:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + ] + }, + "functionSelector": "2f21a663", + "id": 969, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getStatus", + "nameLocation": "18169:9:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 926, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 925, + "mutability": "mutable", + "name": "ids", + "nameLocation": "18196:3:0", + "nodeType": "VariableDeclaration", + "scope": 969, + "src": "18179:20:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 923, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "18179:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 924, + "nodeType": "ArrayTypeName", + "src": "18179:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + } + }, + "visibility": "internal" + } + ], + "src": "18178:22:0" }, - "typeName": { - "id": 943, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18315:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "returnParameters": { + "id": 930, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 929, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 969, + "src": "18246:16:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 927, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18246:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 928, + "nodeType": "ArrayTypeName", + "src": "18246:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "18245:18:0" }, - "visibility": "internal" - } - ], - "id": 946, - "initialValue": { - "hexValue": "30", - "id": 945, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18331:1:0", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "18315:17:0" - }, - "loopExpression": { - "expression": { - "id": 952, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "18354:7:0", - "subExpression": { - "id": 951, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 944, - "src": "18354:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 953, - "nodeType": "ExpressionStatement", - "src": "18354:7:0" - }, - "nodeType": "ForStatement", - "src": "18310:121:0" - }, - { - "expression": { - "id": 966, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 935, - "src": "18448:6:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "functionReturnParameters": 930, - "id": 967, - "nodeType": "Return", - "src": "18441:13:0" - } - ] - }, - "functionSelector": "2f21a663", - "id": 969, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getStatus", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 926, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 925, - "mutability": "mutable", - "name": "ids", - "nodeType": "VariableDeclaration", - "scope": 969, - "src": "18149:20:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", - "typeString": "bytes32[]" - }, - "typeName": { - "baseType": { - "id": 923, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "18149:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 924, - "nodeType": "ArrayTypeName", - "src": "18149:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", - "typeString": "bytes32[]" - } - }, - "visibility": "internal" - } - ], - "src": "18148:22:0" - }, - "returnParameters": { - "id": 930, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 929, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "scope": 969, - "src": "18216:16:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 927, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18216:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "scope": 1007, + "src": "18160:331:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" }, - "id": 928, - "nodeType": "ArrayTypeName", - "src": "18216:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "visibility": "internal" - } - ], - "src": "18215:18:0" - }, - "scope": 1007, - "src": "18130:331:0", - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 1005, - "nodeType": "Block", - "src": "18541:289:0", - "statements": [ - { - "assignments": [ - 978 - ], - "declarations": [ { - "constant": false, - "id": 978, - "mutability": "mutable", - "name": "tempContract", - "nodeType": "VariableDeclaration", - "scope": 1005, - "src": "18551:32:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_memory_ptr", - "typeString": "struct HashedTimeLockContract.LockContract" - }, - "typeName": { - "id": 977, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 976, - "name": "LockContract", - "nodeType": "IdentifierPath", - "referencedDeclaration": 635, - "src": "18551:12:0" - }, - "referencedDeclaration": 635, - "src": "18551:12:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", - "typeString": "struct HashedTimeLockContract.LockContract" - } - }, - "visibility": "internal" - } - ], - "id": 982, - "initialValue": { - "baseExpression": { - "id": 979, - "name": "contracts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 599, - "src": "18586:9:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_LockContract_$635_storage_$", - "typeString": "mapping(bytes32 => struct HashedTimeLockContract.LockContract storage ref)" - } - }, - "id": 981, - "indexExpression": { - "id": 980, - "name": "id", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 971, - "src": "18596:2:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "18586:13:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_storage", - "typeString": "struct HashedTimeLockContract.LockContract storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "18551:48:0" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 992, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 986, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 983, - "name": "tempContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 978, - "src": "18627:12:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_memory_ptr", - "typeString": "struct HashedTimeLockContract.LockContract memory" - } - }, - "id": 984, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "status", - "nodeType": "MemberAccess", - "referencedDeclaration": 622, - "src": "18627:19:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "id": 985, - "name": "ACTIVE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 605, - "src": "18650:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "18627:29:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 991, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 987, - "name": "tempContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 978, - "src": "18672:12:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_memory_ptr", - "typeString": "struct HashedTimeLockContract.LockContract memory" - } - }, - "id": 988, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "expiration", - "nodeType": "MemberAccess", - "referencedDeclaration": 620, - "src": "18672:23:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "expression": { - "id": 989, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4294967292, - "src": "18698:5:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 990, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "src": "18698:15:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "18672:41:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "18627:86:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 1003, - "nodeType": "Block", - "src": "18771:53:0", - "statements": [ - { - "expression": { - "id": 1001, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 998, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 974, - "src": "18785:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 999, - "name": "tempContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 978, - "src": "18794:12:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_LockContract_$635_memory_ptr", - "typeString": "struct HashedTimeLockContract.LockContract memory" - } - }, - "id": 1000, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "status", - "nodeType": "MemberAccess", - "referencedDeclaration": 622, - "src": "18794:19:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "18785:28:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1002, - "nodeType": "ExpressionStatement", - "src": "18785:28:0" - } - ] - }, - "id": 1004, - "nodeType": "IfStatement", - "src": "18610:214:0", - "trueBody": { - "id": 997, - "nodeType": "Block", - "src": "18724:41:0", - "statements": [ - { - "expression": { - "id": 995, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 993, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 974, - "src": "18738:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 994, - "name": "EXPIRED", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 614, - "src": "18747:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "18738:16:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "body": { + "id": 1005, + "nodeType": "Block", + "src": "18571:289:0", + "statements": [ + { + "assignments": [ + 978 + ], + "declarations": [ + { + "constant": false, + "id": 978, + "mutability": "mutable", + "name": "tempContract", + "nameLocation": "18601:12:0", + "nodeType": "VariableDeclaration", + "scope": 1005, + "src": "18581:32:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$635_memory_ptr", + "typeString": "struct HashedTimeLockContract.LockContract" + }, + "typeName": { + "id": 977, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 976, + "name": "LockContract", + "nameLocations": [ + "18581:12:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 635, + "src": "18581:12:0" + }, + "referencedDeclaration": 635, + "src": "18581:12:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$635_storage_ptr", + "typeString": "struct HashedTimeLockContract.LockContract" + } + }, + "visibility": "internal" + } + ], + "id": 982, + "initialValue": { + "baseExpression": { + "id": 979, + "name": "contracts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 599, + "src": "18616:9:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_LockContract_$635_storage_$", + "typeString": "mapping(bytes32 => struct HashedTimeLockContract.LockContract storage ref)" + } + }, + "id": 981, + "indexExpression": { + "id": 980, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 971, + "src": "18626:2:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "18616:13:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$635_storage", + "typeString": "struct HashedTimeLockContract.LockContract storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "18581:48:0" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 992, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 986, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 983, + "name": "tempContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 978, + "src": "18657:12:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$635_memory_ptr", + "typeString": "struct HashedTimeLockContract.LockContract memory" + } + }, + "id": 984, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "18670:6:0", + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 622, + "src": "18657:19:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 985, + "name": "ACTIVE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 605, + "src": "18680:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18657:29:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 991, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 987, + "name": "tempContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 978, + "src": "18702:12:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$635_memory_ptr", + "typeString": "struct HashedTimeLockContract.LockContract memory" + } + }, + "id": 988, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "18715:10:0", + "memberName": "expiration", + "nodeType": "MemberAccess", + "referencedDeclaration": 620, + "src": "18702:23:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 989, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967292, + "src": "18728:5:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 990, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "18734:9:0", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "18728:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18702:41:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "18657:86:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1003, + "nodeType": "Block", + "src": "18801:53:0", + "statements": [ + { + "expression": { + "id": 1001, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 998, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 974, + "src": "18815:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 999, + "name": "tempContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 978, + "src": "18824:12:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$635_memory_ptr", + "typeString": "struct HashedTimeLockContract.LockContract memory" + } + }, + "id": 1000, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "18837:6:0", + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 622, + "src": "18824:19:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18815:28:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1002, + "nodeType": "ExpressionStatement", + "src": "18815:28:0" + } + ] + }, + "id": 1004, + "nodeType": "IfStatement", + "src": "18640:214:0", + "trueBody": { + "id": 997, + "nodeType": "Block", + "src": "18754:41:0", + "statements": [ + { + "expression": { + "id": 995, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 993, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 974, + "src": "18768:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 994, + "name": "EXPIRED", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 614, + "src": "18777:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18768:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 996, + "nodeType": "ExpressionStatement", + "src": "18768:16:0" + } + ] + } + } + ] + }, + "functionSelector": "fbdf3b43", + "id": 1006, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getSingleStatus", + "nameLocation": "18506:15:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 972, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 971, + "mutability": "mutable", + "name": "id", + "nameLocation": "18530:2:0", + "nodeType": "VariableDeclaration", + "scope": 1006, + "src": "18522:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 970, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "18522:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "18521:12:0" }, - "id": 996, - "nodeType": "ExpressionStatement", - "src": "18738:16:0" - } - ] - } - } - ] - }, - "functionSelector": "fbdf3b43", - "id": 1006, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getSingleStatus", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 972, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 971, - "mutability": "mutable", - "name": "id", - "nodeType": "VariableDeclaration", - "scope": 1006, - "src": "18492:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 970, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "18492:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "18491:12:0" - }, - "returnParameters": { - "id": 975, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 974, - "mutability": "mutable", - "name": "result", - "nodeType": "VariableDeclaration", - "scope": 1006, - "src": "18525:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 973, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18525:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "18524:16:0" - }, - "scope": 1007, - "src": "18467:363:0", - "stateMutability": "view", - "virtual": false, - "visibility": "public" - } + "returnParameters": { + "id": 975, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 974, + "mutability": "mutable", + "name": "result", + "nameLocation": "18563:6:0", + "nodeType": "VariableDeclaration", + "scope": 1006, + "src": "18555:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 973, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18555:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "18554:16:0" + }, + "scope": 1007, + "src": "18497:363:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "scope": 1008, + "src": "14086:4776:0", + "usedErrors": [] + } ], - "scope": 1008, - "src": "14047:4785:0" - } - ], - "src": "0:18832:0" - }, - "compiler": { - "name": "solc", - "version": "0.8.0+commit.c7dfd78e.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.3.3", - "updatedAt": "2021-02-09T19:02:21.044Z", - "devdoc": { - "kind": "dev", - "methods": {}, - "version": 1 - }, - "userdoc": { - "kind": "user", - "methods": {}, - "version": 1 - } + "src": "40:18822:0" + }, + "functionHashes": { + "ACTIVE()": "c90bd047", + "EXPIRED()": "414ac85b", + "INVALID()": "7fcce2a9", + "REFUNDED()": "94e15c8f", + "WITHDRAWN()": "af78feef", + "contracts(bytes32)": "ec56a373", + "getSingleStatus(bytes32)": "fbdf3b43", + "getStatus(bytes32[])": "2f21a663", + "newContract(uint256,uint256,uint256,bytes32,address,address,string,string)": "d2fd8b76", + "refund(bytes32)": "7249fbb6", + "withdraw(bytes32,bytes32)": "63615149" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "914600", + "executionCost": "948", + "totalCost": "915548" + }, + "external": { + "ACTIVE()": "239", + "EXPIRED()": "218", + "INVALID()": "284", + "REFUNDED()": "195", + "WITHDRAWN()": "217", + "contracts(bytes32)": "infinite", + "getSingleStatus(bytes32)": "infinite", + "getStatus(bytes32[])": "infinite", + "newContract(uint256,uint256,uint256,bytes32,address,address,string,string)": "infinite", + "refund(bytes32)": "infinite", + "withdraw(bytes32,bytes32)": "infinite" + } + } } \ No newline at end of file diff --git a/packages/cactus-plugin-htlc-eth-besu-erc20/src/main/solidity/contracts/HashTimeLock.sol b/packages/cactus-plugin-htlc-eth-besu-erc20/src/main/solidity/contracts/HashedTimeLockContract.sol similarity index 99% rename from packages/cactus-plugin-htlc-eth-besu-erc20/src/main/solidity/contracts/HashTimeLock.sol rename to packages/cactus-plugin-htlc-eth-besu-erc20/src/main/solidity/contracts/HashedTimeLockContract.sol index e0647584b64..6ab56c00664 100644 --- a/packages/cactus-plugin-htlc-eth-besu-erc20/src/main/solidity/contracts/HashTimeLock.sol +++ b/packages/cactus-plugin-htlc-eth-besu-erc20/src/main/solidity/contracts/HashedTimeLockContract.sol @@ -1,5 +1,6 @@ -pragma solidity ^0.8.0; +// SPDX-License-Identifier: Apache-2.0 +pragma solidity 0.8.19; /** @@ -405,7 +406,7 @@ contract HashedTimeLockContract { IERC20(tokenAddress).transferFrom(msg.sender, address(this), inputAmount); bytes32 id = keccak256( - abi.encodePacked( + abi.encode( msg.sender, receiver, inputAmount, @@ -454,7 +455,7 @@ contract HashedTimeLockContract { require(c.expiration > block.timestamp, "INVALID_TIME"); require( - c.hashLock == sha256(abi.encodePacked(secret)), + c.hashLock == keccak256(abi.encode(secret)), "INVALID_SECRET" ); diff --git a/packages/cactus-plugin-htlc-eth-besu/src/main/solidity/contracts/HashTimeLock.json b/packages/cactus-plugin-htlc-eth-besu/src/main/solidity/contracts/HashTimeLock.json index 52dbdce722d..24556a3e936 100644 --- a/packages/cactus-plugin-htlc-eth-besu/src/main/solidity/contracts/HashTimeLock.json +++ b/packages/cactus-plugin-htlc-eth-besu/src/main/solidity/contracts/HashTimeLock.json @@ -316,18 +316,18 @@ "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"inputAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"outputAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"hashLock\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"outputNetwork\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"outputAddress\",\"type\":\"string\"}],\"name\":\"NewContract\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"hashLock\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"Refund\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"secret\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"hashLock\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"contractExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"contracts\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"inputAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"outputAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"status\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"hashLock\",\"type\":\"bytes32\"},{\"internalType\":\"address payable\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"outputNetwork\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"outputAddress\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"getSingleStatus\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"ids\",\"type\":\"bytes32[]\"}],\"name\":\"getStatus\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"outputAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"hashLock\",\"type\":\"bytes32\"},{\"internalType\":\"address payable\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"outputNetwork\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"outputAddress\",\"type\":\"string\"}],\"name\":\"newContract\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"refund\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"secret\",\"type\":\"bytes32\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/workspaces/cacti/packages/cactus-plugin-htlc-eth-besu/src/main/solidity/contracts/HashTimeLock.sol\":\"HashTimeLock\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/workspaces/cacti/packages/cactus-plugin-htlc-eth-besu/src/main/solidity/contracts/HashTimeLock.sol\":{\"keccak256\":\"0xabc77fd57fdaad6467113b890ae9b1e4ce97226c5a0ee0c3b622804ccb0d98b6\",\"urls\":[\"bzz-raw://4977d711b4ecac65823fd08b61578df079d5e17b673f5d94fdd9d870d1fd9398\",\"dweb:/ipfs/QmYNgu9H2qmeoG6gqtTPgEpcB4hxpQwbopBeQNRioELZX4\"]}},\"version\":1}", - "bytecode": "608060405234801561001057600080fd5b5061126d806100206000396000f3fe6080604052600436106100705760003560e01c80637249fbb61161004e5780637249fbb6146100fd578063d36320951461011d578063ec56a37314610130578063fbdf3b431461016557600080fd5b80632f21a6631461007557806363615149146100ab5780636c8244b8146100cd575b600080fd5b34801561008157600080fd5b50610095610090366004610cf5565b610193565b6040516100a29190610db3565b60405180910390f35b3480156100b757600080fd5b506100cb6100c6366004610df7565b610241565b005b3480156100d957600080fd5b506100ed6100e8366004610e19565b6103cc565b60405190151581526020016100a2565b34801561010957600080fd5b506100cb610118366004610e19565b610586565b6100cb61012b366004610e7b565b61069b565b34801561013c57600080fd5b5061015061014b366004610e19565b6109b1565b6040516100a299989796959493929190610f76565b34801561017157600080fd5b50610185610180366004610e19565b610b1a565b6040519081526020016100a2565b60606000825167ffffffffffffffff8111156101b1576101b1610cdf565b6040519080825280602002602001820160405280156101da578160200160208202803683370190505b50905060005b835181101561023a5761020b8482815181106101fe576101fe610fe5565b6020026020010151610b1a565b82828151811061021d5761021d610fe5565b60209081029190910101528061023281610ffb565b9150506101e0565b5092915050565b6000828152602081905260409020600381015460011461029a5760405162461bcd60e51b815260206004820152600f60248201526e535741505f4e4f545f41435449564560881b60448201526064015b60405180910390fd5b428160020154116102bd5760405162461bcd60e51b815260040161029190611022565b604080516020810184905201604051602081830303815290604052805190602001208160040154146103225760405162461bcd60e51b815260206004820152600e60248201526d1253959053125117d4d150d4915560921b6044820152606401610291565b600381810155600681015481546040516001600160a01b039092169181156108fc0291906000818181858888f19350505050158015610365573d6000803e3d6000fd5b506006810154600582015460048301546040516001600160a01b0393841693929092169186917f2d3a5ed13d0553389b4078e01264416362e34d23520fda797fbc17f3905ed131916103bf91888252602082015260400190565b60405180910390a4505050565b60008181526020818152604080832081516101208101835281548152600182015493810193909352600281015491830191909152600381015460608301526004810154608083015260058101546001600160a01b0390811660a084015260068201541660c08301526007810180548493929160e084019161044c90611048565b80601f016020809104026020016040519081016040528092919081815260200182805461047890611048565b80156104c55780601f1061049a576101008083540402835291602001916104c5565b820191906000526020600020905b8154815290600101906020018083116104a857829003601f168201915b505050505081526020016008820180546104de90611048565b80601f016020809104026020016040519081016040528092919081815260200182805461050a90611048565b80156105575780601f1061052c57610100808354040283529160200191610557565b820191906000526020600020905b81548152906001019060200180831161053a57829003601f168201915b505050505081525050905060008160600151036105775750600092915050565b50600192915050565b50919050565b600081815260208190526040902060038101546001146105da5760405162461bcd60e51b815260206004820152600f60248201526e535741505f4e4f545f41435449564560881b6044820152606401610291565b42816002015411156105fe5760405162461bcd60e51b815260040161029190611022565b60026003820155600581015481546040516001600160a01b039092169181156108fc0291906000818181858888f19350505050158015610642573d6000803e3d6000fd5b506006810154600582015460048301546040519081526001600160a01b03928316929091169084907f6fa50d56c31f3efe0cb6ff06232bffce8fe8c4155e3cbb6f2d79dd12631c25229060200160405180910390a45050565b33344289116106bc5760405162461bcd60e51b815260040161029190611022565b600081116106fd5760405162461bcd60e51b815260206004820152600e60248201526d1253959053125117d05353d5539560921b6044820152606401610291565b6040516bffffffffffffffffffffffff19606084811b8216602084015289901b1660348201526048810182905260688101899052608881018a905260009060029060a80160408051601f198184030181529082905261075b9161107c565b602060405180830381855afa158015610778573d6000803e3d6000fd5b5050506040513d601f19601f8201168201806040525081019061079b9190611098565b600081815260208190526040902060030154909150156107eb5760405162461bcd60e51b815260206004820152600b60248201526a535741505f45584953545360a81b6044820152606401610291565b6040518061012001604052808381526020018c81526020018b8152602001600181526020018a8152602001846001600160a01b03168152602001896001600160a01b0316815260200188888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250604080516020601f8901819004810282018101909252878152918101919088908890819084018382808284376000920182905250939094525050838152602081815260409182902084518155908401516001820155908301516002820155606083015160038201556080830151600482015560a08301516005820180546001600160a01b039283166001600160a01b03199182161790915560c085015160068401805491909316911617905560e083015190915060078201906109309082611100565b5061010082015160088201906109469082611100565b50905050876001600160a01b0316836001600160a01b0316827f767d0ffbc3d16cc51fc05770a22976e4b0fda9198e37878b76979429b2d5d88c858f8f8f8e8e8e8e60405161099c9897969594939291906111e9565b60405180910390a45050505050505050505050565b60006020819052908152604090208054600182015460028301546003840154600485015460058601546006870154600788018054979896979596949593946001600160a01b03938416949390921692610a0990611048565b80601f0160208091040260200160405190810160405280929190818152602001828054610a3590611048565b8015610a825780601f10610a5757610100808354040283529160200191610a82565b820191906000526020600020905b815481529060010190602001808311610a6557829003601f168201915b505050505090806008018054610a9790611048565b80601f0160208091040260200160405190810160405280929190818152602001828054610ac390611048565b8015610b105780601f10610ae557610100808354040283529160200191610b10565b820191906000526020600020905b815481529060010190602001808311610af357829003601f168201915b5050505050905089565b60008181526020818152604080832081516101208101835281548152600182015493810193909352600281015491830191909152600381015460608301526004810154608083015260058101546001600160a01b0390811660a084015260068201541660c08301526007810180548493929160e0840191610b9a90611048565b80601f0160208091040260200160405190810160405280929190818152602001828054610bc690611048565b8015610c135780601f10610be857610100808354040283529160200191610c13565b820191906000526020600020905b815481529060010190602001808311610bf657829003601f168201915b50505050508152602001600882018054610c2c90611048565b80601f0160208091040260200160405190810160405280929190818152602001828054610c5890611048565b8015610ca55780601f10610c7a57610100808354040283529160200191610ca5565b820191906000526020600020905b815481529060010190602001808311610c8857829003601f168201915b505050505081525050905060018160600151148015610cc75750428160400151105b15610cd55760049150610580565b6060015192915050565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215610d0857600080fd5b823567ffffffffffffffff80821115610d2057600080fd5b818501915085601f830112610d3457600080fd5b813581811115610d4657610d46610cdf565b8060051b604051601f19603f83011681018181108582111715610d6b57610d6b610cdf565b604052918252848201925083810185019188831115610d8957600080fd5b938501935b82851015610da757843584529385019392850192610d8e565b98975050505050505050565b6020808252825182820181905260009190848201906040850190845b81811015610deb57835183529284019291840191600101610dcf565b50909695505050505050565b60008060408385031215610e0a57600080fd5b50508035926020909101359150565b600060208284031215610e2b57600080fd5b5035919050565b60008083601f840112610e4457600080fd5b50813567ffffffffffffffff811115610e5c57600080fd5b602083019150836020828501011115610e7457600080fd5b9250929050565b60008060008060008060008060c0898b031215610e9757600080fd5b88359750602089013596506040890135955060608901356001600160a01b0381168114610ec357600080fd5b9450608089013567ffffffffffffffff80821115610ee057600080fd5b610eec8c838d01610e32565b909650945060a08b0135915080821115610f0557600080fd5b50610f128b828c01610e32565b999c989b5096995094979396929594505050565b60005b83811015610f41578181015183820152602001610f29565b50506000910152565b60008151808452610f62816020860160208601610f26565b601f01601f19169290920160200192915050565b60006101208b83528a602084015289604084015288606084015287608084015260018060a01b0380881660a085015280871660c0850152508060e0840152610fc081840186610f4a565b9050828103610100840152610fd58185610f4a565b9c9b505050505050505050505050565b634e487b7160e01b600052603260045260246000fd5b60006001820161101b57634e487b7160e01b600052601160045260246000fd5b5060010190565b6020808252600c908201526b494e56414c49445f54494d4560a01b604082015260600190565b600181811c9082168061105c57607f821691505b60208210810361058057634e487b7160e01b600052602260045260246000fd5b6000825161108e818460208701610f26565b9190910192915050565b6000602082840312156110aa57600080fd5b5051919050565b601f8211156110fb57600081815260208120601f850160051c810160208610156110d85750805b601f850160051c820191505b818110156110f7578281556001016110e4565b5050505b505050565b815167ffffffffffffffff81111561111a5761111a610cdf565b61112e816111288454611048565b846110b1565b602080601f831160018114611163576000841561114b5750858301515b600019600386901b1c1916600185901b1785556110f7565b600085815260208120601f198616915b8281101561119257888601518255948401946001909101908401611173565b50858210156111b05787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b88815287602082015286604082015285606082015260c06080820152600061121560c0830186886111c0565b82810360a08401526112288185876111c0565b9b9a505050505050505050505056fea2646970667358221220c627a3bba4baa947ef5e6c36a4506e0dd9730e5317965ee38ec3030fbe154cf264736f6c63430008130033", - "deployedBytecode": "6080604052600436106100705760003560e01c80637249fbb61161004e5780637249fbb6146100fd578063d36320951461011d578063ec56a37314610130578063fbdf3b431461016557600080fd5b80632f21a6631461007557806363615149146100ab5780636c8244b8146100cd575b600080fd5b34801561008157600080fd5b50610095610090366004610cf5565b610193565b6040516100a29190610db3565b60405180910390f35b3480156100b757600080fd5b506100cb6100c6366004610df7565b610241565b005b3480156100d957600080fd5b506100ed6100e8366004610e19565b6103cc565b60405190151581526020016100a2565b34801561010957600080fd5b506100cb610118366004610e19565b610586565b6100cb61012b366004610e7b565b61069b565b34801561013c57600080fd5b5061015061014b366004610e19565b6109b1565b6040516100a299989796959493929190610f76565b34801561017157600080fd5b50610185610180366004610e19565b610b1a565b6040519081526020016100a2565b60606000825167ffffffffffffffff8111156101b1576101b1610cdf565b6040519080825280602002602001820160405280156101da578160200160208202803683370190505b50905060005b835181101561023a5761020b8482815181106101fe576101fe610fe5565b6020026020010151610b1a565b82828151811061021d5761021d610fe5565b60209081029190910101528061023281610ffb565b9150506101e0565b5092915050565b6000828152602081905260409020600381015460011461029a5760405162461bcd60e51b815260206004820152600f60248201526e535741505f4e4f545f41435449564560881b60448201526064015b60405180910390fd5b428160020154116102bd5760405162461bcd60e51b815260040161029190611022565b604080516020810184905201604051602081830303815290604052805190602001208160040154146103225760405162461bcd60e51b815260206004820152600e60248201526d1253959053125117d4d150d4915560921b6044820152606401610291565b600381810155600681015481546040516001600160a01b039092169181156108fc0291906000818181858888f19350505050158015610365573d6000803e3d6000fd5b506006810154600582015460048301546040516001600160a01b0393841693929092169186917f2d3a5ed13d0553389b4078e01264416362e34d23520fda797fbc17f3905ed131916103bf91888252602082015260400190565b60405180910390a4505050565b60008181526020818152604080832081516101208101835281548152600182015493810193909352600281015491830191909152600381015460608301526004810154608083015260058101546001600160a01b0390811660a084015260068201541660c08301526007810180548493929160e084019161044c90611048565b80601f016020809104026020016040519081016040528092919081815260200182805461047890611048565b80156104c55780601f1061049a576101008083540402835291602001916104c5565b820191906000526020600020905b8154815290600101906020018083116104a857829003601f168201915b505050505081526020016008820180546104de90611048565b80601f016020809104026020016040519081016040528092919081815260200182805461050a90611048565b80156105575780601f1061052c57610100808354040283529160200191610557565b820191906000526020600020905b81548152906001019060200180831161053a57829003601f168201915b505050505081525050905060008160600151036105775750600092915050565b50600192915050565b50919050565b600081815260208190526040902060038101546001146105da5760405162461bcd60e51b815260206004820152600f60248201526e535741505f4e4f545f41435449564560881b6044820152606401610291565b42816002015411156105fe5760405162461bcd60e51b815260040161029190611022565b60026003820155600581015481546040516001600160a01b039092169181156108fc0291906000818181858888f19350505050158015610642573d6000803e3d6000fd5b506006810154600582015460048301546040519081526001600160a01b03928316929091169084907f6fa50d56c31f3efe0cb6ff06232bffce8fe8c4155e3cbb6f2d79dd12631c25229060200160405180910390a45050565b33344289116106bc5760405162461bcd60e51b815260040161029190611022565b600081116106fd5760405162461bcd60e51b815260206004820152600e60248201526d1253959053125117d05353d5539560921b6044820152606401610291565b6040516bffffffffffffffffffffffff19606084811b8216602084015289901b1660348201526048810182905260688101899052608881018a905260009060029060a80160408051601f198184030181529082905261075b9161107c565b602060405180830381855afa158015610778573d6000803e3d6000fd5b5050506040513d601f19601f8201168201806040525081019061079b9190611098565b600081815260208190526040902060030154909150156107eb5760405162461bcd60e51b815260206004820152600b60248201526a535741505f45584953545360a81b6044820152606401610291565b6040518061012001604052808381526020018c81526020018b8152602001600181526020018a8152602001846001600160a01b03168152602001896001600160a01b0316815260200188888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250604080516020601f8901819004810282018101909252878152918101919088908890819084018382808284376000920182905250939094525050838152602081815260409182902084518155908401516001820155908301516002820155606083015160038201556080830151600482015560a08301516005820180546001600160a01b039283166001600160a01b03199182161790915560c085015160068401805491909316911617905560e083015190915060078201906109309082611100565b5061010082015160088201906109469082611100565b50905050876001600160a01b0316836001600160a01b0316827f767d0ffbc3d16cc51fc05770a22976e4b0fda9198e37878b76979429b2d5d88c858f8f8f8e8e8e8e60405161099c9897969594939291906111e9565b60405180910390a45050505050505050505050565b60006020819052908152604090208054600182015460028301546003840154600485015460058601546006870154600788018054979896979596949593946001600160a01b03938416949390921692610a0990611048565b80601f0160208091040260200160405190810160405280929190818152602001828054610a3590611048565b8015610a825780601f10610a5757610100808354040283529160200191610a82565b820191906000526020600020905b815481529060010190602001808311610a6557829003601f168201915b505050505090806008018054610a9790611048565b80601f0160208091040260200160405190810160405280929190818152602001828054610ac390611048565b8015610b105780601f10610ae557610100808354040283529160200191610b10565b820191906000526020600020905b815481529060010190602001808311610af357829003601f168201915b5050505050905089565b60008181526020818152604080832081516101208101835281548152600182015493810193909352600281015491830191909152600381015460608301526004810154608083015260058101546001600160a01b0390811660a084015260068201541660c08301526007810180548493929160e0840191610b9a90611048565b80601f0160208091040260200160405190810160405280929190818152602001828054610bc690611048565b8015610c135780601f10610be857610100808354040283529160200191610c13565b820191906000526020600020905b815481529060010190602001808311610bf657829003601f168201915b50505050508152602001600882018054610c2c90611048565b80601f0160208091040260200160405190810160405280929190818152602001828054610c5890611048565b8015610ca55780601f10610c7a57610100808354040283529160200191610ca5565b820191906000526020600020905b815481529060010190602001808311610c8857829003601f168201915b505050505081525050905060018160600151148015610cc75750428160400151105b15610cd55760049150610580565b6060015192915050565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215610d0857600080fd5b823567ffffffffffffffff80821115610d2057600080fd5b818501915085601f830112610d3457600080fd5b813581811115610d4657610d46610cdf565b8060051b604051601f19603f83011681018181108582111715610d6b57610d6b610cdf565b604052918252848201925083810185019188831115610d8957600080fd5b938501935b82851015610da757843584529385019392850192610d8e565b98975050505050505050565b6020808252825182820181905260009190848201906040850190845b81811015610deb57835183529284019291840191600101610dcf565b50909695505050505050565b60008060408385031215610e0a57600080fd5b50508035926020909101359150565b600060208284031215610e2b57600080fd5b5035919050565b60008083601f840112610e4457600080fd5b50813567ffffffffffffffff811115610e5c57600080fd5b602083019150836020828501011115610e7457600080fd5b9250929050565b60008060008060008060008060c0898b031215610e9757600080fd5b88359750602089013596506040890135955060608901356001600160a01b0381168114610ec357600080fd5b9450608089013567ffffffffffffffff80821115610ee057600080fd5b610eec8c838d01610e32565b909650945060a08b0135915080821115610f0557600080fd5b50610f128b828c01610e32565b999c989b5096995094979396929594505050565b60005b83811015610f41578181015183820152602001610f29565b50506000910152565b60008151808452610f62816020860160208601610f26565b601f01601f19169290920160200192915050565b60006101208b83528a602084015289604084015288606084015287608084015260018060a01b0380881660a085015280871660c0850152508060e0840152610fc081840186610f4a565b9050828103610100840152610fd58185610f4a565b9c9b505050505050505050505050565b634e487b7160e01b600052603260045260246000fd5b60006001820161101b57634e487b7160e01b600052601160045260246000fd5b5060010190565b6020808252600c908201526b494e56414c49445f54494d4560a01b604082015260600190565b600181811c9082168061105c57607f821691505b60208210810361058057634e487b7160e01b600052602260045260246000fd5b6000825161108e818460208701610f26565b9190910192915050565b6000602082840312156110aa57600080fd5b5051919050565b601f8211156110fb57600081815260208120601f850160051c810160208610156110d85750805b601f850160051c820191505b818110156110f7578281556001016110e4565b5050505b505050565b815167ffffffffffffffff81111561111a5761111a610cdf565b61112e816111288454611048565b846110b1565b602080601f831160018114611163576000841561114b5750858301515b600019600386901b1c1916600185901b1785556110f7565b600085815260208120601f198616915b8281101561119257888601518255948401946001909101908401611173565b50858210156111b05787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b88815287602082015286604082015285606082015260c06080820152600061121560c0830186886111c0565b82810360a08401526112288185876111c0565b9b9a505050505050505050505056fea2646970667358221220c627a3bba4baa947ef5e6c36a4506e0dd9730e5317965ee38ec3030fbe154cf264736f6c63430008130033", - "sourceMap": "25:4088:0:-:0;;;;;;;;;;;;;;;;;;;", - "deployedSourceMap": "25:4088:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3210:303;;;;;;;;;;-1:-1:-1;3210:303:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2383:466;;;;;;;;;;-1:-1:-1;2383:466:0;;;;;:::i;:::-;;:::i;:::-;;3854:257;;;;;;;;;;-1:-1:-1;3854:257:0;;;;;:::i;:::-;;:::i;:::-;;;2506:14:1;;2499:22;2481:41;;2469:2;2454:18;3854:257:0;2341:187:1;2855:349:0;;;;;;;;;;-1:-1:-1;2855:349:0;;;;;:::i;:::-;;:::i;1438:939::-;;;;;;:::i;:::-;;:::i;53:49::-;;;;;;;;;;-1:-1:-1;53:49:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;:::i;3519:329::-;;;;;;;;;;-1:-1:-1;3519:329:0;;;;;:::i;:::-;;:::i;:::-;;;5678:25:1;;;5666:2;5651:18;3519:329:0;5532:177:1;3210:303:0;3272:16;3300:23;3340:3;:10;3326:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3326:25:0;;3300:51;;3367:13;3362:121;3394:3;:10;3386:5;:18;3362:121;;;3445:27;3461:3;3465:5;3461:10;;;;;;;;:::i;:::-;;;;;;;3445:15;:27::i;:::-;3429:6;3436:5;3429:13;;;;;;;;:::i;:::-;;;;;;;;;;:43;3406:7;;;;:::i;:::-;;;;3362:121;;;-1:-1:-1;3500:6:0;3210:303;-1:-1:-1;;3210:303:0:o;2383:466::-;2448:22;2473:13;;;;;;;;;;2505:8;;;;323:1;2505:18;2497:46;;;;-1:-1:-1;;;2497:46:0;;6285:2:1;2497:46:0;;;6267:21:1;6324:2;6304:18;;;6297:30;-1:-1:-1;;;6343:18:1;;;6336:45;6398:18;;2497:46:0;;;;;;;;;2577:15;2562:1;:12;;;:30;2554:55;;;;-1:-1:-1;;;2554:55:0;;;;;;;:::i;:::-;2652:24;;;;;;6897:19:1;;;6932:12;2652:24:0;;;;;;;;;;;;2642:35;;;;;;2628:1;:10;;;:49;2620:76;;;;-1:-1:-1;;;2620:76:0;;7157:2:1;2620:76:0;;;7139:21:1;7196:2;7176:18;;;7169:30;-1:-1:-1;;;7215:18:1;;;7208:44;7269:18;;2620:76:0;6955:338:1;2620:76:0;479:1;2707:8;;;:20;2738:10;;;;2758:13;;2738:34;;-1:-1:-1;;;;;2738:10:0;;;;:34;;;;;2758:13;2738:10;:34;:10;:34;2758:13;2738:10;:34;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2831:10:0;;;;2821:8;;;;2809:10;;;;2788:54;;-1:-1:-1;;;;;2831:10:0;;;;2821:8;;;;;2797:2;;2788:54;;;;2801:6;7472:25:1;;7528:2;7513:18;;7506:34;7460:2;7445:18;;7298:248;2788:54:0;;;;;;;;2438:411;2383:466;;:::o;3854:257::-;3911:11;3969:13;;;;;;;;;;;3934:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3934:48:0;;;;;;;;;;;;;;;;;;;;;3911:11;;3934:48;3969:13;3934:48;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;247:1;3997:12;:19;;;:27;3993:112;;-1:-1:-1;4047:5:0;;3854:257;-1:-1:-1;;3854:257:0:o;3993:112::-;-1:-1:-1;4090:4:0;;3854:257;-1:-1:-1;;3854:257:0:o;3993:112::-;3924:187;3854:257;;;:::o;2855:349::-;2902:22;2927:13;;;;;;;;;;2959:8;;;;323:1;2959:18;2951:46;;;;-1:-1:-1;;;2951:46:0;;6285:2:1;2951:46:0;;;6267:21:1;6324:2;6304:18;;;6297:30;-1:-1:-1;;;6343:18:1;;;6336:45;6398:18;;2951:46:0;6083:339:1;2951:46:0;3032:15;3016:1;:12;;;:31;;3008:56;;;;-1:-1:-1;;;3008:56:0;;;;;;;:::i;:::-;407:1;3075:8;;;:19;3105:8;;;;3123:13;;3105:32;;-1:-1:-1;;;;;3105:8:0;;;;:32;;;;;3123:13;3105:8;:32;:8;:32;3123:13;3105:8;:32;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3186:10:0;;;;3176:8;;;;3164:10;;;;3153:44;;5678:25:1;;;-1:-1:-1;;;;;3186:10:0;;;;3176:8;;;;3160:2;;3153:44;;5666:2:1;5651:18;3153:44:0;;;;;;;2892:312;2855:349;:::o;1438:939::-;1721:10;1764:9;1805:15;1792:28;;1784:53;;;;-1:-1:-1;;;1784:53:0;;;;;;;:::i;:::-;1870:1;1856:11;:15;1848:42;;;;-1:-1:-1;;;1848:42:0;;8320:2:1;1848:42:0;;;8302:21:1;8359:2;8339:18;;;8332:30;-1:-1:-1;;;8378:18:1;;;8371:44;8432:18;;1848:42:0;8118:338:1;1848:42:0;1921:69;;-1:-1:-1;;8804:2:1;8800:15;;;8796:24;;1921:69:0;;;8784:37:1;8855:15;;;8851:24;8837:12;;;8830:46;8892:12;;;8885:28;;;8929:12;;;8922:28;;;8966:13;;;8959:29;;;1901:10:0;;1914:77;;9004:13:1;;1921:69:0;;;-1:-1:-1;;1921:69:0;;;;;;;;;;1914:77;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;247:1;2010:13;;;;;;;;;;:20;;;1901:90;;-1:-1:-1;2010:28:0;2002:52;;;;-1:-1:-1;;;2002:52:0;;9711:2:1;2002:52:0;;;9693:21:1;9750:2;9730:18;;;9723:30;-1:-1:-1;;;9769:18:1;;;9762:41;9820:18;;2002:52:0;9509:335:1;2002:52:0;2081:139;;;;;;;;2107:11;2081:139;;;;2120:12;2081:139;;;;2134:10;2081:139;;;;323:1;2081:139;;;;2154:8;2081:139;;;;2164:6;-1:-1:-1;;;;;2081:139:0;;;;;2172:8;-1:-1:-1;;;;;2081:139:0;;;;;2182:13;;2081:139;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2081:139:0;;;-1:-1:-1;2081:139:0;;;;;;;;;;;;;;;;;;;;;;;;;;;2197:13;;;;;;2081:139;;2197:13;;;;2081:139;;;;;;;;-1:-1:-1;2081:139:0;;;;-1:-1:-1;;2065:13:0;;;;;;;;;;;;:155;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2065:155:0;;;-1:-1:-1;;;;;;2065:155:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:13;;-1:-1:-1;2065:155:0;;;;;;;;:::i;:::-;-1:-1:-1;2065:155:0;;;;;;;;;;;;:::i;:::-;;;;;2322:8;-1:-1:-1;;;;;2236:134:0;2314:6;-1:-1:-1;;;;;2236:134:0;2300:2;2236:134;2261:11;2274:12;2288:10;2304:8;2332:13;;2347;;2236:134;;;;;;;;;;;;;:::i;:::-;;;;;;;;1678:699;;;1438:939;;;;;;;;:::o;53:49::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;53:49:0;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3519:329::-;3577:14;3638:13;;;;;;;;;;;3603:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3603:48:0;;;;;;;;;;;;;;;;;;;;;3577:14;;3603:48;3638:13;3603:48;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;323:1;3666:12;:19;;;:29;:74;;;;;3725:15;3699:12;:23;;;:41;3666:74;3662:180;;;550:1;3756:16;;3662:180;;;3812:19;;;;3519:329;-1:-1:-1;;3519:329:0:o;14:127:1:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:1115;230:6;261:2;304;292:9;283:7;279:23;275:32;272:52;;;320:1;317;310:12;272:52;360:9;347:23;389:18;430:2;422:6;419:14;416:34;;;446:1;443;436:12;416:34;484:6;473:9;469:22;459:32;;529:7;522:4;518:2;514:13;510:27;500:55;;551:1;548;541:12;500:55;587:2;574:16;609:2;605;602:10;599:36;;;615:18;;:::i;:::-;661:2;658:1;654:10;693:2;687:9;756:2;752:7;747:2;743;739:11;735:25;727:6;723:38;811:6;799:10;796:22;791:2;779:10;776:18;773:46;770:72;;;822:18;;:::i;:::-;858:2;851:22;908:18;;;942:15;;;;-1:-1:-1;984:11:1;;;980:20;;;1012:19;;;1009:39;;;1044:1;1041;1034:12;1009:39;1068:11;;;;1088:142;1104:6;1099:3;1096:15;1088:142;;;1170:17;;1158:30;;1121:12;;;;1208;;;;1088:142;;;1249:6;146:1115;-1:-1:-1;;;;;;;;146:1115:1:o;1266:632::-;1437:2;1489:21;;;1559:13;;1462:18;;;1581:22;;;1408:4;;1437:2;1660:15;;;;1634:2;1619:18;;;1408:4;1703:169;1717:6;1714:1;1711:13;1703:169;;;1778:13;;1766:26;;1847:15;;;;1812:12;;;;1739:1;1732:9;1703:169;;;-1:-1:-1;1889:3:1;;1266:632;-1:-1:-1;;;;;;1266:632:1:o;1903:248::-;1971:6;1979;2032:2;2020:9;2011:7;2007:23;2003:32;2000:52;;;2048:1;2045;2038:12;2000:52;-1:-1:-1;;2071:23:1;;;2141:2;2126:18;;;2113:32;;-1:-1:-1;1903:248:1:o;2156:180::-;2215:6;2268:2;2256:9;2247:7;2243:23;2239:32;2236:52;;;2284:1;2281;2274:12;2236:52;-1:-1:-1;2307:23:1;;2156:180;-1:-1:-1;2156:180:1:o;2533:348::-;2585:8;2595:6;2649:3;2642:4;2634:6;2630:17;2626:27;2616:55;;2667:1;2664;2657:12;2616:55;-1:-1:-1;2690:20:1;;2733:18;2722:30;;2719:50;;;2765:1;2762;2755:12;2719:50;2802:4;2794:6;2790:17;2778:29;;2854:3;2847:4;2838:6;2830;2826:19;2822:30;2819:39;2816:59;;;2871:1;2868;2861:12;2816:59;2533:348;;;;;:::o;2886:1110::-;3022:6;3030;3038;3046;3054;3062;3070;3078;3131:3;3119:9;3110:7;3106:23;3102:33;3099:53;;;3148:1;3145;3138:12;3099:53;3171:23;;;-1:-1:-1;3241:2:1;3226:18;;3213:32;;-1:-1:-1;3292:2:1;3277:18;;3264:32;;-1:-1:-1;3346:2:1;3331:18;;3318:32;-1:-1:-1;;;;;3379:31:1;;3369:42;;3359:70;;3425:1;3422;3415:12;3359:70;3448:5;-1:-1:-1;3504:3:1;3489:19;;3476:33;3528:18;3558:14;;;3555:34;;;3585:1;3582;3575:12;3555:34;3624:59;3675:7;3666:6;3655:9;3651:22;3624:59;:::i;:::-;3702:8;;-1:-1:-1;3598:85:1;-1:-1:-1;3790:3:1;3775:19;;3762:33;;-1:-1:-1;3807:16:1;;;3804:36;;;3836:1;3833;3826:12;3804:36;;3875:61;3928:7;3917:8;3906:9;3902:24;3875:61;:::i;:::-;2886:1110;;;;-1:-1:-1;2886:1110:1;;-1:-1:-1;2886:1110:1;;;;;;3955:8;-1:-1:-1;;;2886:1110:1:o;4001:250::-;4086:1;4096:113;4110:6;4107:1;4104:13;4096:113;;;4186:11;;;4180:18;4167:11;;;4160:39;4132:2;4125:10;4096:113;;;-1:-1:-1;;4243:1:1;4225:16;;4218:27;4001:250::o;4256:271::-;4298:3;4336:5;4330:12;4363:6;4358:3;4351:19;4379:76;4448:6;4441:4;4436:3;4432:14;4425:4;4418:5;4414:16;4379:76;:::i;:::-;4509:2;4488:15;-1:-1:-1;;4484:29:1;4475:39;;;;4516:4;4471:50;;4256:271;-1:-1:-1;;4256:271:1:o;4532:995::-;4920:4;4949:3;4979:6;4968:9;4961:25;5022:6;5017:2;5006:9;5002:18;4995:34;5065:6;5060:2;5049:9;5045:18;5038:34;5108:6;5103:2;5092:9;5088:18;5081:34;5152:6;5146:3;5135:9;5131:19;5124:35;5195:1;5191;5186:3;5182:11;5178:19;5246:2;5238:6;5234:15;5228:3;5217:9;5213:19;5206:44;5299:2;5291:6;5287:15;5281:3;5270:9;5266:19;5259:44;;5340:2;5334:3;5323:9;5319:19;5312:31;5366:45;5407:2;5396:9;5392:18;5384:6;5366:45;:::i;:::-;5352:59;;5460:9;5452:6;5448:22;5442:3;5431:9;5427:19;5420:51;5488:33;5514:6;5506;5488:33;:::i;:::-;5480:41;4532:995;-1:-1:-1;;;;;;;;;;;;4532:995:1:o;5714:127::-;5775:10;5770:3;5766:20;5763:1;5756:31;5806:4;5803:1;5796:15;5830:4;5827:1;5820:15;5846:232;5885:3;5906:17;;;5903:140;;5965:10;5960:3;5956:20;5953:1;5946:31;6000:4;5997:1;5990:15;6028:4;6025:1;6018:15;5903:140;-1:-1:-1;6070:1:1;6059:13;;5846:232::o;6427:336::-;6629:2;6611:21;;;6668:2;6648:18;;;6641:30;-1:-1:-1;;;6702:2:1;6687:18;;6680:42;6754:2;6739:18;;6427:336::o;7551:380::-;7630:1;7626:12;;;;7673;;;7694:61;;7748:4;7740:6;7736:17;7726:27;;7694:61;7801:2;7793:6;7790:14;7770:18;7767:38;7764:161;;7847:10;7842:3;7838:20;7835:1;7828:31;7882:4;7879:1;7872:15;7910:4;7907:1;7900:15;9028:287;9157:3;9195:6;9189:13;9211:66;9270:6;9265:3;9258:4;9250:6;9246:17;9211:66;:::i;:::-;9293:16;;;;;9028:287;-1:-1:-1;;9028:287:1:o;9320:184::-;9390:6;9443:2;9431:9;9422:7;9418:23;9414:32;9411:52;;;9459:1;9456;9449:12;9411:52;-1:-1:-1;9482:16:1;;9320:184;-1:-1:-1;9320:184:1:o;9975:545::-;10077:2;10072:3;10069:11;10066:448;;;10113:1;10138:5;10134:2;10127:17;10183:4;10179:2;10169:19;10253:2;10241:10;10237:19;10234:1;10230:27;10224:4;10220:38;10289:4;10277:10;10274:20;10271:47;;;-1:-1:-1;10312:4:1;10271:47;10367:2;10362:3;10358:12;10355:1;10351:20;10345:4;10341:31;10331:41;;10422:82;10440:2;10433:5;10430:13;10422:82;;;10485:17;;;10466:1;10455:13;10422:82;;;10426:3;;;10066:448;9975:545;;;:::o;10696:1352::-;10822:3;10816:10;10849:18;10841:6;10838:30;10835:56;;;10871:18;;:::i;:::-;10900:97;10990:6;10950:38;10982:4;10976:11;10950:38;:::i;:::-;10944:4;10900:97;:::i;:::-;11052:4;;11116:2;11105:14;;11133:1;11128:663;;;;11835:1;11852:6;11849:89;;;-1:-1:-1;11904:19:1;;;11898:26;11849:89;-1:-1:-1;;10653:1:1;10649:11;;;10645:24;10641:29;10631:40;10677:1;10673:11;;;10628:57;11951:81;;11098:944;;11128:663;9922:1;9915:14;;;9959:4;9946:18;;-1:-1:-1;;11164:20:1;;;11282:236;11296:7;11293:1;11290:14;11282:236;;;11385:19;;;11379:26;11364:42;;11477:27;;;;11445:1;11433:14;;;;11312:19;;11282:236;;;11286:3;11546:6;11537:7;11534:19;11531:201;;;11607:19;;;11601:26;-1:-1:-1;;11690:1:1;11686:14;;;11702:3;11682:24;11678:37;11674:42;11659:58;11644:74;;11531:201;-1:-1:-1;;;;;11778:1:1;11762:14;;;11758:22;11745:36;;-1:-1:-1;10696:1352:1:o;12053:267::-;12142:6;12137:3;12130:19;12194:6;12187:5;12180:4;12175:3;12171:14;12158:43;-1:-1:-1;12246:1:1;12221:16;;;12239:4;12217:27;;;12210:38;;;;12302:2;12281:15;;;-1:-1:-1;;12277:29:1;12268:39;;;12264:50;;12053:267::o;12325:725::-;12654:6;12643:9;12636:25;12697:6;12692:2;12681:9;12677:18;12670:34;12740:6;12735:2;12724:9;12720:18;12713:34;12783:6;12778:2;12767:9;12763:18;12756:34;12827:3;12821;12810:9;12806:19;12799:32;12617:4;12854:63;12912:3;12901:9;12897:19;12889:6;12881;12854:63;:::i;:::-;12966:9;12958:6;12954:22;12948:3;12937:9;12933:19;12926:51;12994:50;13037:6;13029;13021;12994:50;:::i;:::-;12986:58;12325:725;-1:-1:-1;;;;;;;;;;;12325:725:1:o", - "sourcePath": "/workspaces/cacti/packages/cactus-plugin-htlc-eth-besu/src/main/solidity/contracts/HashTimeLock.sol", + "metadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"inputAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"outputAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"hashLock\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"outputNetwork\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"outputAddress\",\"type\":\"string\"}],\"name\":\"NewContract\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"hashLock\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"Refund\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"secret\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"hashLock\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"contractExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"contracts\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"inputAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"outputAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"status\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"hashLock\",\"type\":\"bytes32\"},{\"internalType\":\"address payable\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"outputNetwork\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"outputAddress\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"getSingleStatus\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"ids\",\"type\":\"bytes32[]\"}],\"name\":\"getStatus\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"outputAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"hashLock\",\"type\":\"bytes32\"},{\"internalType\":\"address payable\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"outputNetwork\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"outputAddress\",\"type\":\"string\"}],\"name\":\"newContract\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"refund\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"secret\",\"type\":\"bytes32\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/peter/a/cacti-1/packages/cactus-plugin-htlc-eth-besu/src/main/solidity/contracts/HashTimeLock.sol\":\"HashTimeLock\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/peter/a/cacti-1/packages/cactus-plugin-htlc-eth-besu/src/main/solidity/contracts/HashTimeLock.sol\":{\"keccak256\":\"0xef03f900c730f542f4cc625272085ccbc4e8318af9573b87d05779e6c0f3ac82\",\"urls\":[\"bzz-raw://2640489b365f0e9161335e75a31fc0c103550e6015d28dd035eca0e6537724c1\",\"dweb:/ipfs/QmWunBXi4R2jntRrCVLriicBGFUVQ35DUCiyyaV59y45nm\"]}},\"version\":1}", + "bytecode": "608060405234801561001057600080fd5b506111dd806100206000396000f3fe6080604052600436106100705760003560e01c80637249fbb61161004e5780637249fbb6146100fd578063d36320951461011d578063ec56a37314610130578063fbdf3b431461016557600080fd5b80632f21a6631461007557806363615149146100ab5780636c8244b8146100cd575b600080fd5b34801561008157600080fd5b50610095610090366004610ca4565b610193565b6040516100a29190610d62565b60405180910390f35b3480156100b757600080fd5b506100cb6100c6366004610da6565b610241565b005b3480156100d957600080fd5b506100ed6100e8366004610dc8565b6103cc565b60405190151581526020016100a2565b34801561010957600080fd5b506100cb610118366004610dc8565b610586565b6100cb61012b366004610e2a565b61069b565b34801561013c57600080fd5b5061015061014b366004610dc8565b610960565b6040516100a299989796959493929190610f1b565b34801561017157600080fd5b50610185610180366004610dc8565b610ac9565b6040519081526020016100a2565b60606000825167ffffffffffffffff8111156101b1576101b1610c8e565b6040519080825280602002602001820160405280156101da578160200160208202803683370190505b50905060005b835181101561023a5761020b8482815181106101fe576101fe610f8a565b6020026020010151610ac9565b82828151811061021d5761021d610f8a565b60209081029190910101528061023281610fa0565b9150506101e0565b5092915050565b6000828152602081905260409020600381015460011461029a5760405162461bcd60e51b815260206004820152600f60248201526e535741505f4e4f545f41435449564560881b60448201526064015b60405180910390fd5b428160020154116102bd5760405162461bcd60e51b815260040161029190610fc7565b604080516020810184905201604051602081830303815290604052805190602001208160040154146103225760405162461bcd60e51b815260206004820152600e60248201526d1253959053125117d4d150d4915560921b6044820152606401610291565b600381810155600681015481546040516001600160a01b039092169181156108fc0291906000818181858888f19350505050158015610365573d6000803e3d6000fd5b506006810154600582015460048301546040516001600160a01b0393841693929092169186917f2d3a5ed13d0553389b4078e01264416362e34d23520fda797fbc17f3905ed131916103bf91888252602082015260400190565b60405180910390a4505050565b60008181526020818152604080832081516101208101835281548152600182015493810193909352600281015491830191909152600381015460608301526004810154608083015260058101546001600160a01b0390811660a084015260068201541660c08301526007810180548493929160e084019161044c90610fed565b80601f016020809104026020016040519081016040528092919081815260200182805461047890610fed565b80156104c55780601f1061049a576101008083540402835291602001916104c5565b820191906000526020600020905b8154815290600101906020018083116104a857829003601f168201915b505050505081526020016008820180546104de90610fed565b80601f016020809104026020016040519081016040528092919081815260200182805461050a90610fed565b80156105575780601f1061052c57610100808354040283529160200191610557565b820191906000526020600020905b81548152906001019060200180831161053a57829003601f168201915b505050505081525050905060008160600151036105775750600092915050565b50600192915050565b50919050565b600081815260208190526040902060038101546001146105da5760405162461bcd60e51b815260206004820152600f60248201526e535741505f4e4f545f41435449564560881b6044820152606401610291565b42816002015411156105fe5760405162461bcd60e51b815260040161029190610fc7565b60026003820155600581015481546040516001600160a01b039092169181156108fc0291906000818181858888f19350505050158015610642573d6000803e3d6000fd5b506006810154600582015460048301546040519081526001600160a01b03928316929091169084907f6fa50d56c31f3efe0cb6ff06232bffce8fe8c4155e3cbb6f2d79dd12631c25229060200160405180910390a45050565b33344289116106bc5760405162461bcd60e51b815260040161029190610fc7565b600081116106fd5760405162461bcd60e51b815260206004820152600e60248201526d1253959053125117d05353d5539560921b6044820152606401610291565b604080516001600160a01b038085166020830152891691810191909152606081018290526080810189905260a081018a905260009060c00160408051601f1981840301815291815281516020928301206000818152928390529120600301549091501561079a5760405162461bcd60e51b815260206004820152600b60248201526a535741505f45584953545360a81b6044820152606401610291565b6040518061012001604052808381526020018c81526020018b8152602001600181526020018a8152602001846001600160a01b03168152602001896001600160a01b0316815260200188888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250604080516020601f8901819004810282018101909252878152918101919088908890819084018382808284376000920182905250939094525050838152602081815260409182902084518155908401516001820155908301516002820155606083015160038201556080830151600482015560a08301516005820180546001600160a01b039283166001600160a01b03199182161790915560c085015160068401805491909316911617905560e083015190915060078201906108df9082611070565b5061010082015160088201906108f59082611070565b50905050876001600160a01b0316836001600160a01b0316827f767d0ffbc3d16cc51fc05770a22976e4b0fda9198e37878b76979429b2d5d88c858f8f8f8e8e8e8e60405161094b989796959493929190611159565b60405180910390a45050505050505050505050565b60006020819052908152604090208054600182015460028301546003840154600485015460058601546006870154600788018054979896979596949593946001600160a01b039384169493909216926109b890610fed565b80601f01602080910402602001604051908101604052809291908181526020018280546109e490610fed565b8015610a315780601f10610a0657610100808354040283529160200191610a31565b820191906000526020600020905b815481529060010190602001808311610a1457829003601f168201915b505050505090806008018054610a4690610fed565b80601f0160208091040260200160405190810160405280929190818152602001828054610a7290610fed565b8015610abf5780601f10610a9457610100808354040283529160200191610abf565b820191906000526020600020905b815481529060010190602001808311610aa257829003601f168201915b5050505050905089565b60008181526020818152604080832081516101208101835281548152600182015493810193909352600281015491830191909152600381015460608301526004810154608083015260058101546001600160a01b0390811660a084015260068201541660c08301526007810180548493929160e0840191610b4990610fed565b80601f0160208091040260200160405190810160405280929190818152602001828054610b7590610fed565b8015610bc25780601f10610b9757610100808354040283529160200191610bc2565b820191906000526020600020905b815481529060010190602001808311610ba557829003601f168201915b50505050508152602001600882018054610bdb90610fed565b80601f0160208091040260200160405190810160405280929190818152602001828054610c0790610fed565b8015610c545780601f10610c2957610100808354040283529160200191610c54565b820191906000526020600020905b815481529060010190602001808311610c3757829003601f168201915b505050505081525050905060018160600151148015610c765750428160400151105b15610c845760049150610580565b6060015192915050565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215610cb757600080fd5b823567ffffffffffffffff80821115610ccf57600080fd5b818501915085601f830112610ce357600080fd5b813581811115610cf557610cf5610c8e565b8060051b604051601f19603f83011681018181108582111715610d1a57610d1a610c8e565b604052918252848201925083810185019188831115610d3857600080fd5b938501935b82851015610d5657843584529385019392850192610d3d565b98975050505050505050565b6020808252825182820181905260009190848201906040850190845b81811015610d9a57835183529284019291840191600101610d7e565b50909695505050505050565b60008060408385031215610db957600080fd5b50508035926020909101359150565b600060208284031215610dda57600080fd5b5035919050565b60008083601f840112610df357600080fd5b50813567ffffffffffffffff811115610e0b57600080fd5b602083019150836020828501011115610e2357600080fd5b9250929050565b60008060008060008060008060c0898b031215610e4657600080fd5b88359750602089013596506040890135955060608901356001600160a01b0381168114610e7257600080fd5b9450608089013567ffffffffffffffff80821115610e8f57600080fd5b610e9b8c838d01610de1565b909650945060a08b0135915080821115610eb457600080fd5b50610ec18b828c01610de1565b999c989b5096995094979396929594505050565b6000815180845260005b81811015610efb57602081850181015186830182015201610edf565b506000602082860101526020601f19601f83011685010191505092915050565b60006101208b83528a602084015289604084015288606084015287608084015260018060a01b0380881660a085015280871660c0850152508060e0840152610f6581840186610ed5565b9050828103610100840152610f7a8185610ed5565b9c9b505050505050505050505050565b634e487b7160e01b600052603260045260246000fd5b600060018201610fc057634e487b7160e01b600052601160045260246000fd5b5060010190565b6020808252600c908201526b494e56414c49445f54494d4560a01b604082015260600190565b600181811c9082168061100157607f821691505b60208210810361058057634e487b7160e01b600052602260045260246000fd5b601f82111561106b57600081815260208120601f850160051c810160208610156110485750805b601f850160051c820191505b8181101561106757828155600101611054565b5050505b505050565b815167ffffffffffffffff81111561108a5761108a610c8e565b61109e816110988454610fed565b84611021565b602080601f8311600181146110d357600084156110bb5750858301515b600019600386901b1c1916600185901b178555611067565b600085815260208120601f198616915b82811015611102578886015182559484019460019091019084016110e3565b50858210156111205787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b88815287602082015286604082015285606082015260c06080820152600061118560c083018688611130565b82810360a0840152611198818587611130565b9b9a505050505050505050505056fea264697066735822122030bbf0da5a4d9f76e8e8e188736a3c81e856842b4cb98fa89761c5b98db9504364736f6c63430008130033", + "deployedBytecode": "6080604052600436106100705760003560e01c80637249fbb61161004e5780637249fbb6146100fd578063d36320951461011d578063ec56a37314610130578063fbdf3b431461016557600080fd5b80632f21a6631461007557806363615149146100ab5780636c8244b8146100cd575b600080fd5b34801561008157600080fd5b50610095610090366004610ca4565b610193565b6040516100a29190610d62565b60405180910390f35b3480156100b757600080fd5b506100cb6100c6366004610da6565b610241565b005b3480156100d957600080fd5b506100ed6100e8366004610dc8565b6103cc565b60405190151581526020016100a2565b34801561010957600080fd5b506100cb610118366004610dc8565b610586565b6100cb61012b366004610e2a565b61069b565b34801561013c57600080fd5b5061015061014b366004610dc8565b610960565b6040516100a299989796959493929190610f1b565b34801561017157600080fd5b50610185610180366004610dc8565b610ac9565b6040519081526020016100a2565b60606000825167ffffffffffffffff8111156101b1576101b1610c8e565b6040519080825280602002602001820160405280156101da578160200160208202803683370190505b50905060005b835181101561023a5761020b8482815181106101fe576101fe610f8a565b6020026020010151610ac9565b82828151811061021d5761021d610f8a565b60209081029190910101528061023281610fa0565b9150506101e0565b5092915050565b6000828152602081905260409020600381015460011461029a5760405162461bcd60e51b815260206004820152600f60248201526e535741505f4e4f545f41435449564560881b60448201526064015b60405180910390fd5b428160020154116102bd5760405162461bcd60e51b815260040161029190610fc7565b604080516020810184905201604051602081830303815290604052805190602001208160040154146103225760405162461bcd60e51b815260206004820152600e60248201526d1253959053125117d4d150d4915560921b6044820152606401610291565b600381810155600681015481546040516001600160a01b039092169181156108fc0291906000818181858888f19350505050158015610365573d6000803e3d6000fd5b506006810154600582015460048301546040516001600160a01b0393841693929092169186917f2d3a5ed13d0553389b4078e01264416362e34d23520fda797fbc17f3905ed131916103bf91888252602082015260400190565b60405180910390a4505050565b60008181526020818152604080832081516101208101835281548152600182015493810193909352600281015491830191909152600381015460608301526004810154608083015260058101546001600160a01b0390811660a084015260068201541660c08301526007810180548493929160e084019161044c90610fed565b80601f016020809104026020016040519081016040528092919081815260200182805461047890610fed565b80156104c55780601f1061049a576101008083540402835291602001916104c5565b820191906000526020600020905b8154815290600101906020018083116104a857829003601f168201915b505050505081526020016008820180546104de90610fed565b80601f016020809104026020016040519081016040528092919081815260200182805461050a90610fed565b80156105575780601f1061052c57610100808354040283529160200191610557565b820191906000526020600020905b81548152906001019060200180831161053a57829003601f168201915b505050505081525050905060008160600151036105775750600092915050565b50600192915050565b50919050565b600081815260208190526040902060038101546001146105da5760405162461bcd60e51b815260206004820152600f60248201526e535741505f4e4f545f41435449564560881b6044820152606401610291565b42816002015411156105fe5760405162461bcd60e51b815260040161029190610fc7565b60026003820155600581015481546040516001600160a01b039092169181156108fc0291906000818181858888f19350505050158015610642573d6000803e3d6000fd5b506006810154600582015460048301546040519081526001600160a01b03928316929091169084907f6fa50d56c31f3efe0cb6ff06232bffce8fe8c4155e3cbb6f2d79dd12631c25229060200160405180910390a45050565b33344289116106bc5760405162461bcd60e51b815260040161029190610fc7565b600081116106fd5760405162461bcd60e51b815260206004820152600e60248201526d1253959053125117d05353d5539560921b6044820152606401610291565b604080516001600160a01b038085166020830152891691810191909152606081018290526080810189905260a081018a905260009060c00160408051601f1981840301815291815281516020928301206000818152928390529120600301549091501561079a5760405162461bcd60e51b815260206004820152600b60248201526a535741505f45584953545360a81b6044820152606401610291565b6040518061012001604052808381526020018c81526020018b8152602001600181526020018a8152602001846001600160a01b03168152602001896001600160a01b0316815260200188888080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250604080516020601f8901819004810282018101909252878152918101919088908890819084018382808284376000920182905250939094525050838152602081815260409182902084518155908401516001820155908301516002820155606083015160038201556080830151600482015560a08301516005820180546001600160a01b039283166001600160a01b03199182161790915560c085015160068401805491909316911617905560e083015190915060078201906108df9082611070565b5061010082015160088201906108f59082611070565b50905050876001600160a01b0316836001600160a01b0316827f767d0ffbc3d16cc51fc05770a22976e4b0fda9198e37878b76979429b2d5d88c858f8f8f8e8e8e8e60405161094b989796959493929190611159565b60405180910390a45050505050505050505050565b60006020819052908152604090208054600182015460028301546003840154600485015460058601546006870154600788018054979896979596949593946001600160a01b039384169493909216926109b890610fed565b80601f01602080910402602001604051908101604052809291908181526020018280546109e490610fed565b8015610a315780601f10610a0657610100808354040283529160200191610a31565b820191906000526020600020905b815481529060010190602001808311610a1457829003601f168201915b505050505090806008018054610a4690610fed565b80601f0160208091040260200160405190810160405280929190818152602001828054610a7290610fed565b8015610abf5780601f10610a9457610100808354040283529160200191610abf565b820191906000526020600020905b815481529060010190602001808311610aa257829003601f168201915b5050505050905089565b60008181526020818152604080832081516101208101835281548152600182015493810193909352600281015491830191909152600381015460608301526004810154608083015260058101546001600160a01b0390811660a084015260068201541660c08301526007810180548493929160e0840191610b4990610fed565b80601f0160208091040260200160405190810160405280929190818152602001828054610b7590610fed565b8015610bc25780601f10610b9757610100808354040283529160200191610bc2565b820191906000526020600020905b815481529060010190602001808311610ba557829003601f168201915b50505050508152602001600882018054610bdb90610fed565b80601f0160208091040260200160405190810160405280929190818152602001828054610c0790610fed565b8015610c545780601f10610c2957610100808354040283529160200191610c54565b820191906000526020600020905b815481529060010190602001808311610c3757829003601f168201915b505050505081525050905060018160600151148015610c765750428160400151105b15610c845760049150610580565b6060015192915050565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215610cb757600080fd5b823567ffffffffffffffff80821115610ccf57600080fd5b818501915085601f830112610ce357600080fd5b813581811115610cf557610cf5610c8e565b8060051b604051601f19603f83011681018181108582111715610d1a57610d1a610c8e565b604052918252848201925083810185019188831115610d3857600080fd5b938501935b82851015610d5657843584529385019392850192610d3d565b98975050505050505050565b6020808252825182820181905260009190848201906040850190845b81811015610d9a57835183529284019291840191600101610d7e565b50909695505050505050565b60008060408385031215610db957600080fd5b50508035926020909101359150565b600060208284031215610dda57600080fd5b5035919050565b60008083601f840112610df357600080fd5b50813567ffffffffffffffff811115610e0b57600080fd5b602083019150836020828501011115610e2357600080fd5b9250929050565b60008060008060008060008060c0898b031215610e4657600080fd5b88359750602089013596506040890135955060608901356001600160a01b0381168114610e7257600080fd5b9450608089013567ffffffffffffffff80821115610e8f57600080fd5b610e9b8c838d01610de1565b909650945060a08b0135915080821115610eb457600080fd5b50610ec18b828c01610de1565b999c989b5096995094979396929594505050565b6000815180845260005b81811015610efb57602081850181015186830182015201610edf565b506000602082860101526020601f19601f83011685010191505092915050565b60006101208b83528a602084015289604084015288606084015287608084015260018060a01b0380881660a085015280871660c0850152508060e0840152610f6581840186610ed5565b9050828103610100840152610f7a8185610ed5565b9c9b505050505050505050505050565b634e487b7160e01b600052603260045260246000fd5b600060018201610fc057634e487b7160e01b600052601160045260246000fd5b5060010190565b6020808252600c908201526b494e56414c49445f54494d4560a01b604082015260600190565b600181811c9082168061100157607f821691505b60208210810361058057634e487b7160e01b600052602260045260246000fd5b601f82111561106b57600081815260208120601f850160051c810160208610156110485750805b601f850160051c820191505b8181101561106757828155600101611054565b5050505b505050565b815167ffffffffffffffff81111561108a5761108a610c8e565b61109e816110988454610fed565b84611021565b602080601f8311600181146110d357600084156110bb5750858301515b600019600386901b1c1916600185901b178555611067565b600085815260208120601f198616915b82811015611102578886015182559484019460019091019084016110e3565b50858210156111205787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b88815287602082015286604082015285606082015260c06080820152600061118560c083018688611130565b82810360a0840152611198818587611130565b9b9a505050505050505050505056fea264697066735822122030bbf0da5a4d9f76e8e8e188736a3c81e856842b4cb98fa89761c5b98db9504364736f6c63430008130033", + "sourceMap": "25:4079:0:-:0;;;;;;;;;;;;;;;;;;;", + "deployedSourceMap": "25:4079:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3201:303;;;;;;;;;;-1:-1:-1;3201:303:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2380:460;;;;;;;;;;-1:-1:-1;2380:460:0;;;;;:::i;:::-;;:::i;:::-;;3845:257;;;;;;;;;;-1:-1:-1;3845:257:0;;;;;:::i;:::-;;:::i;:::-;;;2506:14:1;;2499:22;2481:41;;2469:2;2454:18;3845:257:0;2341:187:1;2846:349:0;;;;;;;;;;-1:-1:-1;2846:349:0;;;;;:::i;:::-;;:::i;1438:936::-;;;;;;:::i;:::-;;:::i;53:49::-;;;;;;;;;;-1:-1:-1;53:49:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;:::i;3510:329::-;;;;;;;;;;-1:-1:-1;3510:329:0;;;;;:::i;:::-;;:::i;:::-;;;5575:25:1;;;5563:2;5548:18;3510:329:0;5429:177:1;3201:303:0;3263:16;3291:23;3331:3;:10;3317:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3317:25:0;;3291:51;;3358:13;3353:121;3385:3;:10;3377:5;:18;3353:121;;;3436:27;3452:3;3456:5;3452:10;;;;;;;;:::i;:::-;;;;;;;3436:15;:27::i;:::-;3420:6;3427:5;3420:13;;;;;;;;:::i;:::-;;;;;;;;;;:43;3397:7;;;;:::i;:::-;;;;3353:121;;;-1:-1:-1;3491:6:0;3201:303;-1:-1:-1;;3201:303:0:o;2380:460::-;2445:22;2470:13;;;;;;;;;;2502:8;;;;323:1;2502:18;2494:46;;;;-1:-1:-1;;;2494:46:0;;6182:2:1;2494:46:0;;;6164:21:1;6221:2;6201:18;;;6194:30;-1:-1:-1;;;6240:18:1;;;6233:45;6295:18;;2494:46:0;;;;;;;;;2574:15;2559:1;:12;;;:30;2551:55;;;;-1:-1:-1;;;2551:55:0;;;;;;;:::i;:::-;2649:18;;;;;;5575:25:1;;;5548:18;2649::0;;;;;;;;;;;;2639:29;;;;;;2625:1;:10;;;:43;2617:70;;;;-1:-1:-1;;;2617:70:0;;7049:2:1;2617:70:0;;;7031:21:1;7088:2;7068:18;;;7061:30;-1:-1:-1;;;7107:18:1;;;7100:44;7161:18;;2617:70:0;6847:338:1;2617:70:0;479:1;2698:8;;;:20;2729:10;;;;2749:13;;2729:34;;-1:-1:-1;;;;;2729:10:0;;;;:34;;;;;2749:13;2729:10;:34;:10;:34;2749:13;2729:10;:34;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2822:10:0;;;;2812:8;;;;2800:10;;;;2779:54;;-1:-1:-1;;;;;2822:10:0;;;;2812:8;;;;;2788:2;;2779:54;;;;2792:6;7364:25:1;;7420:2;7405:18;;7398:34;7352:2;7337:18;;7190:248;2779:54:0;;;;;;;;2435:405;2380:460;;:::o;3845:257::-;3902:11;3960:13;;;;;;;;;;;3925:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3925:48:0;;;;;;;;;;;;;;;;;;;;;3902:11;;3925:48;3960:13;3925:48;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;247:1;3988:12;:19;;;:27;3984:112;;-1:-1:-1;4038:5:0;;3845:257;-1:-1:-1;;3845:257:0:o;3984:112::-;-1:-1:-1;4081:4:0;;3845:257;-1:-1:-1;;3845:257:0:o;3984:112::-;3915:187;3845:257;;;:::o;2846:349::-;2893:22;2918:13;;;;;;;;;;2950:8;;;;323:1;2950:18;2942:46;;;;-1:-1:-1;;;2942:46:0;;6182:2:1;2942:46:0;;;6164:21:1;6221:2;6201:18;;;6194:30;-1:-1:-1;;;6240:18:1;;;6233:45;6295:18;;2942:46:0;5980:339:1;2942:46:0;3023:15;3007:1;:12;;;:31;;2999:56;;;;-1:-1:-1;;;2999:56:0;;;;;;;:::i;:::-;407:1;3066:8;;;:19;3096:8;;;;3114:13;;3096:32;;-1:-1:-1;;;;;3096:8:0;;;;:32;;;;;3114:13;3096:8;:32;:8;:32;3114:13;3096:8;:32;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3177:10:0;;;;3167:8;;;;3155:10;;;;3144:44;;5575:25:1;;;-1:-1:-1;;;;;3177:10:0;;;;3167:8;;;;3151:2;;3144:44;;5563:2:1;5548:18;3144:44:0;;;;;;;2883:312;2846:349;:::o;1438:936::-;1721:10;1764:9;1805:15;1792:28;;1784:53;;;;-1:-1:-1;;;1784:53:0;;;;;;;:::i;:::-;1870:1;1856:11;:15;1848:42;;;;-1:-1:-1;;;1848:42:0;;8030:2:1;1848:42:0;;;8012:21:1;8069:2;8049:18;;;8042:30;-1:-1:-1;;;8088:18:1;;;8081:44;8142:18;;1848:42:0;7828:338:1;1848:42:0;1924:63;;;-1:-1:-1;;;;;8518:15:1;;;1924:63:0;;;8500:34:1;8570:15;;8550:18;;;8543:43;;;;8602:18;;;8595:34;;;8645:18;;;8638:34;;;8688:19;;;8681:35;;;1901:10:0;;8434:19:1;;1924:63:0;;;-1:-1:-1;;1924:63:0;;;;;;;;;1914:74;;1924:63;1914:74;;;;247:1;2007:13;;;;;;;;;:20;;;1914:74;;-1:-1:-1;2007:28:0;1999:52;;;;-1:-1:-1;;;1999:52:0;;8929:2:1;1999:52:0;;;8911:21:1;8968:2;8948:18;;;8941:30;-1:-1:-1;;;8987:18:1;;;8980:41;9038:18;;1999:52:0;8727:335:1;1999:52:0;2078:139;;;;;;;;2104:11;2078:139;;;;2117:12;2078:139;;;;2131:10;2078:139;;;;323:1;2078:139;;;;2151:8;2078:139;;;;2161:6;-1:-1:-1;;;;;2078:139:0;;;;;2169:8;-1:-1:-1;;;;;2078:139:0;;;;;2179:13;;2078:139;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2078:139:0;;;-1:-1:-1;2078:139:0;;;;;;;;;;;;;;;;;;;;;;;;;;;2194:13;;;;;;2078:139;;2194:13;;;;2078:139;;;;;;;;-1:-1:-1;2078:139:0;;;;-1:-1:-1;;2062:13:0;;;;;;;;;;;;:155;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2062:155:0;;;-1:-1:-1;;;;;;2062:155:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:13;;-1:-1:-1;2062:155:0;;;;;;;;:::i;:::-;-1:-1:-1;2062:155:0;;;;;;;;;;;;:::i;:::-;;;;;2319:8;-1:-1:-1;;;;;2233:134:0;2311:6;-1:-1:-1;;;;;2233:134:0;2297:2;2233:134;2258:11;2271:12;2285:10;2301:8;2329:13;;2344;;2233:134;;;;;;;;;;;;;:::i;:::-;;;;;;;;1678:696;;;1438:936;;;;;;;;:::o;53:49::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;53:49:0;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3510:329::-;3568:14;3629:13;;;;;;;;;;;3594:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3594:48:0;;;;;;;;;;;;;;;;;;;;;3568:14;;3594:48;3629:13;3594:48;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;323:1;3657:12;:19;;;:29;:74;;;;;3716:15;3690:12;:23;;;:41;3657:74;3653:180;;;550:1;3747:16;;3653:180;;;3803:19;;;;3510:329;-1:-1:-1;;3510:329:0:o;14:127:1:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:1115;230:6;261:2;304;292:9;283:7;279:23;275:32;272:52;;;320:1;317;310:12;272:52;360:9;347:23;389:18;430:2;422:6;419:14;416:34;;;446:1;443;436:12;416:34;484:6;473:9;469:22;459:32;;529:7;522:4;518:2;514:13;510:27;500:55;;551:1;548;541:12;500:55;587:2;574:16;609:2;605;602:10;599:36;;;615:18;;:::i;:::-;661:2;658:1;654:10;693:2;687:9;756:2;752:7;747:2;743;739:11;735:25;727:6;723:38;811:6;799:10;796:22;791:2;779:10;776:18;773:46;770:72;;;822:18;;:::i;:::-;858:2;851:22;908:18;;;942:15;;;;-1:-1:-1;984:11:1;;;980:20;;;1012:19;;;1009:39;;;1044:1;1041;1034:12;1009:39;1068:11;;;;1088:142;1104:6;1099:3;1096:15;1088:142;;;1170:17;;1158:30;;1121:12;;;;1208;;;;1088:142;;;1249:6;146:1115;-1:-1:-1;;;;;;;;146:1115:1:o;1266:632::-;1437:2;1489:21;;;1559:13;;1462:18;;;1581:22;;;1408:4;;1437:2;1660:15;;;;1634:2;1619:18;;;1408:4;1703:169;1717:6;1714:1;1711:13;1703:169;;;1778:13;;1766:26;;1847:15;;;;1812:12;;;;1739:1;1732:9;1703:169;;;-1:-1:-1;1889:3:1;;1266:632;-1:-1:-1;;;;;;1266:632:1:o;1903:248::-;1971:6;1979;2032:2;2020:9;2011:7;2007:23;2003:32;2000:52;;;2048:1;2045;2038:12;2000:52;-1:-1:-1;;2071:23:1;;;2141:2;2126:18;;;2113:32;;-1:-1:-1;1903:248:1:o;2156:180::-;2215:6;2268:2;2256:9;2247:7;2243:23;2239:32;2236:52;;;2284:1;2281;2274:12;2236:52;-1:-1:-1;2307:23:1;;2156:180;-1:-1:-1;2156:180:1:o;2533:348::-;2585:8;2595:6;2649:3;2642:4;2634:6;2630:17;2626:27;2616:55;;2667:1;2664;2657:12;2616:55;-1:-1:-1;2690:20:1;;2733:18;2722:30;;2719:50;;;2765:1;2762;2755:12;2719:50;2802:4;2794:6;2790:17;2778:29;;2854:3;2847:4;2838:6;2830;2826:19;2822:30;2819:39;2816:59;;;2871:1;2868;2861:12;2816:59;2533:348;;;;;:::o;2886:1110::-;3022:6;3030;3038;3046;3054;3062;3070;3078;3131:3;3119:9;3110:7;3106:23;3102:33;3099:53;;;3148:1;3145;3138:12;3099:53;3171:23;;;-1:-1:-1;3241:2:1;3226:18;;3213:32;;-1:-1:-1;3292:2:1;3277:18;;3264:32;;-1:-1:-1;3346:2:1;3331:18;;3318:32;-1:-1:-1;;;;;3379:31:1;;3369:42;;3359:70;;3425:1;3422;3415:12;3359:70;3448:5;-1:-1:-1;3504:3:1;3489:19;;3476:33;3528:18;3558:14;;;3555:34;;;3585:1;3582;3575:12;3555:34;3624:59;3675:7;3666:6;3655:9;3651:22;3624:59;:::i;:::-;3702:8;;-1:-1:-1;3598:85:1;-1:-1:-1;3790:3:1;3775:19;;3762:33;;-1:-1:-1;3807:16:1;;;3804:36;;;3836:1;3833;3826:12;3804:36;;3875:61;3928:7;3917:8;3906:9;3902:24;3875:61;:::i;:::-;2886:1110;;;;-1:-1:-1;2886:1110:1;;-1:-1:-1;2886:1110:1;;;;;;3955:8;-1:-1:-1;;;2886:1110:1:o;4001:423::-;4043:3;4081:5;4075:12;4108:6;4103:3;4096:19;4133:1;4143:162;4157:6;4154:1;4151:13;4143:162;;;4219:4;4275:13;;;4271:22;;4265:29;4247:11;;;4243:20;;4236:59;4172:12;4143:162;;;4147:3;4350:1;4343:4;4334:6;4329:3;4325:16;4321:27;4314:38;4413:4;4406:2;4402:7;4397:2;4389:6;4385:15;4381:29;4376:3;4372:39;4368:50;4361:57;;;4001:423;;;;:::o;4429:995::-;4817:4;4846:3;4876:6;4865:9;4858:25;4919:6;4914:2;4903:9;4899:18;4892:34;4962:6;4957:2;4946:9;4942:18;4935:34;5005:6;5000:2;4989:9;4985:18;4978:34;5049:6;5043:3;5032:9;5028:19;5021:35;5092:1;5088;5083:3;5079:11;5075:19;5143:2;5135:6;5131:15;5125:3;5114:9;5110:19;5103:44;5196:2;5188:6;5184:15;5178:3;5167:9;5163:19;5156:44;;5237:2;5231:3;5220:9;5216:19;5209:31;5263:45;5304:2;5293:9;5289:18;5281:6;5263:45;:::i;:::-;5249:59;;5357:9;5349:6;5345:22;5339:3;5328:9;5324:19;5317:51;5385:33;5411:6;5403;5385:33;:::i;:::-;5377:41;4429:995;-1:-1:-1;;;;;;;;;;;;4429:995:1:o;5611:127::-;5672:10;5667:3;5663:20;5660:1;5653:31;5703:4;5700:1;5693:15;5727:4;5724:1;5717:15;5743:232;5782:3;5803:17;;;5800:140;;5862:10;5857:3;5853:20;5850:1;5843:31;5897:4;5894:1;5887:15;5925:4;5922:1;5915:15;5800:140;-1:-1:-1;5967:1:1;5956:13;;5743:232::o;6324:336::-;6526:2;6508:21;;;6565:2;6545:18;;;6538:30;-1:-1:-1;;;6599:2:1;6584:18;;6577:42;6651:2;6636:18;;6324:336::o;7443:380::-;7522:1;7518:12;;;;7565;;;7586:61;;7640:4;7632:6;7628:17;7618:27;;7586:61;7693:2;7685:6;7682:14;7662:18;7659:38;7656:161;;7739:10;7734:3;7730:20;7727:1;7720:31;7774:4;7771:1;7764:15;7802:4;7799:1;7792:15;9193:545;9295:2;9290:3;9287:11;9284:448;;;9331:1;9356:5;9352:2;9345:17;9401:4;9397:2;9387:19;9471:2;9459:10;9455:19;9452:1;9448:27;9442:4;9438:38;9507:4;9495:10;9492:20;9489:47;;;-1:-1:-1;9530:4:1;9489:47;9585:2;9580:3;9576:12;9573:1;9569:20;9563:4;9559:31;9549:41;;9640:82;9658:2;9651:5;9648:13;9640:82;;;9703:17;;;9684:1;9673:13;9640:82;;;9644:3;;;9284:448;9193:545;;;:::o;9914:1352::-;10040:3;10034:10;10067:18;10059:6;10056:30;10053:56;;;10089:18;;:::i;:::-;10118:97;10208:6;10168:38;10200:4;10194:11;10168:38;:::i;:::-;10162:4;10118:97;:::i;:::-;10270:4;;10334:2;10323:14;;10351:1;10346:663;;;;11053:1;11070:6;11067:89;;;-1:-1:-1;11122:19:1;;;11116:26;11067:89;-1:-1:-1;;9871:1:1;9867:11;;;9863:24;9859:29;9849:40;9895:1;9891:11;;;9846:57;11169:81;;10316:944;;10346:663;9140:1;9133:14;;;9177:4;9164:18;;-1:-1:-1;;10382:20:1;;;10500:236;10514:7;10511:1;10508:14;10500:236;;;10603:19;;;10597:26;10582:42;;10695:27;;;;10663:1;10651:14;;;;10530:19;;10500:236;;;10504:3;10764:6;10755:7;10752:19;10749:201;;;10825:19;;;10819:26;-1:-1:-1;;10908:1:1;10904:14;;;10920:3;10900:24;10896:37;10892:42;10877:58;10862:74;;10749:201;-1:-1:-1;;;;;10996:1:1;10980:14;;;10976:22;10963:36;;-1:-1:-1;9914:1352:1:o;11271:267::-;11360:6;11355:3;11348:19;11412:6;11405:5;11398:4;11393:3;11389:14;11376:43;-1:-1:-1;11464:1:1;11439:16;;;11457:4;11435:27;;;11428:38;;;;11520:2;11499:15;;;-1:-1:-1;;11495:29:1;11486:39;;;11482:50;;11271:267::o;11543:725::-;11872:6;11861:9;11854:25;11915:6;11910:2;11899:9;11895:18;11888:34;11958:6;11953:2;11942:9;11938:18;11931:34;12001:6;11996:2;11985:9;11981:18;11974:34;12045:3;12039;12028:9;12024:19;12017:32;11835:4;12072:63;12130:3;12119:9;12115:19;12107:6;12099;12072:63;:::i;:::-;12184:9;12176:6;12172:22;12166:3;12155:9;12151:19;12144:51;12212:50;12255:6;12247;12239;12212:50;:::i;:::-;12204:58;11543:725;-1:-1:-1;;;;;;;;;;;11543:725:1:o", + "sourcePath": "/home/peter/a/cacti-1/packages/cactus-plugin-htlc-eth-besu/src/main/solidity/contracts/HashTimeLock.sol", "compiler": { "name": "solc", "version": "0.8.19+commit.7dd6d404" }, "ast": { - "absolutePath": "/workspaces/cacti/packages/cactus-plugin-htlc-eth-besu/src/main/solidity/contracts/HashTimeLock.sol", + "absolutePath": "/home/peter/a/cacti-1/packages/cactus-plugin-htlc-eth-besu/src/main/solidity/contracts/HashTimeLock.sol", "exportedSymbols": { "HashTimeLock": [ 414 @@ -1456,7 +1456,7 @@ "body": { "id": 176, "nodeType": "Block", - "src": "1678:699:0", + "src": "1678:696:0", "statements": [ { "assignments": [ @@ -1910,7 +1910,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98, - "src": "1938:6:0", + "src": "1935:6:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -1922,7 +1922,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 90, - "src": "1946:8:0", + "src": "1943:8:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -1934,7 +1934,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 106, - "src": "1956:11:0", + "src": "1953:11:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1946,7 +1946,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 88, - "src": "1969:8:0", + "src": "1966:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1958,7 +1958,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 86, - "src": "1979:10:0", + "src": "1976:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1994,7 +1994,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967295, - "src": "1921:3:0", + "src": "1924:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" @@ -2005,12 +2005,12 @@ "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "1925:12:0", - "memberName": "encodePacked", + "memberLocation": "1928:6:0", + "memberName": "encode", "nodeType": "MemberAccess", - "src": "1921:16:0", + "src": "1924:10:0", "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, @@ -2023,7 +2023,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1921:69:0", + "src": "1924:63:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -2039,13 +2039,13 @@ } ], "id": 127, - "name": "sha256", + "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 4294967274, - "src": "1914:6:0", + "referencedDeclaration": 4294967288, + "src": "1914:9:0", "typeDescriptions": { - "typeIdentifier": "t_function_sha256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, @@ -2058,7 +2058,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1914:77:0", + "src": "1914:74:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -2066,7 +2066,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "1901:90:0" + "src": "1901:87:0" }, { "expression": { @@ -2089,7 +2089,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6, - "src": "2010:9:0", + "src": "2007:9:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_LockContract_$40_storage_$", "typeString": "mapping(bytes32 => struct HashTimeLock.LockContract storage ref)" @@ -2102,7 +2102,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 126, - "src": "2020:2:0", + "src": "2017:2:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2113,7 +2113,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2010:13:0", + "src": "2007:13:0", "typeDescriptions": { "typeIdentifier": "t_struct$_LockContract_$40_storage", "typeString": "struct HashTimeLock.LockContract storage ref" @@ -2124,11 +2124,11 @@ "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "2024:6:0", + "memberLocation": "2021:6:0", "memberName": "status", "nodeType": "MemberAccess", "referencedDeclaration": 29, - "src": "2010:20:0", + "src": "2007:20:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2142,13 +2142,13 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9, - "src": "2034:4:0", + "src": "2031:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2010:28:0", + "src": "2007:28:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2163,7 +2163,7 @@ "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2040:13:0", + "src": "2037:13:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_10858945dd31484ce6a77564821a1a6ff0e82939d9bea2b8e6caae50c7fc3750", "typeString": "literal_string \"SWAP_EXISTS\"" @@ -2190,7 +2190,7 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "2002:7:0", + "src": "1999:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" @@ -2205,7 +2205,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2002:52:0", + "src": "1999:52:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", @@ -2214,7 +2214,7 @@ }, "id": 147, "nodeType": "ExpressionStatement", - "src": "2002:52:0" + "src": "1999:52:0" }, { "expression": { @@ -2230,7 +2230,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6, - "src": "2065:9:0", + "src": "2062:9:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_LockContract_$40_storage_$", "typeString": "mapping(bytes32 => struct HashTimeLock.LockContract storage ref)" @@ -2243,7 +2243,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 126, - "src": "2075:2:0", + "src": "2072:2:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2254,7 +2254,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2065:13:0", + "src": "2062:13:0", "typeDescriptions": { "typeIdentifier": "t_struct$_LockContract_$40_storage", "typeString": "struct HashTimeLock.LockContract storage ref" @@ -2270,7 +2270,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 106, - "src": "2107:11:0", + "src": "2104:11:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2282,7 +2282,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 84, - "src": "2120:12:0", + "src": "2117:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2294,7 +2294,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 86, - "src": "2134:10:0", + "src": "2131:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2306,7 +2306,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12, - "src": "2146:6:0", + "src": "2143:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2318,7 +2318,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 88, - "src": "2154:8:0", + "src": "2151:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2330,7 +2330,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98, - "src": "2164:6:0", + "src": "2161:6:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -2342,7 +2342,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 90, - "src": "2172:8:0", + "src": "2169:8:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -2354,7 +2354,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 92, - "src": "2182:13:0", + "src": "2179:13:0", "typeDescriptions": { "typeIdentifier": "t_string_calldata_ptr", "typeString": "string calldata" @@ -2366,7 +2366,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 94, - "src": "2197:13:0", + "src": "2194:13:0", "typeDescriptions": { "typeIdentifier": "t_string_calldata_ptr", "typeString": "string calldata" @@ -2417,7 +2417,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40, - "src": "2081:12:0", + "src": "2078:12:0", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_LockContract_$40_storage_ptr_$", "typeString": "type(struct HashTimeLock.LockContract storage pointer)" @@ -2432,14 +2432,14 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2081:139:0", + "src": "2078:139:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_LockContract_$40_memory_ptr", "typeString": "struct HashTimeLock.LockContract memory" } }, - "src": "2065:155:0", + "src": "2062:155:0", "typeDescriptions": { "typeIdentifier": "t_struct$_LockContract_$40_storage", "typeString": "struct HashTimeLock.LockContract storage ref" @@ -2447,7 +2447,7 @@ }, "id": 163, "nodeType": "ExpressionStatement", - "src": "2065:155:0" + "src": "2062:155:0" }, { "eventCall": { @@ -2458,7 +2458,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 106, - "src": "2261:11:0", + "src": "2258:11:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2470,7 +2470,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 84, - "src": "2274:12:0", + "src": "2271:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2482,7 +2482,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 86, - "src": "2288:10:0", + "src": "2285:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2494,7 +2494,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 126, - "src": "2300:2:0", + "src": "2297:2:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2506,7 +2506,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 88, - "src": "2304:8:0", + "src": "2301:8:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2518,7 +2518,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 98, - "src": "2314:6:0", + "src": "2311:6:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -2530,7 +2530,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 90, - "src": "2322:8:0", + "src": "2319:8:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -2542,7 +2542,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 92, - "src": "2332:13:0", + "src": "2329:13:0", "typeDescriptions": { "typeIdentifier": "t_string_calldata_ptr", "typeString": "string calldata" @@ -2554,7 +2554,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 94, - "src": "2347:13:0", + "src": "2344:13:0", "typeDescriptions": { "typeIdentifier": "t_string_calldata_ptr", "typeString": "string calldata" @@ -2605,7 +2605,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 82, - "src": "2236:11:0", + "src": "2233:11:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_bytes32_$_t_bytes32_$_t_address_$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", "typeString": "function (uint256,uint256,uint256,bytes32,bytes32,address,address,string memory,string memory)" @@ -2620,7 +2620,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2236:134:0", + "src": "2233:134:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", @@ -2629,7 +2629,7 @@ }, "id": 175, "nodeType": "EmitStatement", - "src": "2231:139:0" + "src": "2228:139:0" } ] }, @@ -2818,7 +2818,7 @@ "src": "1678:0:0" }, "scope": 414, - "src": "1438:939:0", + "src": "1438:936:0", "stateMutability": "payable", "virtual": false, "visibility": "external" @@ -2827,7 +2827,7 @@ "body": { "id": 247, "nodeType": "Block", - "src": "2438:411:0", + "src": "2435:405:0", "statements": [ { "assignments": [ @@ -2839,10 +2839,10 @@ "id": 186, "mutability": "mutable", "name": "c", - "nameLocation": "2469:1:0", + "nameLocation": "2466:1:0", "nodeType": "VariableDeclaration", "scope": 247, - "src": "2448:22:0", + "src": "2445:22:0", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { @@ -2856,14 +2856,14 @@ "id": 184, "name": "LockContract", "nameLocations": [ - "2448:12:0" + "2445:12:0" ], "nodeType": "IdentifierPath", "referencedDeclaration": 40, - "src": "2448:12:0" + "src": "2445:12:0" }, "referencedDeclaration": 40, - "src": "2448:12:0", + "src": "2445:12:0", "typeDescriptions": { "typeIdentifier": "t_struct$_LockContract_$40_storage_ptr", "typeString": "struct HashTimeLock.LockContract" @@ -2880,7 +2880,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6, - "src": "2473:9:0", + "src": "2470:9:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_LockContract_$40_storage_$", "typeString": "mapping(bytes32 => struct HashTimeLock.LockContract storage ref)" @@ -2893,7 +2893,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 179, - "src": "2483:2:0", + "src": "2480:2:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2904,14 +2904,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2473:13:0", + "src": "2470:13:0", "typeDescriptions": { "typeIdentifier": "t_struct$_LockContract_$40_storage", "typeString": "struct HashTimeLock.LockContract storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "2448:38:0" + "src": "2445:38:0" }, { "expression": { @@ -2933,7 +2933,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 186, - "src": "2505:1:0", + "src": "2502:1:0", "typeDescriptions": { "typeIdentifier": "t_struct$_LockContract_$40_storage_ptr", "typeString": "struct HashTimeLock.LockContract storage pointer" @@ -2944,11 +2944,11 @@ "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "2507:6:0", + "memberLocation": "2504:6:0", "memberName": "status", "nodeType": "MemberAccess", "referencedDeclaration": 29, - "src": "2505:8:0", + "src": "2502:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2962,13 +2962,13 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12, - "src": "2517:6:0", + "src": "2514:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2505:18:0", + "src": "2502:18:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2983,7 +2983,7 @@ "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2525:17:0", + "src": "2522:17:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_afbfa7d3db262df0c92c413f0113503b1c1332dc5a4a874fcd8d6a6de57b74dd", "typeString": "literal_string \"SWAP_NOT_ACTIVE\"" @@ -3010,7 +3010,7 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "2497:7:0", + "src": "2494:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" @@ -3025,7 +3025,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2497:46:0", + "src": "2494:46:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", @@ -3034,7 +3034,7 @@ }, "id": 198, "nodeType": "ExpressionStatement", - "src": "2497:46:0" + "src": "2494:46:0" }, { "expression": { @@ -3056,7 +3056,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 186, - "src": "2562:1:0", + "src": "2559:1:0", "typeDescriptions": { "typeIdentifier": "t_struct$_LockContract_$40_storage_ptr", "typeString": "struct HashTimeLock.LockContract storage pointer" @@ -3067,11 +3067,11 @@ "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "2564:10:0", + "memberLocation": "2561:10:0", "memberName": "expiration", "nodeType": "MemberAccess", "referencedDeclaration": 27, - "src": "2562:12:0", + "src": "2559:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3086,7 +3086,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967292, - "src": "2577:5:0", + "src": "2574:5:0", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" @@ -3097,16 +3097,16 @@ "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2583:9:0", + "memberLocation": "2580:9:0", "memberName": "timestamp", "nodeType": "MemberAccess", - "src": "2577:15:0", + "src": "2574:15:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2562:30:0", + "src": "2559:30:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3121,7 +3121,7 @@ "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2594:14:0", + "src": "2591:14:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_b98f3e47db5919a8c78ec10ff6bf7d1326066d3facdc164cf7441d38cae771df", "typeString": "literal_string \"INVALID_TIME\"" @@ -3148,7 +3148,7 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "2554:7:0", + "src": "2551:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" @@ -3163,7 +3163,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2554:55:0", + "src": "2551:55:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", @@ -3172,7 +3172,7 @@ }, "id": 207, "nodeType": "ExpressionStatement", - "src": "2554:55:0" + "src": "2551:55:0" }, { "expression": { @@ -3194,7 +3194,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 186, - "src": "2628:1:0", + "src": "2625:1:0", "typeDescriptions": { "typeIdentifier": "t_struct$_LockContract_$40_storage_ptr", "typeString": "struct HashTimeLock.LockContract storage pointer" @@ -3205,11 +3205,11 @@ "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "2630:8:0", + "memberLocation": "2627:8:0", "memberName": "hashLock", "nodeType": "MemberAccess", "referencedDeclaration": 31, - "src": "2628:10:0", + "src": "2625:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3227,7 +3227,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 181, - "src": "2669:6:0", + "src": "2660:6:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3247,7 +3247,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967295, - "src": "2652:3:0", + "src": "2649:3:0", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" @@ -3258,12 +3258,12 @@ "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "2656:12:0", - "memberName": "encodePacked", + "memberLocation": "2653:6:0", + "memberName": "encode", "nodeType": "MemberAccess", - "src": "2652:16:0", + "src": "2649:10:0", "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, @@ -3276,7 +3276,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2652:24:0", + "src": "2649:18:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -3296,7 +3296,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967288, - "src": "2642:9:0", + "src": "2639:9:0", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" @@ -3311,14 +3311,14 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2642:35:0", + "src": "2639:29:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "2628:49:0", + "src": "2625:43:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3333,7 +3333,7 @@ "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2679:16:0", + "src": "2670:16:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_20442b474b3561be70a7e12c2acf875277f59e68e7748337cd68bf5c8ada064b", "typeString": "literal_string \"INVALID_SECRET\"" @@ -3360,7 +3360,7 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "2620:7:0", + "src": "2617:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" @@ -3375,7 +3375,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2620:76:0", + "src": "2617:70:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", @@ -3384,7 +3384,7 @@ }, "id": 220, "nodeType": "ExpressionStatement", - "src": "2620:76:0" + "src": "2617:70:0" }, { "expression": { @@ -3400,7 +3400,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 186, - "src": "2707:1:0", + "src": "2698:1:0", "typeDescriptions": { "typeIdentifier": "t_struct$_LockContract_$40_storage_ptr", "typeString": "struct HashTimeLock.LockContract storage pointer" @@ -3411,11 +3411,11 @@ "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "2709:6:0", + "memberLocation": "2700:6:0", "memberName": "status", "nodeType": "MemberAccess", "referencedDeclaration": 29, - "src": "2707:8:0", + "src": "2698:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3429,13 +3429,13 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 18, - "src": "2718:9:0", + "src": "2709:9:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2707:20:0", + "src": "2698:20:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3443,7 +3443,7 @@ }, "id": 226, "nodeType": "ExpressionStatement", - "src": "2707:20:0" + "src": "2698:20:0" }, { "expression": { @@ -3455,7 +3455,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 186, - "src": "2758:1:0", + "src": "2749:1:0", "typeDescriptions": { "typeIdentifier": "t_struct$_LockContract_$40_storage_ptr", "typeString": "struct HashTimeLock.LockContract storage pointer" @@ -3466,11 +3466,11 @@ "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "2760:11:0", + "memberLocation": "2751:11:0", "memberName": "inputAmount", "nodeType": "MemberAccess", "referencedDeclaration": 23, - "src": "2758:13:0", + "src": "2749:13:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3491,7 +3491,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 186, - "src": "2738:1:0", + "src": "2729:1:0", "typeDescriptions": { "typeIdentifier": "t_struct$_LockContract_$40_storage_ptr", "typeString": "struct HashTimeLock.LockContract storage pointer" @@ -3502,11 +3502,11 @@ "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "2740:8:0", + "memberLocation": "2731:8:0", "memberName": "receiver", "nodeType": "MemberAccess", "referencedDeclaration": 35, - "src": "2738:10:0", + "src": "2729:10:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -3517,10 +3517,10 @@ "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "2749:8:0", + "memberLocation": "2740:8:0", "memberName": "transfer", "nodeType": "MemberAccess", - "src": "2738:19:0", + "src": "2729:19:0", "typeDescriptions": { "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" @@ -3535,7 +3535,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2738:34:0", + "src": "2729:34:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", @@ -3544,7 +3544,7 @@ }, "id": 235, "nodeType": "ExpressionStatement", - "src": "2738:34:0" + "src": "2729:34:0" }, { "eventCall": { @@ -3555,7 +3555,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 179, - "src": "2797:2:0", + "src": "2788:2:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3567,7 +3567,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 181, - "src": "2801:6:0", + "src": "2792:6:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3580,7 +3580,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 186, - "src": "2809:1:0", + "src": "2800:1:0", "typeDescriptions": { "typeIdentifier": "t_struct$_LockContract_$40_storage_ptr", "typeString": "struct HashTimeLock.LockContract storage pointer" @@ -3591,11 +3591,11 @@ "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "2811:8:0", + "memberLocation": "2802:8:0", "memberName": "hashLock", "nodeType": "MemberAccess", "referencedDeclaration": 31, - "src": "2809:10:0", + "src": "2800:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3608,7 +3608,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 186, - "src": "2821:1:0", + "src": "2812:1:0", "typeDescriptions": { "typeIdentifier": "t_struct$_LockContract_$40_storage_ptr", "typeString": "struct HashTimeLock.LockContract storage pointer" @@ -3619,11 +3619,11 @@ "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "2823:6:0", + "memberLocation": "2814:6:0", "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": 33, - "src": "2821:8:0", + "src": "2812:8:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -3636,7 +3636,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 186, - "src": "2831:1:0", + "src": "2822:1:0", "typeDescriptions": { "typeIdentifier": "t_struct$_LockContract_$40_storage_ptr", "typeString": "struct HashTimeLock.LockContract storage pointer" @@ -3647,11 +3647,11 @@ "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "2833:8:0", + "memberLocation": "2824:8:0", "memberName": "receiver", "nodeType": "MemberAccess", "referencedDeclaration": 35, - "src": "2831:10:0", + "src": "2822:10:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -3686,7 +3686,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 52, - "src": "2788:8:0", + "src": "2779:8:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_address_$_t_address_$returns$__$", "typeString": "function (bytes32,bytes32,bytes32,address,address)" @@ -3701,7 +3701,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2788:54:0", + "src": "2779:54:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", @@ -3710,7 +3710,7 @@ }, "id": 246, "nodeType": "EmitStatement", - "src": "2783:59:0" + "src": "2774:59:0" } ] }, @@ -3720,7 +3720,7 @@ "kind": "function", "modifiers": [], "name": "withdraw", - "nameLocation": "2392:8:0", + "nameLocation": "2389:8:0", "nodeType": "FunctionDefinition", "parameters": { "id": 182, @@ -3731,10 +3731,10 @@ "id": 179, "mutability": "mutable", "name": "id", - "nameLocation": "2409:2:0", + "nameLocation": "2406:2:0", "nodeType": "VariableDeclaration", "scope": 248, - "src": "2401:10:0", + "src": "2398:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3745,7 +3745,7 @@ "id": 178, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2401:7:0", + "src": "2398:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3758,10 +3758,10 @@ "id": 181, "mutability": "mutable", "name": "secret", - "nameLocation": "2421:6:0", + "nameLocation": "2418:6:0", "nodeType": "VariableDeclaration", "scope": 248, - "src": "2413:14:0", + "src": "2410:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3772,7 +3772,7 @@ "id": 180, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2413:7:0", + "src": "2410:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3781,16 +3781,16 @@ "visibility": "internal" } ], - "src": "2400:28:0" + "src": "2397:28:0" }, "returnParameters": { "id": 183, "nodeType": "ParameterList", "parameters": [], - "src": "2438:0:0" + "src": "2435:0:0" }, "scope": 414, - "src": "2383:466:0", + "src": "2380:460:0", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" @@ -3799,7 +3799,7 @@ "body": { "id": 302, "nodeType": "Block", - "src": "2892:312:0", + "src": "2883:312:0", "statements": [ { "assignments": [ @@ -3811,10 +3811,10 @@ "id": 255, "mutability": "mutable", "name": "c", - "nameLocation": "2923:1:0", + "nameLocation": "2914:1:0", "nodeType": "VariableDeclaration", "scope": 302, - "src": "2902:22:0", + "src": "2893:22:0", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { @@ -3828,14 +3828,14 @@ "id": 253, "name": "LockContract", "nameLocations": [ - "2902:12:0" + "2893:12:0" ], "nodeType": "IdentifierPath", "referencedDeclaration": 40, - "src": "2902:12:0" + "src": "2893:12:0" }, "referencedDeclaration": 40, - "src": "2902:12:0", + "src": "2893:12:0", "typeDescriptions": { "typeIdentifier": "t_struct$_LockContract_$40_storage_ptr", "typeString": "struct HashTimeLock.LockContract" @@ -3852,7 +3852,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6, - "src": "2927:9:0", + "src": "2918:9:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_LockContract_$40_storage_$", "typeString": "mapping(bytes32 => struct HashTimeLock.LockContract storage ref)" @@ -3865,7 +3865,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 250, - "src": "2937:2:0", + "src": "2928:2:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3876,14 +3876,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2927:13:0", + "src": "2918:13:0", "typeDescriptions": { "typeIdentifier": "t_struct$_LockContract_$40_storage", "typeString": "struct HashTimeLock.LockContract storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "2902:38:0" + "src": "2893:38:0" }, { "expression": { @@ -3905,7 +3905,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 255, - "src": "2959:1:0", + "src": "2950:1:0", "typeDescriptions": { "typeIdentifier": "t_struct$_LockContract_$40_storage_ptr", "typeString": "struct HashTimeLock.LockContract storage pointer" @@ -3916,11 +3916,11 @@ "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "2961:6:0", + "memberLocation": "2952:6:0", "memberName": "status", "nodeType": "MemberAccess", "referencedDeclaration": 29, - "src": "2959:8:0", + "src": "2950:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3934,13 +3934,13 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12, - "src": "2971:6:0", + "src": "2962:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2959:18:0", + "src": "2950:18:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3955,7 +3955,7 @@ "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2979:17:0", + "src": "2970:17:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_afbfa7d3db262df0c92c413f0113503b1c1332dc5a4a874fcd8d6a6de57b74dd", "typeString": "literal_string \"SWAP_NOT_ACTIVE\"" @@ -3982,7 +3982,7 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "2951:7:0", + "src": "2942:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" @@ -3997,7 +3997,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2951:46:0", + "src": "2942:46:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", @@ -4006,7 +4006,7 @@ }, "id": 267, "nodeType": "ExpressionStatement", - "src": "2951:46:0" + "src": "2942:46:0" }, { "expression": { @@ -4028,7 +4028,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 255, - "src": "3016:1:0", + "src": "3007:1:0", "typeDescriptions": { "typeIdentifier": "t_struct$_LockContract_$40_storage_ptr", "typeString": "struct HashTimeLock.LockContract storage pointer" @@ -4039,11 +4039,11 @@ "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3018:10:0", + "memberLocation": "3009:10:0", "memberName": "expiration", "nodeType": "MemberAccess", "referencedDeclaration": 27, - "src": "3016:12:0", + "src": "3007:12:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4058,7 +4058,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967292, - "src": "3032:5:0", + "src": "3023:5:0", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" @@ -4069,16 +4069,16 @@ "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3038:9:0", + "memberLocation": "3029:9:0", "memberName": "timestamp", "nodeType": "MemberAccess", - "src": "3032:15:0", + "src": "3023:15:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3016:31:0", + "src": "3007:31:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4093,7 +4093,7 @@ "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3049:14:0", + "src": "3040:14:0", "typeDescriptions": { "typeIdentifier": "t_stringliteral_b98f3e47db5919a8c78ec10ff6bf7d1326066d3facdc164cf7441d38cae771df", "typeString": "literal_string \"INVALID_TIME\"" @@ -4120,7 +4120,7 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "3008:7:0", + "src": "2999:7:0", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" @@ -4135,7 +4135,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3008:56:0", + "src": "2999:56:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", @@ -4144,7 +4144,7 @@ }, "id": 276, "nodeType": "ExpressionStatement", - "src": "3008:56:0" + "src": "2999:56:0" }, { "expression": { @@ -4160,7 +4160,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 255, - "src": "3075:1:0", + "src": "3066:1:0", "typeDescriptions": { "typeIdentifier": "t_struct$_LockContract_$40_storage_ptr", "typeString": "struct HashTimeLock.LockContract storage pointer" @@ -4171,11 +4171,11 @@ "isLValue": true, "isPure": false, "lValueRequested": true, - "memberLocation": "3077:6:0", + "memberLocation": "3068:6:0", "memberName": "status", "nodeType": "MemberAccess", "referencedDeclaration": 29, - "src": "3075:8:0", + "src": "3066:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4189,13 +4189,13 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 15, - "src": "3086:8:0", + "src": "3077:8:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3075:19:0", + "src": "3066:19:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4203,7 +4203,7 @@ }, "id": 282, "nodeType": "ExpressionStatement", - "src": "3075:19:0" + "src": "3066:19:0" }, { "expression": { @@ -4215,7 +4215,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 255, - "src": "3123:1:0", + "src": "3114:1:0", "typeDescriptions": { "typeIdentifier": "t_struct$_LockContract_$40_storage_ptr", "typeString": "struct HashTimeLock.LockContract storage pointer" @@ -4226,11 +4226,11 @@ "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3125:11:0", + "memberLocation": "3116:11:0", "memberName": "inputAmount", "nodeType": "MemberAccess", "referencedDeclaration": 23, - "src": "3123:13:0", + "src": "3114:13:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4251,7 +4251,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 255, - "src": "3105:1:0", + "src": "3096:1:0", "typeDescriptions": { "typeIdentifier": "t_struct$_LockContract_$40_storage_ptr", "typeString": "struct HashTimeLock.LockContract storage pointer" @@ -4262,11 +4262,11 @@ "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3107:6:0", + "memberLocation": "3098:6:0", "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": 33, - "src": "3105:8:0", + "src": "3096:8:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -4277,10 +4277,10 @@ "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3114:8:0", + "memberLocation": "3105:8:0", "memberName": "transfer", "nodeType": "MemberAccess", - "src": "3105:17:0", + "src": "3096:17:0", "typeDescriptions": { "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" @@ -4295,7 +4295,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3105:32:0", + "src": "3096:32:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", @@ -4304,7 +4304,7 @@ }, "id": 291, "nodeType": "ExpressionStatement", - "src": "3105:32:0" + "src": "3096:32:0" }, { "eventCall": { @@ -4315,7 +4315,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 250, - "src": "3160:2:0", + "src": "3151:2:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4328,7 +4328,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 255, - "src": "3164:1:0", + "src": "3155:1:0", "typeDescriptions": { "typeIdentifier": "t_struct$_LockContract_$40_storage_ptr", "typeString": "struct HashTimeLock.LockContract storage pointer" @@ -4339,11 +4339,11 @@ "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3166:8:0", + "memberLocation": "3157:8:0", "memberName": "hashLock", "nodeType": "MemberAccess", "referencedDeclaration": 31, - "src": "3164:10:0", + "src": "3155:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4356,7 +4356,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 255, - "src": "3176:1:0", + "src": "3167:1:0", "typeDescriptions": { "typeIdentifier": "t_struct$_LockContract_$40_storage_ptr", "typeString": "struct HashTimeLock.LockContract storage pointer" @@ -4367,11 +4367,11 @@ "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3178:6:0", + "memberLocation": "3169:6:0", "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": 33, - "src": "3176:8:0", + "src": "3167:8:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -4384,7 +4384,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 255, - "src": "3186:1:0", + "src": "3177:1:0", "typeDescriptions": { "typeIdentifier": "t_struct$_LockContract_$40_storage_ptr", "typeString": "struct HashTimeLock.LockContract storage pointer" @@ -4395,11 +4395,11 @@ "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3188:8:0", + "memberLocation": "3179:8:0", "memberName": "receiver", "nodeType": "MemberAccess", "referencedDeclaration": 35, - "src": "3186:10:0", + "src": "3177:10:0", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -4430,7 +4430,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 62, - "src": "3153:6:0", + "src": "3144:6:0", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$_t_address_$returns$__$", "typeString": "function (bytes32,bytes32,address,address)" @@ -4445,7 +4445,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3153:44:0", + "src": "3144:44:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", @@ -4454,7 +4454,7 @@ }, "id": 301, "nodeType": "EmitStatement", - "src": "3148:49:0" + "src": "3139:49:0" } ] }, @@ -4464,7 +4464,7 @@ "kind": "function", "modifiers": [], "name": "refund", - "nameLocation": "2864:6:0", + "nameLocation": "2855:6:0", "nodeType": "FunctionDefinition", "parameters": { "id": 251, @@ -4475,10 +4475,10 @@ "id": 250, "mutability": "mutable", "name": "id", - "nameLocation": "2879:2:0", + "nameLocation": "2870:2:0", "nodeType": "VariableDeclaration", "scope": 303, - "src": "2871:10:0", + "src": "2862:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4489,7 +4489,7 @@ "id": 249, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2871:7:0", + "src": "2862:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4498,16 +4498,16 @@ "visibility": "internal" } ], - "src": "2870:12:0" + "src": "2861:12:0" }, "returnParameters": { "id": 252, "nodeType": "ParameterList", "parameters": [], - "src": "2892:0:0" + "src": "2883:0:0" }, "scope": 414, - "src": "2855:349:0", + "src": "2846:349:0", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" @@ -4516,7 +4516,7 @@ "body": { "id": 349, "nodeType": "Block", - "src": "3290:223:0", + "src": "3281:223:0", "statements": [ { "assignments": [ @@ -4528,10 +4528,10 @@ "id": 316, "mutability": "mutable", "name": "result", - "nameLocation": "3317:6:0", + "nameLocation": "3308:6:0", "nodeType": "VariableDeclaration", "scope": 349, - "src": "3300:23:0", + "src": "3291:23:0", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -4543,7 +4543,7 @@ "id": 314, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3300:7:0", + "src": "3291:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4551,7 +4551,7 @@ }, "id": 315, "nodeType": "ArrayTypeName", - "src": "3300:9:0", + "src": "3291:9:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -4570,7 +4570,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 306, - "src": "3340:3:0", + "src": "3331:3:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" @@ -4581,10 +4581,10 @@ "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3344:6:0", + "memberLocation": "3335:6:0", "memberName": "length", "nodeType": "MemberAccess", - "src": "3340:10:0", + "src": "3331:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4604,7 +4604,7 @@ "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "3326:13:0", + "src": "3317:13:0", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (uint256[] memory)" @@ -4614,7 +4614,7 @@ "id": 317, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3330:7:0", + "src": "3321:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4622,7 +4622,7 @@ }, "id": 318, "nodeType": "ArrayTypeName", - "src": "3330:9:0", + "src": "3321:9:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -4638,7 +4638,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3326:25:0", + "src": "3317:25:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", @@ -4646,13 +4646,13 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "3300:51:0" + "src": "3291:51:0" }, { "body": { "id": 345, "nodeType": "Block", - "src": "3415:68:0", + "src": "3406:68:0", "statements": [ { "expression": { @@ -4668,7 +4668,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 316, - "src": "3429:6:0", + "src": "3420:6:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" @@ -4681,7 +4681,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 325, - "src": "3436:5:0", + "src": "3427:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4692,7 +4692,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3429:13:0", + "src": "3420:13:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4709,7 +4709,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 306, - "src": "3461:3:0", + "src": "3452:3:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" @@ -4722,7 +4722,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 325, - "src": "3465:5:0", + "src": "3456:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4733,7 +4733,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3461:10:0", + "src": "3452:10:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4752,7 +4752,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 387, - "src": "3445:15:0", + "src": "3436:15:0", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_uint256_$", "typeString": "function (bytes32) view returns (uint256)" @@ -4767,14 +4767,14 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "3445:27:0", + "src": "3436:27:0", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3429:43:0", + "src": "3420:43:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4782,7 +4782,7 @@ }, "id": 344, "nodeType": "ExpressionStatement", - "src": "3429:43:0" + "src": "3420:43:0" } ] }, @@ -4802,7 +4802,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 325, - "src": "3386:5:0", + "src": "3377:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4817,7 +4817,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 306, - "src": "3394:3:0", + "src": "3385:3:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" @@ -4828,16 +4828,16 @@ "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3398:6:0", + "memberLocation": "3389:6:0", "memberName": "length", "nodeType": "MemberAccess", - "src": "3394:10:0", + "src": "3385:10:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3386:18:0", + "src": "3377:18:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4854,10 +4854,10 @@ "id": 325, "mutability": "mutable", "name": "index", - "nameLocation": "3375:5:0", + "nameLocation": "3366:5:0", "nodeType": "VariableDeclaration", "scope": 346, - "src": "3367:13:0", + "src": "3358:13:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4868,7 +4868,7 @@ "id": 324, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3367:7:0", + "src": "3358:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4887,7 +4887,7 @@ "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3383:1:0", + "src": "3374:1:0", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -4895,7 +4895,7 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "3367:17:0" + "src": "3358:17:0" }, "loopExpression": { "expression": { @@ -4907,14 +4907,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "3406:7:0", + "src": "3397:7:0", "subExpression": { "id": 332, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 325, - "src": "3406:5:0", + "src": "3397:5:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4927,10 +4927,10 @@ }, "id": 334, "nodeType": "ExpressionStatement", - "src": "3406:7:0" + "src": "3397:7:0" }, "nodeType": "ForStatement", - "src": "3362:121:0" + "src": "3353:121:0" }, { "expression": { @@ -4939,7 +4939,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 316, - "src": "3500:6:0", + "src": "3491:6:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" @@ -4948,7 +4948,7 @@ "functionReturnParameters": 311, "id": 348, "nodeType": "Return", - "src": "3493:13:0" + "src": "3484:13:0" } ] }, @@ -4958,7 +4958,7 @@ "kind": "function", "modifiers": [], "name": "getStatus", - "nameLocation": "3219:9:0", + "nameLocation": "3210:9:0", "nodeType": "FunctionDefinition", "parameters": { "id": 307, @@ -4969,10 +4969,10 @@ "id": 306, "mutability": "mutable", "name": "ids", - "nameLocation": "3246:3:0", + "nameLocation": "3237:3:0", "nodeType": "VariableDeclaration", "scope": 350, - "src": "3229:20:0", + "src": "3220:20:0", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -4984,7 +4984,7 @@ "id": 304, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3229:7:0", + "src": "3220:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4992,7 +4992,7 @@ }, "id": 305, "nodeType": "ArrayTypeName", - "src": "3229:9:0", + "src": "3220:9:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -5001,7 +5001,7 @@ "visibility": "internal" } ], - "src": "3228:22:0" + "src": "3219:22:0" }, "returnParameters": { "id": 311, @@ -5015,7 +5015,7 @@ "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 350, - "src": "3272:16:0", + "src": "3263:16:0", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -5027,7 +5027,7 @@ "id": 308, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3272:7:0", + "src": "3263:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5035,7 +5035,7 @@ }, "id": 309, "nodeType": "ArrayTypeName", - "src": "3272:9:0", + "src": "3263:9:0", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -5044,10 +5044,10 @@ "visibility": "internal" } ], - "src": "3271:18:0" + "src": "3262:18:0" }, "scope": 414, - "src": "3210:303:0", + "src": "3201:303:0", "stateMutability": "view", "virtual": false, "visibility": "public" @@ -5056,7 +5056,7 @@ "body": { "id": 386, "nodeType": "Block", - "src": "3593:255:0", + "src": "3584:255:0", "statements": [ { "assignments": [ @@ -5068,10 +5068,10 @@ "id": 359, "mutability": "mutable", "name": "tempContract", - "nameLocation": "3623:12:0", + "nameLocation": "3614:12:0", "nodeType": "VariableDeclaration", "scope": 386, - "src": "3603:32:0", + "src": "3594:32:0", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -5085,14 +5085,14 @@ "id": 357, "name": "LockContract", "nameLocations": [ - "3603:12:0" + "3594:12:0" ], "nodeType": "IdentifierPath", "referencedDeclaration": 40, - "src": "3603:12:0" + "src": "3594:12:0" }, "referencedDeclaration": 40, - "src": "3603:12:0", + "src": "3594:12:0", "typeDescriptions": { "typeIdentifier": "t_struct$_LockContract_$40_storage_ptr", "typeString": "struct HashTimeLock.LockContract" @@ -5109,7 +5109,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6, - "src": "3638:9:0", + "src": "3629:9:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_LockContract_$40_storage_$", "typeString": "mapping(bytes32 => struct HashTimeLock.LockContract storage ref)" @@ -5122,7 +5122,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 352, - "src": "3648:2:0", + "src": "3639:2:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5133,14 +5133,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3638:13:0", + "src": "3629:13:0", "typeDescriptions": { "typeIdentifier": "t_struct$_LockContract_$40_storage", "typeString": "struct HashTimeLock.LockContract storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "3603:48:0" + "src": "3594:48:0" }, { "condition": { @@ -5170,7 +5170,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 359, - "src": "3666:12:0", + "src": "3657:12:0", "typeDescriptions": { "typeIdentifier": "t_struct$_LockContract_$40_memory_ptr", "typeString": "struct HashTimeLock.LockContract memory" @@ -5181,11 +5181,11 @@ "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3679:6:0", + "memberLocation": "3670:6:0", "memberName": "status", "nodeType": "MemberAccess", "referencedDeclaration": 29, - "src": "3666:19:0", + "src": "3657:19:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5199,13 +5199,13 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 12, - "src": "3689:6:0", + "src": "3680:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3666:29:0", + "src": "3657:29:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5230,7 +5230,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 359, - "src": "3699:12:0", + "src": "3690:12:0", "typeDescriptions": { "typeIdentifier": "t_struct$_LockContract_$40_memory_ptr", "typeString": "struct HashTimeLock.LockContract memory" @@ -5241,11 +5241,11 @@ "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3712:10:0", + "memberLocation": "3703:10:0", "memberName": "expiration", "nodeType": "MemberAccess", "referencedDeclaration": 27, - "src": "3699:23:0", + "src": "3690:23:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5260,7 +5260,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967292, - "src": "3725:5:0", + "src": "3716:5:0", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" @@ -5271,22 +5271,22 @@ "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "3731:9:0", + "memberLocation": "3722:9:0", "memberName": "timestamp", "nodeType": "MemberAccess", - "src": "3725:15:0", + "src": "3716:15:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3699:41:0", + "src": "3690:41:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3666:74:0", + "src": "3657:74:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5295,7 +5295,7 @@ "falseBody": { "id": 384, "nodeType": "Block", - "src": "3789:53:0", + "src": "3780:53:0", "statements": [ { "expression": { @@ -5310,7 +5310,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 355, - "src": "3803:6:0", + "src": "3794:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5325,7 +5325,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 359, - "src": "3812:12:0", + "src": "3803:12:0", "typeDescriptions": { "typeIdentifier": "t_struct$_LockContract_$40_memory_ptr", "typeString": "struct HashTimeLock.LockContract memory" @@ -5336,17 +5336,17 @@ "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "3825:6:0", + "memberLocation": "3816:6:0", "memberName": "status", "nodeType": "MemberAccess", "referencedDeclaration": 29, - "src": "3812:19:0", + "src": "3803:19:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3803:28:0", + "src": "3794:28:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5354,17 +5354,17 @@ }, "id": 383, "nodeType": "ExpressionStatement", - "src": "3803:28:0" + "src": "3794:28:0" } ] }, "id": 385, "nodeType": "IfStatement", - "src": "3662:180:0", + "src": "3653:180:0", "trueBody": { "id": 378, "nodeType": "Block", - "src": "3742:41:0", + "src": "3733:41:0", "statements": [ { "expression": { @@ -5379,7 +5379,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 355, - "src": "3756:6:0", + "src": "3747:6:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5393,13 +5393,13 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 21, - "src": "3765:7:0", + "src": "3756:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3756:16:0", + "src": "3747:16:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5407,7 +5407,7 @@ }, "id": 377, "nodeType": "ExpressionStatement", - "src": "3756:16:0" + "src": "3747:16:0" } ] } @@ -5420,7 +5420,7 @@ "kind": "function", "modifiers": [], "name": "getSingleStatus", - "nameLocation": "3528:15:0", + "nameLocation": "3519:15:0", "nodeType": "FunctionDefinition", "parameters": { "id": 353, @@ -5431,10 +5431,10 @@ "id": 352, "mutability": "mutable", "name": "id", - "nameLocation": "3552:2:0", + "nameLocation": "3543:2:0", "nodeType": "VariableDeclaration", "scope": 387, - "src": "3544:10:0", + "src": "3535:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5445,7 +5445,7 @@ "id": 351, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3544:7:0", + "src": "3535:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5454,7 +5454,7 @@ "visibility": "internal" } ], - "src": "3543:12:0" + "src": "3534:12:0" }, "returnParameters": { "id": 356, @@ -5465,10 +5465,10 @@ "id": 355, "mutability": "mutable", "name": "result", - "nameLocation": "3585:6:0", + "nameLocation": "3576:6:0", "nodeType": "VariableDeclaration", "scope": 387, - "src": "3577:14:0", + "src": "3568:14:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5479,7 +5479,7 @@ "id": 354, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3577:7:0", + "src": "3568:7:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5488,10 +5488,10 @@ "visibility": "internal" } ], - "src": "3576:16:0" + "src": "3567:16:0" }, "scope": 414, - "src": "3519:329:0", + "src": "3510:329:0", "stateMutability": "view", "virtual": false, "visibility": "public" @@ -5500,7 +5500,7 @@ "body": { "id": 412, "nodeType": "Block", - "src": "3924:187:0", + "src": "3915:187:0", "statements": [ { "assignments": [ @@ -5512,10 +5512,10 @@ "id": 396, "mutability": "mutable", "name": "tempContract", - "nameLocation": "3954:12:0", + "nameLocation": "3945:12:0", "nodeType": "VariableDeclaration", "scope": 412, - "src": "3934:32:0", + "src": "3925:32:0", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -5529,14 +5529,14 @@ "id": 394, "name": "LockContract", "nameLocations": [ - "3934:12:0" + "3925:12:0" ], "nodeType": "IdentifierPath", "referencedDeclaration": 40, - "src": "3934:12:0" + "src": "3925:12:0" }, "referencedDeclaration": 40, - "src": "3934:12:0", + "src": "3925:12:0", "typeDescriptions": { "typeIdentifier": "t_struct$_LockContract_$40_storage_ptr", "typeString": "struct HashTimeLock.LockContract" @@ -5553,7 +5553,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 6, - "src": "3969:9:0", + "src": "3960:9:0", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_LockContract_$40_storage_$", "typeString": "mapping(bytes32 => struct HashTimeLock.LockContract storage ref)" @@ -5566,7 +5566,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 389, - "src": "3979:2:0", + "src": "3970:2:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5577,14 +5577,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3969:13:0", + "src": "3960:13:0", "typeDescriptions": { "typeIdentifier": "t_struct$_LockContract_$40_storage", "typeString": "struct HashTimeLock.LockContract storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "3934:48:0" + "src": "3925:48:0" }, { "condition": { @@ -5604,7 +5604,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 396, - "src": "3997:12:0", + "src": "3988:12:0", "typeDescriptions": { "typeIdentifier": "t_struct$_LockContract_$40_memory_ptr", "typeString": "struct HashTimeLock.LockContract memory" @@ -5615,11 +5615,11 @@ "isLValue": true, "isPure": false, "lValueRequested": false, - "memberLocation": "4010:6:0", + "memberLocation": "4001:6:0", "memberName": "status", "nodeType": "MemberAccess", "referencedDeclaration": 29, - "src": "3997:19:0", + "src": "3988:19:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5633,13 +5633,13 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 9, - "src": "4020:4:0", + "src": "4011:4:0", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3997:27:0", + "src": "3988:27:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5648,7 +5648,7 @@ "falseBody": { "id": 410, "nodeType": "Block", - "src": "4069:36:0", + "src": "4060:36:0", "statements": [ { "expression": { @@ -5660,7 +5660,7 @@ "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "4090:4:0", + "src": "4081:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5670,17 +5670,17 @@ "functionReturnParameters": 393, "id": 409, "nodeType": "Return", - "src": "4083:11:0" + "src": "4074:11:0" } ] }, "id": 411, "nodeType": "IfStatement", - "src": "3993:112:0", + "src": "3984:112:0", "trueBody": { "id": 407, "nodeType": "Block", - "src": "4026:37:0", + "src": "4017:37:0", "statements": [ { "expression": { @@ -5692,7 +5692,7 @@ "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "4047:5:0", + "src": "4038:5:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5702,7 +5702,7 @@ "functionReturnParameters": 393, "id": 406, "nodeType": "Return", - "src": "4040:12:0" + "src": "4031:12:0" } ] } @@ -5715,7 +5715,7 @@ "kind": "function", "modifiers": [], "name": "contractExists", - "nameLocation": "3863:14:0", + "nameLocation": "3854:14:0", "nodeType": "FunctionDefinition", "parameters": { "id": 390, @@ -5726,10 +5726,10 @@ "id": 389, "mutability": "mutable", "name": "id", - "nameLocation": "3886:2:0", + "nameLocation": "3877:2:0", "nodeType": "VariableDeclaration", "scope": 413, - "src": "3878:10:0", + "src": "3869:10:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5740,7 +5740,7 @@ "id": 388, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3878:7:0", + "src": "3869:7:0", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5749,7 +5749,7 @@ "visibility": "internal" } ], - "src": "3877:12:0" + "src": "3868:12:0" }, "returnParameters": { "id": 393, @@ -5760,10 +5760,10 @@ "id": 392, "mutability": "mutable", "name": "result", - "nameLocation": "3916:6:0", + "nameLocation": "3907:6:0", "nodeType": "VariableDeclaration", "scope": 413, - "src": "3911:11:0", + "src": "3902:11:0", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5774,7 +5774,7 @@ "id": 391, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3911:4:0", + "src": "3902:4:0", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5783,21 +5783,21 @@ "visibility": "internal" } ], - "src": "3910:13:0" + "src": "3901:13:0" }, "scope": 414, - "src": "3854:257:0", + "src": "3845:257:0", "stateMutability": "view", "virtual": false, "visibility": "public" } ], "scope": 415, - "src": "25:4088:0", + "src": "25:4079:0", "usedErrors": [] } ], - "src": "0:4114:0" + "src": "0:4105:0" }, "functionHashes": { "contractExists(bytes32)": "6c8244b8", @@ -5810,9 +5810,9 @@ }, "gasEstimates": { "creation": { - "codeDepositCost": "943400", - "executionCost": "981", - "totalCost": "944381" + "codeDepositCost": "914600", + "executionCost": "948", + "totalCost": "915548" }, "external": { "contractExists(bytes32)": "infinite", diff --git a/packages/cactus-plugin-htlc-eth-besu/src/main/solidity/contracts/HashTimeLock.sol b/packages/cactus-plugin-htlc-eth-besu/src/main/solidity/contracts/HashTimeLock.sol index 0f5696259b3..166c326cff2 100644 --- a/packages/cactus-plugin-htlc-eth-besu/src/main/solidity/contracts/HashTimeLock.sol +++ b/packages/cactus-plugin-htlc-eth-besu/src/main/solidity/contracts/HashTimeLock.sol @@ -1,3 +1,5 @@ +// SPDX-License-Identifier: Apache-2.0 + pragma solidity 0.8.19; contract HashTimeLock { @@ -58,7 +60,7 @@ contract HashTimeLock { require(inputAmount > 0, "INVALID_AMOUNT"); - bytes32 id = sha256(abi.encodePacked(sender, receiver, inputAmount, hashLock, expiration)); + bytes32 id = keccak256(abi.encode(sender, receiver, inputAmount, hashLock, expiration)); require(contracts[id].status == INIT, "SWAP_EXISTS"); @@ -78,7 +80,7 @@ contract HashTimeLock { require(c.expiration > block.timestamp, "INVALID_TIME"); - require(c.hashLock == keccak256(abi.encodePacked(secret)), "INVALID_SECRET"); + require(c.hashLock == keccak256(abi.encode(secret)), "INVALID_SECRET"); c.status = WITHDRAWN; diff --git a/packages/cactus-plugin-htlc-eth-besu/src/main/solidity/contracts/PrivateHashTimeLock.json b/packages/cactus-plugin-htlc-eth-besu/src/main/solidity/contracts/PrivateHashTimeLock.json new file mode 100644 index 00000000000..8629e7bc68f --- /dev/null +++ b/packages/cactus-plugin-htlc-eth-besu/src/main/solidity/contracts/PrivateHashTimeLock.json @@ -0,0 +1,7081 @@ +{ + "contractName": "PrivateHashTimeLock", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "inputAmount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "outputAmount", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "expiration", + "type": "uint256" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "id", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "hashSecret", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "receiver", + "type": "address" + }, + { + "indexed": false, + "internalType": "string", + "name": "outputNetwork", + "type": "string" + }, + { + "indexed": false, + "internalType": "string", + "name": "outputAddress", + "type": "string" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "generator", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "modulus", + "type": "uint256" + } + ], + "indexed": false, + "internalType": "struct PrivateHashTimeLock.PrivateEnhancing", + "name": "priv", + "type": "tuple" + } + ], + "name": "NewContract", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "id", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "hashSecret", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "Refund", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "id", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "secret", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "hashSecret", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "Withdraw", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "id", + "type": "bytes32" + } + ], + "name": "contractExists", + "outputs": [ + { + "internalType": "bool", + "name": "result", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "id", + "type": "bytes32" + } + ], + "name": "getSingleStatus", + "outputs": [ + { + "internalType": "uint256", + "name": "result", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32[]", + "name": "ids", + "type": "bytes32[]" + } + ], + "name": "getStatus", + "outputs": [ + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "outputAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expiration", + "type": "uint256" + }, + { + "internalType": "bytes32", + "name": "hashLock", + "type": "bytes32" + }, + { + "internalType": "address payable", + "name": "receiver", + "type": "address" + }, + { + "internalType": "string", + "name": "outputNetwork", + "type": "string" + }, + { + "internalType": "string", + "name": "outputAddress", + "type": "string" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "generator", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "modulus", + "type": "uint256" + } + ], + "internalType": "struct PrivateHashTimeLock.PrivateEnhancing", + "name": "priv", + "type": "tuple" + } + ], + "name": "newPrivateContract", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "id", + "type": "bytes32" + } + ], + "name": "refund", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "id", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "secret", + "type": "bytes32" + } + ], + "name": "withdraw", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"inputAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"outputAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"hashSecret\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"outputNetwork\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"outputAddress\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"generator\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"modulus\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"struct PrivateHashTimeLock.PrivateEnhancing\",\"name\":\"priv\",\"type\":\"tuple\"}],\"name\":\"NewContract\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"hashSecret\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"Refund\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"secret\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"hashSecret\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"contractExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"getSingleStatus\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"ids\",\"type\":\"bytes32[]\"}],\"name\":\"getStatus\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"outputAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"hashLock\",\"type\":\"bytes32\"},{\"internalType\":\"address payable\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"outputNetwork\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"outputAddress\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"generator\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"modulus\",\"type\":\"uint256\"}],\"internalType\":\"struct PrivateHashTimeLock.PrivateEnhancing\",\"name\":\"priv\",\"type\":\"tuple\"}],\"name\":\"newPrivateContract\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"refund\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"secret\",\"type\":\"bytes32\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/peter/a/cacti-1/packages/cactus-plugin-htlc-eth-besu/src/main/solidity/contracts/PrivateHashTimeLock.sol\":\"PrivateHashTimeLock\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/peter/a/cacti-1/packages/cactus-plugin-htlc-eth-besu/src/main/solidity/contracts/PrivateHashTimeLock.sol\":{\"keccak256\":\"0x81cf8051705e20f124f71e0c33a8c7c76d943619aafcb84b1d9e9d1f3bb032a7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddbbc8a037c7d7d678cf2e63802f3e9936d097656cc22aeb3df2757a96f469af\",\"dweb:/ipfs/QmTKzaS9Y8RzoBfBpyuycsJMoSNQEm5PFnQZ9YaTEq39vC\"]}},\"version\":1}", + "bytecode": "608060405234801561001057600080fd5b50611266806100206000396000f3fe6080604052600436106100555760003560e01c80632f21a6631461005a57806363615149146100905780636c8244b8146100b25780637249fbb6146100e25780639b0bcdcb14610102578063fbdf3b4314610115575b600080fd5b34801561006657600080fd5b5061007a610075366004610c41565b610143565b6040516100879190610ce7565b60405180910390f35b34801561009c57600080fd5b506100b06100ab366004610d2b565b6101f1565b005b3480156100be57600080fd5b506100d26100cd366004610d4d565b610370565b6040519015158152602001610087565b3480156100ee57600080fd5b506100b06100fd366004610d4d565b610549565b6100b0610110366004610dd6565b61065e565b34801561012157600080fd5b50610135610130366004610d4d565b610923565b604051908152602001610087565b60606000825167ffffffffffffffff81111561016157610161610bfa565b60405190808252806020026020018201604052801561018a578160200160208202803683370190505b50905060005b83518110156101ea576101bb8482815181106101ae576101ae610ec1565b6020026020010151610923565b8282815181106101cd576101cd610ec1565b6020908102919091010152806101e281610eed565b915050610190565b5092915050565b6000828152602081905260409020600381015460011461024a5760405162461bcd60e51b815260206004820152600f60248201526e535741505f4e4f545f41435449564560881b60448201526064015b60405180910390fd5b4281600201541161026d5760405162461bcd60e51b815260040161024190610f06565b6009810154600a82015461028391908490610b0a565b8160040154146102c65760405162461bcd60e51b815260206004820152600e60248201526d1253959053125117d4d150d4915560921b6044820152606401610241565b600381810155600681015481546040516001600160a01b039092169181156108fc0291906000818181858888f19350505050158015610309573d6000803e3d6000fd5b506006810154600582015460048301546040516001600160a01b0393841693929092169186917f2d3a5ed13d0553389b4078e01264416362e34d23520fda797fbc17f3905ed1319161036391888252602082015260400190565b60405180910390a4505050565b60008181526020818152604080832081516101408101835281548152600182015493810193909352600281015491830191909152600381015460608301526004810154608083015260058101546001600160a01b0390811660a084015260068201541660c08301526007810180548493929160e08401916103f090610f2c565b80601f016020809104026020016040519081016040528092919081815260200182805461041c90610f2c565b80156104695780601f1061043e57610100808354040283529160200191610469565b820191906000526020600020905b81548152906001019060200180831161044c57829003601f168201915b5050505050815260200160088201805461048290610f2c565b80601f01602080910402602001604051908101604052809291908181526020018280546104ae90610f2c565b80156104fb5780601f106104d0576101008083540402835291602001916104fb565b820191906000526020600020905b8154815290600101906020018083116104de57829003601f168201915b50505091835250506040805180820190915260098301548152600a909201546020838101919091520152606081015190915061053a5750600092915050565b50600192915050565b50919050565b6000818152602081905260409020600381015460011461059d5760405162461bcd60e51b815260206004820152600f60248201526e535741505f4e4f545f41435449564560881b6044820152606401610241565b42816002015411156105c15760405162461bcd60e51b815260040161024190610f06565b60026003820155600581015481546040516001600160a01b039092169181156108fc0291906000818181858888f19350505050158015610605573d6000803e3d6000fd5b506006810154600582015460048301546040519081526001600160a01b03928316929091169084907f6fa50d56c31f3efe0cb6ff06232bffce8fe8c4155e3cbb6f2d79dd12631c25229060200160405180910390a45050565b333442881161067f5760405162461bcd60e51b815260040161024190610f06565b600081116106c05760405162461bcd60e51b815260206004820152600e60248201526d1253959053125117d05353d5539560921b6044820152606401610241565b604080516001600160a01b038085166020830152881691810191909152606081018290526080810188905260a0810189905260009060c00160408051601f1981840301815291815281516020928301206000818152928390529120600301549091501561075d5760405162461bcd60e51b815260206004820152600b60248201526a535741505f45584953545360a81b6044820152606401610241565b835161076857600080fd5b600084602001511161077957600080fd5b6040518061014001604052808381526020018b81526020018a815260200160018152602001898152602001846001600160a01b03168152602001886001600160a01b0316815260200187815260200186815260200185815250600080838152602001908152602001600020600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a08201518160050160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060c08201518160060160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060e08201518160070190816108859190610faf565b50610100820151600882019061089b9082610faf565b506101208201518160090160008201518160000155602082015181600101555050905050866001600160a01b0316836001600160a01b0316827f1d31774ea86d945735b69a4af1ba1a0a71287ba386bc3fe658ae84927d2995c7858e8e8e8d8d8d60405161090f97969594939291906110b5565b60405180910390a450505050505050505050565b60008181526020818152604080832081516101408101835281548152600182015493810193909352600281015491830191909152600381015460608301526004810154608083015260058101546001600160a01b0390811660a084015260068201541660c08301526007810180548493929160e08401916109a390610f2c565b80601f01602080910402602001604051908101604052809291908181526020018280546109cf90610f2c565b8015610a1c5780601f106109f157610100808354040283529160200191610a1c565b820191906000526020600020905b8154815290600101906020018083116109ff57829003601f168201915b50505050508152602001600882018054610a3590610f2c565b80601f0160208091040260200160405190810160405280929190818152602001828054610a6190610f2c565b8015610aae5780601f10610a8357610100808354040283529160200191610aae565b820191906000526020600020905b815481529060010190602001808311610a9157829003601f168201915b50505091835250506040805180820190915260098301548152600a90920154602083810191909152015260608101519091506001148015610af25750428160400151105b15610b005760049150610543565b6060015192915050565b6000808211610b515760405162461bcd60e51b815260206004820152601360248201527204d6f64756c75732063616e6e6f74206265203606c1b6044820152606401610241565b60008411610b945760405162461bcd60e51b815260206004820152601060248201526f0626173652063616e6e6f7420626520360841b6044820152606401610241565b60008311610bdd5760405162461bcd60e51b815260206004820152601660248201527506578706f6e656e745f312063616e6e6f7420626520360541b6044820152606401610241565b81610be884866111fb565b610bf2919061120e565b949350505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610c3957610c39610bfa565b604052919050565b60006020808385031215610c5457600080fd5b823567ffffffffffffffff80821115610c6c57600080fd5b818501915085601f830112610c8057600080fd5b813581811115610c9257610c92610bfa565b8060051b9150610ca3848301610c10565b8181529183018401918481019088841115610cbd57600080fd5b938501935b83851015610cdb57843582529385019390850190610cc2565b98975050505050505050565b6020808252825182820181905260009190848201906040850190845b81811015610d1f57835183529284019291840191600101610d03565b50909695505050505050565b60008060408385031215610d3e57600080fd5b50508035926020909101359150565b600060208284031215610d5f57600080fd5b5035919050565b600082601f830112610d7757600080fd5b813567ffffffffffffffff811115610d9157610d91610bfa565b610da4601f8201601f1916602001610c10565b818152846020838601011115610db957600080fd5b816020850160208301376000918101602001919091529392505050565b6000806000806000806000878903610100811215610df357600080fd5b88359750602089013596506040890135955060608901356001600160a01b0381168114610e1f57600080fd5b9450608089013567ffffffffffffffff80821115610e3c57600080fd5b610e488c838d01610d66565b955060a08b0135915080821115610e5e57600080fd5b610e6a8c838d01610d66565b9450604060bf1984011215610e7e57600080fd5b60405192506040830191508282108183111715610e9d57610e9d610bfa565b5060405260c0890135815260e0909801356020890152509497939650919490939192565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201610eff57610eff610ed7565b5060010190565b6020808252600c908201526b494e56414c49445f54494d4560a01b604082015260600190565b600181811c90821680610f4057607f821691505b60208210810361054357634e487b7160e01b600052602260045260246000fd5b601f821115610faa57600081815260208120601f850160051c81016020861015610f875750805b601f850160051c820191505b81811015610fa657828155600101610f93565b5050505b505050565b815167ffffffffffffffff811115610fc957610fc9610bfa565b610fdd81610fd78454610f2c565b84610f60565b602080601f8311600181146110125760008415610ffa5750858301515b600019600386901b1c1916600185901b178555610fa6565b600085815260208120601f198616915b8281101561104157888601518255948401946001909101908401611022565b508582101561105f5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000815180845260005b8181101561109557602081850181015186830182015201611079565b506000602082860101526020601f19601f83011685010191505092915050565b60006101008983528860208401528760408401528660608401528060808401526110e18184018761106f565b905082810360a08401526110f5818661106f565b915050825160c0830152602083015160e083015298975050505050505050565b600181815b8085111561115057816000190482111561113657611136610ed7565b8085161561114357918102915b93841c939080029061111a565b509250929050565b600082611167575060016111f5565b81611174575060006111f5565b816001811461118a5760028114611194576111b0565b60019150506111f5565b60ff8411156111a5576111a5610ed7565b50506001821b6111f5565b5060208310610133831016604e8410600b84101617156111d3575081810a6111f5565b6111dd8383611115565b80600019048211156111f1576111f1610ed7565b0290505b92915050565b60006112078383611158565b9392505050565b60008261122b57634e487b7160e01b600052601260045260246000fd5b50069056fea26469706673582212201394af3c806f40ac6e19a695e00b9e526948e3236a710a5c9d21625c9c979f1f64736f6c63430008130033", + "deployedBytecode": "6080604052600436106100555760003560e01c80632f21a6631461005a57806363615149146100905780636c8244b8146100b25780637249fbb6146100e25780639b0bcdcb14610102578063fbdf3b4314610115575b600080fd5b34801561006657600080fd5b5061007a610075366004610c41565b610143565b6040516100879190610ce7565b60405180910390f35b34801561009c57600080fd5b506100b06100ab366004610d2b565b6101f1565b005b3480156100be57600080fd5b506100d26100cd366004610d4d565b610370565b6040519015158152602001610087565b3480156100ee57600080fd5b506100b06100fd366004610d4d565b610549565b6100b0610110366004610dd6565b61065e565b34801561012157600080fd5b50610135610130366004610d4d565b610923565b604051908152602001610087565b60606000825167ffffffffffffffff81111561016157610161610bfa565b60405190808252806020026020018201604052801561018a578160200160208202803683370190505b50905060005b83518110156101ea576101bb8482815181106101ae576101ae610ec1565b6020026020010151610923565b8282815181106101cd576101cd610ec1565b6020908102919091010152806101e281610eed565b915050610190565b5092915050565b6000828152602081905260409020600381015460011461024a5760405162461bcd60e51b815260206004820152600f60248201526e535741505f4e4f545f41435449564560881b60448201526064015b60405180910390fd5b4281600201541161026d5760405162461bcd60e51b815260040161024190610f06565b6009810154600a82015461028391908490610b0a565b8160040154146102c65760405162461bcd60e51b815260206004820152600e60248201526d1253959053125117d4d150d4915560921b6044820152606401610241565b600381810155600681015481546040516001600160a01b039092169181156108fc0291906000818181858888f19350505050158015610309573d6000803e3d6000fd5b506006810154600582015460048301546040516001600160a01b0393841693929092169186917f2d3a5ed13d0553389b4078e01264416362e34d23520fda797fbc17f3905ed1319161036391888252602082015260400190565b60405180910390a4505050565b60008181526020818152604080832081516101408101835281548152600182015493810193909352600281015491830191909152600381015460608301526004810154608083015260058101546001600160a01b0390811660a084015260068201541660c08301526007810180548493929160e08401916103f090610f2c565b80601f016020809104026020016040519081016040528092919081815260200182805461041c90610f2c565b80156104695780601f1061043e57610100808354040283529160200191610469565b820191906000526020600020905b81548152906001019060200180831161044c57829003601f168201915b5050505050815260200160088201805461048290610f2c565b80601f01602080910402602001604051908101604052809291908181526020018280546104ae90610f2c565b80156104fb5780601f106104d0576101008083540402835291602001916104fb565b820191906000526020600020905b8154815290600101906020018083116104de57829003601f168201915b50505091835250506040805180820190915260098301548152600a909201546020838101919091520152606081015190915061053a5750600092915050565b50600192915050565b50919050565b6000818152602081905260409020600381015460011461059d5760405162461bcd60e51b815260206004820152600f60248201526e535741505f4e4f545f41435449564560881b6044820152606401610241565b42816002015411156105c15760405162461bcd60e51b815260040161024190610f06565b60026003820155600581015481546040516001600160a01b039092169181156108fc0291906000818181858888f19350505050158015610605573d6000803e3d6000fd5b506006810154600582015460048301546040519081526001600160a01b03928316929091169084907f6fa50d56c31f3efe0cb6ff06232bffce8fe8c4155e3cbb6f2d79dd12631c25229060200160405180910390a45050565b333442881161067f5760405162461bcd60e51b815260040161024190610f06565b600081116106c05760405162461bcd60e51b815260206004820152600e60248201526d1253959053125117d05353d5539560921b6044820152606401610241565b604080516001600160a01b038085166020830152881691810191909152606081018290526080810188905260a0810189905260009060c00160408051601f1981840301815291815281516020928301206000818152928390529120600301549091501561075d5760405162461bcd60e51b815260206004820152600b60248201526a535741505f45584953545360a81b6044820152606401610241565b835161076857600080fd5b600084602001511161077957600080fd5b6040518061014001604052808381526020018b81526020018a815260200160018152602001898152602001846001600160a01b03168152602001886001600160a01b0316815260200187815260200186815260200185815250600080838152602001908152602001600020600082015181600001556020820151816001015560408201518160020155606082015181600301556080820151816004015560a08201518160050160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060c08201518160060160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060e08201518160070190816108859190610faf565b50610100820151600882019061089b9082610faf565b506101208201518160090160008201518160000155602082015181600101555050905050866001600160a01b0316836001600160a01b0316827f1d31774ea86d945735b69a4af1ba1a0a71287ba386bc3fe658ae84927d2995c7858e8e8e8d8d8d60405161090f97969594939291906110b5565b60405180910390a450505050505050505050565b60008181526020818152604080832081516101408101835281548152600182015493810193909352600281015491830191909152600381015460608301526004810154608083015260058101546001600160a01b0390811660a084015260068201541660c08301526007810180548493929160e08401916109a390610f2c565b80601f01602080910402602001604051908101604052809291908181526020018280546109cf90610f2c565b8015610a1c5780601f106109f157610100808354040283529160200191610a1c565b820191906000526020600020905b8154815290600101906020018083116109ff57829003601f168201915b50505050508152602001600882018054610a3590610f2c565b80601f0160208091040260200160405190810160405280929190818152602001828054610a6190610f2c565b8015610aae5780601f10610a8357610100808354040283529160200191610aae565b820191906000526020600020905b815481529060010190602001808311610a9157829003601f168201915b50505091835250506040805180820190915260098301548152600a90920154602083810191909152015260608101519091506001148015610af25750428160400151105b15610b005760049150610543565b6060015192915050565b6000808211610b515760405162461bcd60e51b815260206004820152601360248201527204d6f64756c75732063616e6e6f74206265203606c1b6044820152606401610241565b60008411610b945760405162461bcd60e51b815260206004820152601060248201526f0626173652063616e6e6f7420626520360841b6044820152606401610241565b60008311610bdd5760405162461bcd60e51b815260206004820152601660248201527506578706f6e656e745f312063616e6e6f7420626520360541b6044820152606401610241565b81610be884866111fb565b610bf2919061120e565b949350505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610c3957610c39610bfa565b604052919050565b60006020808385031215610c5457600080fd5b823567ffffffffffffffff80821115610c6c57600080fd5b818501915085601f830112610c8057600080fd5b813581811115610c9257610c92610bfa565b8060051b9150610ca3848301610c10565b8181529183018401918481019088841115610cbd57600080fd5b938501935b83851015610cdb57843582529385019390850190610cc2565b98975050505050505050565b6020808252825182820181905260009190848201906040850190845b81811015610d1f57835183529284019291840191600101610d03565b50909695505050505050565b60008060408385031215610d3e57600080fd5b50508035926020909101359150565b600060208284031215610d5f57600080fd5b5035919050565b600082601f830112610d7757600080fd5b813567ffffffffffffffff811115610d9157610d91610bfa565b610da4601f8201601f1916602001610c10565b818152846020838601011115610db957600080fd5b816020850160208301376000918101602001919091529392505050565b6000806000806000806000878903610100811215610df357600080fd5b88359750602089013596506040890135955060608901356001600160a01b0381168114610e1f57600080fd5b9450608089013567ffffffffffffffff80821115610e3c57600080fd5b610e488c838d01610d66565b955060a08b0135915080821115610e5e57600080fd5b610e6a8c838d01610d66565b9450604060bf1984011215610e7e57600080fd5b60405192506040830191508282108183111715610e9d57610e9d610bfa565b5060405260c0890135815260e0909801356020890152509497939650919490939192565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201610eff57610eff610ed7565b5060010190565b6020808252600c908201526b494e56414c49445f54494d4560a01b604082015260600190565b600181811c90821680610f4057607f821691505b60208210810361054357634e487b7160e01b600052602260045260246000fd5b601f821115610faa57600081815260208120601f850160051c81016020861015610f875750805b601f850160051c820191505b81811015610fa657828155600101610f93565b5050505b505050565b815167ffffffffffffffff811115610fc957610fc9610bfa565b610fdd81610fd78454610f2c565b84610f60565b602080601f8311600181146110125760008415610ffa5750858301515b600019600386901b1c1916600185901b178555610fa6565b600085815260208120601f198616915b8281101561104157888601518255948401946001909101908401611022565b508582101561105f5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000815180845260005b8181101561109557602081850181015186830182015201611079565b506000602082860101526020601f19601f83011685010191505092915050565b60006101008983528860208401528760408401528660608401528060808401526110e18184018761106f565b905082810360a08401526110f5818661106f565b915050825160c0830152602083015160e083015298975050505050505050565b600181815b8085111561115057816000190482111561113657611136610ed7565b8085161561114357918102915b93841c939080029061111a565b509250929050565b600082611167575060016111f5565b81611174575060006111f5565b816001811461118a5760028114611194576111b0565b60019150506111f5565b60ff8411156111a5576111a5610ed7565b50506001821b6111f5565b5060208310610133831016604e8410600b84101617156111d3575081810a6111f5565b6111dd8383611115565b80600019048211156111f1576111f1610ed7565b0290505b92915050565b60006112078383611158565b9392505050565b60008261122b57634e487b7160e01b600052601260045260246000fd5b50069056fea26469706673582212201394af3c806f40ac6e19a695e00b9e526948e3236a710a5c9d21625c9c979f1f64736f6c63430008130033", + "sourceMap": "57:5185:0:-:0;;;;;;;;;;;;;;;;;;;", + "deployedSourceMap": "57:5185:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4339:303;;;;;;;;;;-1:-1:-1;4339:303:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3080:526;;;;;;;;;;-1:-1:-1;3080:526:0;;;;;:::i;:::-;;:::i;:::-;;4983:257;;;;;;;;;;-1:-1:-1;4983:257:0;;;;;:::i;:::-;;:::i;:::-;;;2617:14:1;;2610:22;2592:41;;2580:2;2565:18;4983:257:0;2452:187:1;3982:351:0;;;;;;;;;;-1:-1:-1;3982:351:0;;;;;:::i;:::-;;:::i;1905:1169::-;;;;;;:::i;:::-;;:::i;4648:329::-;;;;;;;;;;-1:-1:-1;4648:329:0;;;;;:::i;:::-;;:::i;:::-;;;4724:25:1;;;4712:2;4697:18;4648:329:0;4578:177:1;4339:303:0;4401:16;4429:23;4469:3;:10;4455:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4455:25:0;;4429:51;;4496:13;4491:121;4523:3;:10;4515:5;:18;4491:121;;;4574:27;4590:3;4594:5;4590:10;;;;;;;;:::i;:::-;;;;;;;4574:15;:27::i;:::-;4558:6;4565:5;4558:13;;;;;;;;:::i;:::-;;;;;;;;;;:43;4535:7;;;;:::i;:::-;;;;4491:121;;;-1:-1:-1;4629:6:0;4339:303;-1:-1:-1;;4339:303:0:o;3080:526::-;3145:22;3170:13;;;;;;;;;;3201:8;;;;370:1;3201:18;3193:46;;;;-1:-1:-1;;;3193:46:0;;5366:2:1;3193:46:0;;;5348:21:1;5405:2;5385:18;;;5378:30;-1:-1:-1;;;5424:18:1;;;5417:45;5479:18;;3193:46:0;;;;;;;;;3273:15;3258:1;:12;;;:30;3250:55;;;;-1:-1:-1;;;3250:55:0;;;;;;;:::i;:::-;3373:6;;;:16;3408:14;;;;3353:70;;3373:16;3399:6;;3353:19;:70::i;:::-;3337:1;:12;;;:86;3316:135;;;;-1:-1:-1;;;3316:135:0;;6051:2:1;3316:135:0;;;6033:21:1;6090:2;6070:18;;;6063:30;-1:-1:-1;;;6109:18:1;;;6102:44;6163:18;;3316:135:0;5849:338:1;3316:135:0;542:1;3462:8;;;:20;3493:10;;;;3513:13;;3493:34;;-1:-1:-1;;;;;3493:10:0;;;;:34;;;;;3513:13;3493:10;:34;:10;:34;3513:13;3493:10;:34;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3588:10:0;;;;3578:8;;;;3564:12;;;;3543:56;;-1:-1:-1;;;;;3588:10:0;;;;3578:8;;;;;3552:2;;3543:56;;;;3556:6;6366:25:1;;6422:2;6407:18;;6400:34;6354:2;6339:18;;6192:248;3543:56:0;;;;;;;;3135:471;3080:526;;:::o;4983:257::-;5040:11;5098:13;;;;;;;;;;;5063:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5063:48:0;;;;;;;;;;;;;;;;;;;;;5040:11;;5063:48;5098:13;5063:48;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5063:48:0;;;-1:-1:-1;;5063:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5126:19;;;;5063:48;;-1:-1:-1;5122:112:0;;-1:-1:-1;5176:5:0;;4983:257;-1:-1:-1;;4983:257:0:o;5122:112::-;-1:-1:-1;5219:4:0;;4983:257;-1:-1:-1;;4983:257:0:o;5122:112::-;5053:187;4983:257;;;:::o;3982:351::-;4029:22;4054:13;;;;;;;;;;4086:8;;;;370:1;4086:18;4078:46;;;;-1:-1:-1;;;4078:46:0;;5366:2:1;4078:46:0;;;5348:21:1;5405:2;5385:18;;;5378:30;-1:-1:-1;;;5424:18:1;;;5417:45;5479:18;;4078:46:0;5164:339:1;4078:46:0;4159:15;4143:1;:12;;;:31;;4135:56;;;;-1:-1:-1;;;4135:56:0;;;;;;;:::i;:::-;462:1;4202:8;;;:19;4232:8;;;;4250:13;;4232:32;;-1:-1:-1;;;;;4232:8:0;;;;:32;;;;;4250:13;4232:8;:32;:8;:32;4250:13;4232:8;:32;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4315:10:0;;;;4305:8;;;;4291:12;;;;4280:46;;4724:25:1;;;-1:-1:-1;;;;;4315:10:0;;;;4305:8;;;;4287:2;;4280:46;;4712:2:1;4697:18;4280:46:0;;;;;;;4019:314;3982:351;:::o;1905:1169::-;2229:10;2272:9;2313:15;2300:28;;2292:53;;;;-1:-1:-1;;;2292:53:0;;;;;;;:::i;:::-;2378:1;2364:11;:15;2356:42;;;;-1:-1:-1;;;2356:42:0;;7214:2:1;2356:42:0;;;7196:21:1;7253:2;7233:18;;;7226:30;-1:-1:-1;;;7272:18:1;;;7265:44;7326:18;;2356:42:0;7012:338:1;2356:42:0;2432:63;;;-1:-1:-1;;;;;7702:15:1;;;2432:63:0;;;7684:34:1;7754:15;;7734:18;;;7727:43;;;;7786:18;;;7779:34;;;7829:18;;;7822:34;;;7872:19;;;7865:35;;;2409:10:0;;7618:19:1;;2432:63:0;;;-1:-1:-1;;2432:63:0;;;;;;;;;2422:74;;2432:63;2422:74;;;;295:1;2515:13;;;;;;;;;:20;;;2422:74;;-1:-1:-1;2515:28:0;2507:52;;;;-1:-1:-1;;;2507:52:0;;8113:2:1;2507:52:0;;;8095:21:1;8152:2;8132:18;;;8125:30;-1:-1:-1;;;8171:18:1;;;8164:41;8222:18;;2507:52:0;7911:335:1;2507:52:0;2577:14;;2569:27;;;;;;2629:1;2614:4;:12;;;:16;2606:25;;;;;;2658:253;;;;;;;;2684:11;2658:253;;;;2709:12;2658:253;;;;2735:10;2658:253;;;;370:1;2658:253;;;;2779:8;2658:253;;;;2801:6;-1:-1:-1;;;;;2658:253:0;;;;;2821:8;-1:-1:-1;;;;;2658:253:0;;;;;2843:13;2658:253;;;;2870:13;2658:253;;;;2897:4;2658:253;;;2642:9;:13;2652:2;2642:13;;;;;;;;;;;:269;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2642:269:0;;;;;-1:-1:-1;;;;;2642:269:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2642:269:0;;;;;-1:-1:-1;;;;;2642:269:0;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;2642:269:0;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3013:8;-1:-1:-1;;;;;2927:140:0;3005:6;-1:-1:-1;;;;;2927:140:0;2991:2;2927:140;2952:11;2965:12;2979:10;2995:8;3023:13;3038;3053:4;2927:140;;;;;;;;;;;;:::i;:::-;;;;;;;;2186:888;;;1905:1169;;;;;;;:::o;4648:329::-;4706:14;4767:13;;;;;;;;;;;4732:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4732:48:0;;;;;;;;;;;;;;;;;;;;;4706:14;;4732:48;4767:13;4732:48;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;4732:48:0;;;-1:-1:-1;;4732:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4795:19;;;;4732:48;;-1:-1:-1;4732:48:0;4795:29;:74;;;;;4854:15;4828:12;:23;;;:41;4795:74;4791:180;;;621:1;4885:16;;4791:180;;;4941:19;;;;4648:329;-1:-1:-1;;4648:329:0:o;3612:364::-;3737:14;3785:1;3775:7;:11;3767:43;;;;-1:-1:-1;;;3767:43:0;;11984:2:1;3767:43:0;;;11966:21:1;12023:2;12003:18;;;11996:30;-1:-1:-1;;;12042:18:1;;;12035:49;12101:18;;3767:43:0;11782:343:1;3767:43:0;3835:1;3828:4;:8;3820:37;;;;-1:-1:-1;;;3820:37:0;;12332:2:1;3820:37:0;;;12314:21:1;12371:2;12351:18;;;12344:30;-1:-1:-1;;;12390:18:1;;;12383:46;12446:18;;3820:37:0;12130:340:1;3820:37:0;3886:1;3875:8;:12;3867:47;;;;-1:-1:-1;;;3867:47:0;;12677:2:1;3867:47:0;;;12659:21:1;12716:2;12696:18;;;12689:30;-1:-1:-1;;;12735:18:1;;;12728:52;12797:18;;3867:47:0;12475:346:1;3867:47:0;3961:7;3941:16;3949:8;3941:4;:16;:::i;:::-;3940:28;;;;:::i;:::-;3932:37;3612:364;-1:-1:-1;;;;3612:364:0:o;14:127:1:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:275;217:2;211:9;282:2;263:13;;-1:-1:-1;;259:27:1;247:40;;317:18;302:34;;338:22;;;299:62;296:88;;;364:18;;:::i;:::-;400:2;393:22;146:275;;-1:-1:-1;146:275:1:o;426:946::-;510:6;541:2;584;572:9;563:7;559:23;555:32;552:52;;;600:1;597;590:12;552:52;640:9;627:23;669:18;710:2;702:6;699:14;696:34;;;726:1;723;716:12;696:34;764:6;753:9;749:22;739:32;;809:7;802:4;798:2;794:13;790:27;780:55;;831:1;828;821:12;780:55;867:2;854:16;889:2;885;882:10;879:36;;;895:18;;:::i;:::-;941:2;938:1;934:10;924:20;;964:28;988:2;984;980:11;964:28;:::i;:::-;1026:15;;;1096:11;;;1092:20;;;1057:12;;;;1124:19;;;1121:39;;;1156:1;1153;1146:12;1121:39;1180:11;;;;1200:142;1216:6;1211:3;1208:15;1200:142;;;1282:17;;1270:30;;1233:12;;;;1320;;;;1200:142;;;1361:5;426:946;-1:-1:-1;;;;;;;;426:946:1:o;1377:632::-;1548:2;1600:21;;;1670:13;;1573:18;;;1692:22;;;1519:4;;1548:2;1771:15;;;;1745:2;1730:18;;;1519:4;1814:169;1828:6;1825:1;1822:13;1814:169;;;1889:13;;1877:26;;1958:15;;;;1923:12;;;;1850:1;1843:9;1814:169;;;-1:-1:-1;2000:3:1;;1377:632;-1:-1:-1;;;;;;1377:632:1:o;2014:248::-;2082:6;2090;2143:2;2131:9;2122:7;2118:23;2114:32;2111:52;;;2159:1;2156;2149:12;2111:52;-1:-1:-1;;2182:23:1;;;2252:2;2237:18;;;2224:32;;-1:-1:-1;2014:248:1:o;2267:180::-;2326:6;2379:2;2367:9;2358:7;2354:23;2350:32;2347:52;;;2395:1;2392;2385:12;2347:52;-1:-1:-1;2418:23:1;;2267:180;-1:-1:-1;2267:180:1:o;2644:531::-;2687:5;2740:3;2733:4;2725:6;2721:17;2717:27;2707:55;;2758:1;2755;2748:12;2707:55;2794:6;2781:20;2820:18;2816:2;2813:26;2810:52;;;2842:18;;:::i;:::-;2886:55;2929:2;2910:13;;-1:-1:-1;;2906:27:1;2935:4;2902:38;2886:55;:::i;:::-;2966:2;2957:7;2950:19;3012:3;3005:4;3000:2;2992:6;2988:15;2984:26;2981:35;2978:55;;;3029:1;3026;3019:12;2978:55;3094:2;3087:4;3079:6;3075:17;3068:4;3059:7;3055:18;3042:55;3142:1;3117:16;;;3135:4;3113:27;3106:38;;;;3121:7;2644:531;-1:-1:-1;;;2644:531:1:o;3180:1393::-;3353:6;3361;3369;3377;3385;3393;3401;3445:9;3436:7;3432:23;3475:3;3471:2;3467:12;3464:32;;;3492:1;3489;3482:12;3464:32;3515:23;;;-1:-1:-1;3585:2:1;3570:18;;3557:32;;-1:-1:-1;3636:2:1;3621:18;;3608:32;;-1:-1:-1;3690:2:1;3675:18;;3662:32;-1:-1:-1;;;;;3723:31:1;;3713:42;;3703:70;;3769:1;3766;3759:12;3703:70;3792:5;-1:-1:-1;3848:3:1;3833:19;;3820:33;3872:18;3902:14;;;3899:34;;;3929:1;3926;3919:12;3899:34;3952:50;3994:7;3985:6;3974:9;3970:22;3952:50;:::i;:::-;3942:60;;4055:3;4044:9;4040:19;4027:33;4011:49;;4085:2;4075:8;4072:16;4069:36;;;4101:1;4098;4091:12;4069:36;4124:52;4168:7;4157:8;4146:9;4142:24;4124:52;:::i;:::-;4114:62;-1:-1:-1;4211:2:1;-1:-1:-1;;4192:17:1;;4188:26;4185:46;;;4227:1;4224;4217:12;4185:46;4260:2;4254:9;4240:23;;4302:2;4294:6;4290:15;4272:33;;4355:6;4343:10;4340:22;4335:2;4323:10;4320:18;4317:46;4314:72;;;4366:18;;:::i;:::-;-1:-1:-1;4402:2:1;4395:22;4469:3;4454:19;;4441:33;4426:49;;4536:3;4521:19;;;4508:33;4503:2;4491:15;;4484:58;-1:-1:-1;3180:1393:1;;;;-1:-1:-1;3180:1393:1;;;;;;:::o;4760:127::-;4821:10;4816:3;4812:20;4809:1;4802:31;4852:4;4849:1;4842:15;4876:4;4873:1;4866:15;4892:127;4953:10;4948:3;4944:20;4941:1;4934:31;4984:4;4981:1;4974:15;5008:4;5005:1;4998:15;5024:135;5063:3;5084:17;;;5081:43;;5104:18;;:::i;:::-;-1:-1:-1;5151:1:1;5140:13;;5024:135::o;5508:336::-;5710:2;5692:21;;;5749:2;5729:18;;;5722:30;-1:-1:-1;;;5783:2:1;5768:18;;5761:42;5835:2;5820:18;;5508:336::o;6445:380::-;6524:1;6520:12;;;;6567;;;6588:61;;6642:4;6634:6;6630:17;6620:27;;6588:61;6695:2;6687:6;6684:14;6664:18;6661:38;6658:161;;6741:10;6736:3;6732:20;6729:1;6722:31;6776:4;6773:1;6766:15;6804:4;6801:1;6794:15;8377:545;8479:2;8474:3;8471:11;8468:448;;;8515:1;8540:5;8536:2;8529:17;8585:4;8581:2;8571:19;8655:2;8643:10;8639:19;8636:1;8632:27;8626:4;8622:38;8691:4;8679:10;8676:20;8673:47;;;-1:-1:-1;8714:4:1;8673:47;8769:2;8764:3;8760:12;8757:1;8753:20;8747:4;8743:31;8733:41;;8824:82;8842:2;8835:5;8832:13;8824:82;;;8887:17;;;8868:1;8857:13;8824:82;;;8828:3;;;8468:448;8377:545;;;:::o;9098:1352::-;9224:3;9218:10;9251:18;9243:6;9240:30;9237:56;;;9273:18;;:::i;:::-;9302:97;9392:6;9352:38;9384:4;9378:11;9352:38;:::i;:::-;9346:4;9302:97;:::i;:::-;9454:4;;9518:2;9507:14;;9535:1;9530:663;;;;10237:1;10254:6;10251:89;;;-1:-1:-1;10306:19:1;;;10300:26;10251:89;-1:-1:-1;;9055:1:1;9051:11;;;9047:24;9043:29;9033:40;9079:1;9075:11;;;9030:57;10353:81;;9500:944;;9530:663;8324:1;8317:14;;;8361:4;8348:18;;-1:-1:-1;;9566:20:1;;;9684:236;9698:7;9695:1;9692:14;9684:236;;;9787:19;;;9781:26;9766:42;;9879:27;;;;9847:1;9835:14;;;;9714:19;;9684:236;;;9688:3;9948:6;9939:7;9936:19;9933:201;;;10009:19;;;10003:26;-1:-1:-1;;10092:1:1;10088:14;;;10104:3;10084:24;10080:37;10076:42;10061:58;10046:74;;9933:201;-1:-1:-1;;;;;10180:1:1;10164:14;;;10160:22;10147:36;;-1:-1:-1;9098:1352:1:o;10455:423::-;10497:3;10535:5;10529:12;10562:6;10557:3;10550:19;10587:1;10597:162;10611:6;10608:1;10605:13;10597:162;;;10673:4;10729:13;;;10725:22;;10719:29;10701:11;;;10697:20;;10690:59;10626:12;10597:162;;;10601:3;10804:1;10797:4;10788:6;10783:3;10779:16;10775:27;10768:38;10867:4;10860:2;10856:7;10851:2;10843:6;10839:15;10835:29;10830:3;10826:39;10822:50;10815:57;;;10455:423;;;;:::o;10883:894::-;11247:4;11276:3;11306:6;11295:9;11288:25;11349:6;11344:2;11333:9;11329:18;11322:34;11392:6;11387:2;11376:9;11372:18;11365:34;11435:6;11430:2;11419:9;11415:18;11408:34;11479:2;11473:3;11462:9;11458:19;11451:31;11505:45;11546:2;11535:9;11531:18;11523:6;11505:45;:::i;:::-;11491:59;;11599:9;11591:6;11587:22;11581:3;11570:9;11566:19;11559:51;11627:33;11653:6;11645;11627:33;:::i;:::-;11619:41;;;11703:6;11697:13;11691:3;11680:9;11676:19;11669:42;11766:2;11758:6;11754:15;11748:22;11742:3;11731:9;11727:19;11720:51;10883:894;;;;;;;;;;:::o;12826:422::-;12915:1;12958:5;12915:1;12972:270;12993:7;12983:8;12980:21;12972:270;;;13052:4;13048:1;13044:6;13040:17;13034:4;13031:27;13028:53;;;13061:18;;:::i;:::-;13111:7;13101:8;13097:22;13094:55;;;13131:16;;;;13094:55;13210:22;;;;13170:15;;;;12972:270;;;12976:3;12826:422;;;;;:::o;13253:806::-;13302:5;13332:8;13322:80;;-1:-1:-1;13373:1:1;13387:5;;13322:80;13421:4;13411:76;;-1:-1:-1;13458:1:1;13472:5;;13411:76;13503:4;13521:1;13516:59;;;;13589:1;13584:130;;;;13496:218;;13516:59;13546:1;13537:10;;13560:5;;;13584:130;13621:3;13611:8;13608:17;13605:43;;;13628:18;;:::i;:::-;-1:-1:-1;;13684:1:1;13670:16;;13699:5;;13496:218;;13798:2;13788:8;13785:16;13779:3;13773:4;13770:13;13766:36;13760:2;13750:8;13747:16;13742:2;13736:4;13733:12;13729:35;13726:77;13723:159;;;-1:-1:-1;13835:19:1;;;13867:5;;13723:159;13914:34;13939:8;13933:4;13914:34;:::i;:::-;13984:6;13980:1;13976:6;13972:19;13963:7;13960:32;13957:58;;;13995:18;;:::i;:::-;14033:20;;-1:-1:-1;13253:806:1;;;;;:::o;14064:131::-;14124:5;14153:36;14180:8;14174:4;14153:36;:::i;:::-;14144:45;14064:131;-1:-1:-1;;;14064:131:1:o;14200:209::-;14232:1;14258;14248:132;;14302:10;14297:3;14293:20;14290:1;14283:31;14337:4;14334:1;14327:15;14365:4;14362:1;14355:15;14248:132;-1:-1:-1;14394:9:1;;14200:209::o", + "sourcePath": "/home/peter/a/cacti-1/packages/cactus-plugin-htlc-eth-besu/src/main/solidity/contracts/PrivateHashTimeLock.sol", + "compiler": { + "name": "solc", + "version": "0.8.19+commit.7dd6d404" + }, + "ast": { + "absolutePath": "/home/peter/a/cacti-1/packages/cactus-plugin-htlc-eth-besu/src/main/solidity/contracts/PrivateHashTimeLock.sol", + "exportedSymbols": { + "PrivateHashTimeLock": [ + 504 + ] + }, + "id": 505, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "0.8", + ".19" + ], + "nodeType": "PragmaDirective", + "src": "32:23:0" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "PrivateHashTimeLock", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 504, + "linearizedBaseContracts": [ + 504 + ], + "name": "PrivateHashTimeLock", + "nameLocation": "66:19:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 6, + "mutability": "mutable", + "name": "contracts", + "nameLocation": "133:9:0", + "nodeType": "VariableDeclaration", + "scope": 504, + "src": "92:50:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_LockContract_$59_storage_$", + "typeString": "mapping(bytes32 => struct PrivateHashTimeLock.LockContract)" + }, + "typeName": { + "id": 5, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 2, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "100:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "92:32:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_LockContract_$59_storage_$", + "typeString": "mapping(bytes32 => struct PrivateHashTimeLock.LockContract)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 4, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3, + "name": "LockContract", + "nameLocations": [ + "111:12:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 59, + "src": "111:12:0" + }, + "referencedDeclaration": 59, + "src": "111:12:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_storage_ptr", + "typeString": "struct PrivateHashTimeLock.LockContract" + } + } + }, + "visibility": "private" + }, + { + "constant": true, + "id": 9, + "mutability": "constant", + "name": "INIT", + "nameLocation": "288:4:0", + "nodeType": "VariableDeclaration", + "scope": 504, + "src": "263:33:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "263:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "30", + "id": 8, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "295:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 12, + "mutability": "constant", + "name": "ACTIVE", + "nameLocation": "361:6:0", + "nodeType": "VariableDeclaration", + "scope": 504, + "src": "336:35:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "336:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "31", + "id": 11, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "370:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 15, + "mutability": "constant", + "name": "REFUNDED", + "nameLocation": "451:8:0", + "nodeType": "VariableDeclaration", + "scope": 504, + "src": "426:37:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "426:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "32", + "id": 14, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "462:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 18, + "mutability": "constant", + "name": "WITHDRAWN", + "nameLocation": "530:9:0", + "nodeType": "VariableDeclaration", + "scope": 504, + "src": "505:38:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "505:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "33", + "id": 17, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "542:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 21, + "mutability": "constant", + "name": "EXPIRED", + "nameLocation": "611:7:0", + "nodeType": "VariableDeclaration", + "scope": 504, + "src": "586:36:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 19, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "586:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "34", + "id": 20, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "621:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "visibility": "private" + }, + { + "canonicalName": "PrivateHashTimeLock.PrivateEnhancing", + "id": 26, + "members": [ + { + "constant": false, + "id": 23, + "mutability": "mutable", + "name": "generator", + "nameLocation": "739:9:0", + "nodeType": "VariableDeclaration", + "scope": 26, + "src": "731:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 22, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "731:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 25, + "mutability": "mutable", + "name": "modulus", + "nameLocation": "793:7:0", + "nodeType": "VariableDeclaration", + "scope": 26, + "src": "785:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 24, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "785:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "PrivateEnhancing", + "nameLocation": "677:16:0", + "nodeType": "StructDefinition", + "scope": 504, + "src": "670:137:0", + "visibility": "public" + }, + { + "canonicalName": "PrivateHashTimeLock.SwapDetails", + "id": 37, + "members": [ + { + "constant": false, + "id": 28, + "mutability": "mutable", + "name": "sender", + "nameLocation": "858:6:0", + "nodeType": "VariableDeclaration", + "scope": 37, + "src": "842:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 27, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "842:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 30, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "890:8:0", + "nodeType": "VariableDeclaration", + "scope": 37, + "src": "874:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 29, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "874:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 32, + "mutability": "mutable", + "name": "inputAmount", + "nameLocation": "916:11:0", + "nodeType": "VariableDeclaration", + "scope": 37, + "src": "908:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 31, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "908:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 34, + "mutability": "mutable", + "name": "hashSecret", + "nameLocation": "945:10:0", + "nodeType": "VariableDeclaration", + "scope": 37, + "src": "937:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 33, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "937:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 36, + "mutability": "mutable", + "name": "expiration", + "nameLocation": "973:10:0", + "nodeType": "VariableDeclaration", + "scope": 37, + "src": "965:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 35, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "965:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "SwapDetails", + "nameLocation": "820:11:0", + "nodeType": "StructDefinition", + "scope": 504, + "src": "813:177:0", + "visibility": "public" + }, + { + "canonicalName": "PrivateHashTimeLock.LockContract", + "id": 59, + "members": [ + { + "constant": false, + "id": 39, + "mutability": "mutable", + "name": "inputAmount", + "nameLocation": "1034:11:0", + "nodeType": "VariableDeclaration", + "scope": 59, + "src": "1026:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 38, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1026:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 41, + "mutability": "mutable", + "name": "outputAmount", + "nameLocation": "1063:12:0", + "nodeType": "VariableDeclaration", + "scope": 59, + "src": "1055:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 40, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1055:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 43, + "mutability": "mutable", + "name": "expiration", + "nameLocation": "1093:10:0", + "nodeType": "VariableDeclaration", + "scope": 59, + "src": "1085:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 42, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1085:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 45, + "mutability": "mutable", + "name": "status", + "nameLocation": "1121:6:0", + "nodeType": "VariableDeclaration", + "scope": 59, + "src": "1113:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 44, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1113:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 47, + "mutability": "mutable", + "name": "hashSecret", + "nameLocation": "1145:10:0", + "nodeType": "VariableDeclaration", + "scope": 59, + "src": "1137:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 46, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1137:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 49, + "mutability": "mutable", + "name": "sender", + "nameLocation": "1181:6:0", + "nodeType": "VariableDeclaration", + "scope": 59, + "src": "1165:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 48, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1165:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 51, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "1213:8:0", + "nodeType": "VariableDeclaration", + "scope": 59, + "src": "1197:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 50, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1197:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 53, + "mutability": "mutable", + "name": "outputNetwork", + "nameLocation": "1238:13:0", + "nodeType": "VariableDeclaration", + "scope": 59, + "src": "1231:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 52, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1231:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 55, + "mutability": "mutable", + "name": "outputAddress", + "nameLocation": "1268:13:0", + "nodeType": "VariableDeclaration", + "scope": 59, + "src": "1261:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 54, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1261:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 58, + "mutability": "mutable", + "name": "priv", + "nameLocation": "1308:4:0", + "nodeType": "VariableDeclaration", + "scope": 59, + "src": "1291:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PrivateEnhancing_$26_storage_ptr", + "typeString": "struct PrivateHashTimeLock.PrivateEnhancing" + }, + "typeName": { + "id": 57, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 56, + "name": "PrivateEnhancing", + "nameLocations": [ + "1291:16:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 26, + "src": "1291:16:0" + }, + "referencedDeclaration": 26, + "src": "1291:16:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PrivateEnhancing_$26_storage_ptr", + "typeString": "struct PrivateHashTimeLock.PrivateEnhancing" + } + }, + "visibility": "internal" + } + ], + "name": "LockContract", + "nameLocation": "1003:12:0", + "nodeType": "StructDefinition", + "scope": 504, + "src": "996:323:0", + "visibility": "public" + }, + { + "anonymous": false, + "eventSelector": "2d3a5ed13d0553389b4078e01264416362e34d23520fda797fbc17f3905ed131", + "id": 71, + "name": "Withdraw", + "nameLocation": "1331:8:0", + "nodeType": "EventDefinition", + "parameters": { + "id": 70, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 61, + "indexed": true, + "mutability": "mutable", + "name": "id", + "nameLocation": "1365:2:0", + "nodeType": "VariableDeclaration", + "scope": 71, + "src": "1349:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 60, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1349:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 63, + "indexed": false, + "mutability": "mutable", + "name": "secret", + "nameLocation": "1377:6:0", + "nodeType": "VariableDeclaration", + "scope": 71, + "src": "1369:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 62, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1369:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 65, + "indexed": false, + "mutability": "mutable", + "name": "hashSecret", + "nameLocation": "1393:10:0", + "nodeType": "VariableDeclaration", + "scope": 71, + "src": "1385:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 64, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1385:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 67, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nameLocation": "1421:6:0", + "nodeType": "VariableDeclaration", + "scope": 71, + "src": "1405:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 66, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1405:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 69, + "indexed": true, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "1445:8:0", + "nodeType": "VariableDeclaration", + "scope": 71, + "src": "1429:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 68, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1429:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1339:120:0" + }, + "src": "1325:135:0" + }, + { + "anonymous": false, + "eventSelector": "6fa50d56c31f3efe0cb6ff06232bffce8fe8c4155e3cbb6f2d79dd12631c2522", + "id": 81, + "name": "Refund", + "nameLocation": "1472:6:0", + "nodeType": "EventDefinition", + "parameters": { + "id": 80, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 73, + "indexed": true, + "mutability": "mutable", + "name": "id", + "nameLocation": "1495:2:0", + "nodeType": "VariableDeclaration", + "scope": 81, + "src": "1479:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 72, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1479:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 75, + "indexed": false, + "mutability": "mutable", + "name": "hashSecret", + "nameLocation": "1507:10:0", + "nodeType": "VariableDeclaration", + "scope": 81, + "src": "1499:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 74, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1499:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 77, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nameLocation": "1535:6:0", + "nodeType": "VariableDeclaration", + "scope": 81, + "src": "1519:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 76, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1519:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 79, + "indexed": true, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "1559:8:0", + "nodeType": "VariableDeclaration", + "scope": 81, + "src": "1543:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 78, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1543:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1478:90:0" + }, + "src": "1466:103:0" + }, + { + "anonymous": false, + "eventSelector": "1d31774ea86d945735b69a4af1ba1a0a71287ba386bc3fe658ae84927d2995c7", + "id": 104, + "name": "NewContract", + "nameLocation": "1581:11:0", + "nodeType": "EventDefinition", + "parameters": { + "id": 103, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 83, + "indexed": false, + "mutability": "mutable", + "name": "inputAmount", + "nameLocation": "1610:11:0", + "nodeType": "VariableDeclaration", + "scope": 104, + "src": "1602:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 82, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1602:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 85, + "indexed": false, + "mutability": "mutable", + "name": "outputAmount", + "nameLocation": "1639:12:0", + "nodeType": "VariableDeclaration", + "scope": 104, + "src": "1631:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 84, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1631:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 87, + "indexed": false, + "mutability": "mutable", + "name": "expiration", + "nameLocation": "1669:10:0", + "nodeType": "VariableDeclaration", + "scope": 104, + "src": "1661:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 86, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1661:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 89, + "indexed": true, + "mutability": "mutable", + "name": "id", + "nameLocation": "1705:2:0", + "nodeType": "VariableDeclaration", + "scope": 104, + "src": "1689:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 88, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1689:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 91, + "indexed": false, + "mutability": "mutable", + "name": "hashSecret", + "nameLocation": "1725:10:0", + "nodeType": "VariableDeclaration", + "scope": 104, + "src": "1717:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 90, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1717:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 93, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nameLocation": "1761:6:0", + "nodeType": "VariableDeclaration", + "scope": 104, + "src": "1745:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 92, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1745:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 95, + "indexed": true, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "1793:8:0", + "nodeType": "VariableDeclaration", + "scope": 104, + "src": "1777:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 94, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1777:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 97, + "indexed": false, + "mutability": "mutable", + "name": "outputNetwork", + "nameLocation": "1818:13:0", + "nodeType": "VariableDeclaration", + "scope": 104, + "src": "1811:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 96, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1811:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 99, + "indexed": false, + "mutability": "mutable", + "name": "outputAddress", + "nameLocation": "1848:13:0", + "nodeType": "VariableDeclaration", + "scope": 104, + "src": "1841:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 98, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1841:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 102, + "indexed": false, + "mutability": "mutable", + "name": "priv", + "nameLocation": "1888:4:0", + "nodeType": "VariableDeclaration", + "scope": 104, + "src": "1871:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PrivateEnhancing_$26_memory_ptr", + "typeString": "struct PrivateHashTimeLock.PrivateEnhancing" + }, + "typeName": { + "id": 101, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 100, + "name": "PrivateEnhancing", + "nameLocations": [ + "1871:16:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 26, + "src": "1871:16:0" + }, + "referencedDeclaration": 26, + "src": "1871:16:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PrivateEnhancing_$26_storage_ptr", + "typeString": "struct PrivateHashTimeLock.PrivateEnhancing" + } + }, + "visibility": "internal" + } + ], + "src": "1592:306:0" + }, + "src": "1575:324:0" + }, + { + "body": { + "id": 217, + "nodeType": "Block", + "src": "2186:888:0", + "statements": [ + { + "assignments": [ + 123 + ], + "declarations": [ + { + "constant": false, + "id": 123, + "mutability": "mutable", + "name": "sender", + "nameLocation": "2212:6:0", + "nodeType": "VariableDeclaration", + "scope": 217, + "src": "2196:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 122, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2196:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + } + ], + "id": 129, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 126, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "2229:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 127, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2233:6:0", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2229:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 125, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2221:8:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_payable_$", + "typeString": "type(address payable)" + }, + "typeName": { + "id": 124, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2221:8:0", + "stateMutability": "payable", + "typeDescriptions": {} + } + }, + "id": 128, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2221:19:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2196:44:0" + }, + { + "assignments": [ + 131 + ], + "declarations": [ + { + "constant": false, + "id": 131, + "mutability": "mutable", + "name": "inputAmount", + "nameLocation": "2258:11:0", + "nodeType": "VariableDeclaration", + "scope": 217, + "src": "2250:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 130, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2250:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 134, + "initialValue": { + "expression": { + "id": 132, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "2272:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 133, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2276:5:0", + "memberName": "value", + "nodeType": "MemberAccess", + "src": "2272:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2250:31:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 139, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 136, + "name": "expiration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 108, + "src": "2300:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "id": 137, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967292, + "src": "2313:5:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 138, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2319:9:0", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "2313:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2300:28:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "494e56414c49445f54494d45", + "id": 140, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2330:14:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b98f3e47db5919a8c78ec10ff6bf7d1326066d3facdc164cf7441d38cae771df", + "typeString": "literal_string \"INVALID_TIME\"" + }, + "value": "INVALID_TIME" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b98f3e47db5919a8c78ec10ff6bf7d1326066d3facdc164cf7441d38cae771df", + "typeString": "literal_string \"INVALID_TIME\"" + } + ], + "id": 135, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "2292:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 141, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2292:53:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 142, + "nodeType": "ExpressionStatement", + "src": "2292:53:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 146, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 144, + "name": "inputAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 131, + "src": "2364:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 145, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2378:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2364:15:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "494e56414c49445f414d4f554e54", + "id": 147, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2381:16:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_eb6dbbf3194e9f4dd39c8dabe51ddb59ca6ad00c50b1bc74675ce4b263687722", + "typeString": "literal_string \"INVALID_AMOUNT\"" + }, + "value": "INVALID_AMOUNT" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_eb6dbbf3194e9f4dd39c8dabe51ddb59ca6ad00c50b1bc74675ce4b263687722", + "typeString": "literal_string \"INVALID_AMOUNT\"" + } + ], + "id": 143, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "2356:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 148, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2356:42:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 149, + "nodeType": "ExpressionStatement", + "src": "2356:42:0" + }, + { + "assignments": [ + 151 + ], + "declarations": [ + { + "constant": false, + "id": 151, + "mutability": "mutable", + "name": "id", + "nameLocation": "2417:2:0", + "nodeType": "VariableDeclaration", + "scope": 217, + "src": "2409:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 150, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2409:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 162, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 155, + "name": "sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 123, + "src": "2443:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 156, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 112, + "src": "2451:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 157, + "name": "inputAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 131, + "src": "2461:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 158, + "name": "hashLock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 110, + "src": "2474:8:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 159, + "name": "expiration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 108, + "src": "2484:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 153, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "2432:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 154, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "2436:6:0", + "memberName": "encode", + "nodeType": "MemberAccess", + "src": "2432:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 160, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2432:63:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 152, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967288, + "src": "2422:9:0", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 161, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2422:74:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2409:87:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "id": 164, + "name": "contracts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6, + "src": "2515:9:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_LockContract_$59_storage_$", + "typeString": "mapping(bytes32 => struct PrivateHashTimeLock.LockContract storage ref)" + } + }, + "id": 166, + "indexExpression": { + "id": 165, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 151, + "src": "2525:2:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2515:13:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_storage", + "typeString": "struct PrivateHashTimeLock.LockContract storage ref" + } + }, + "id": 167, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2529:6:0", + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 45, + "src": "2515:20:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 168, + "name": "INIT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9, + "src": "2539:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2515:28:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "535741505f455849535453", + "id": 170, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2545:13:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_10858945dd31484ce6a77564821a1a6ff0e82939d9bea2b8e6caae50c7fc3750", + "typeString": "literal_string \"SWAP_EXISTS\"" + }, + "value": "SWAP_EXISTS" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_10858945dd31484ce6a77564821a1a6ff0e82939d9bea2b8e6caae50c7fc3750", + "typeString": "literal_string \"SWAP_EXISTS\"" + } + ], + "id": 163, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "2507:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 171, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2507:52:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 172, + "nodeType": "ExpressionStatement", + "src": "2507:52:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 174, + "name": "priv", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 119, + "src": "2577:4:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PrivateEnhancing_$26_memory_ptr", + "typeString": "struct PrivateHashTimeLock.PrivateEnhancing memory" + } + }, + "id": 175, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2582:9:0", + "memberName": "generator", + "nodeType": "MemberAccess", + "referencedDeclaration": 23, + "src": "2577:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 176, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2594:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2577:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 173, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "2569:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 178, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2569:27:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 179, + "nodeType": "ExpressionStatement", + "src": "2569:27:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 184, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 181, + "name": "priv", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 119, + "src": "2614:4:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PrivateEnhancing_$26_memory_ptr", + "typeString": "struct PrivateHashTimeLock.PrivateEnhancing memory" + } + }, + "id": 182, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2619:7:0", + "memberName": "modulus", + "nodeType": "MemberAccess", + "referencedDeclaration": 25, + "src": "2614:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 183, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2629:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2614:16:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 180, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "2606:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2606:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 186, + "nodeType": "ExpressionStatement", + "src": "2606:25:0" + }, + { + "expression": { + "id": 202, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 187, + "name": "contracts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6, + "src": "2642:9:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_LockContract_$59_storage_$", + "typeString": "mapping(bytes32 => struct PrivateHashTimeLock.LockContract storage ref)" + } + }, + "id": 189, + "indexExpression": { + "id": 188, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 151, + "src": "2652:2:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2642:13:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_storage", + "typeString": "struct PrivateHashTimeLock.LockContract storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 191, + "name": "inputAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 131, + "src": "2684:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 192, + "name": "outputAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 106, + "src": "2709:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 193, + "name": "expiration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 108, + "src": "2735:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 194, + "name": "ACTIVE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12, + "src": "2759:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 195, + "name": "hashLock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 110, + "src": "2779:8:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 196, + "name": "sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 123, + "src": "2801:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 197, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 112, + "src": "2821:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 198, + "name": "outputNetwork", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 114, + "src": "2843:13:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 199, + "name": "outputAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 116, + "src": "2870:13:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 200, + "name": "priv", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 119, + "src": "2897:4:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PrivateEnhancing_$26_memory_ptr", + "typeString": "struct PrivateHashTimeLock.PrivateEnhancing memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_struct$_PrivateEnhancing_$26_memory_ptr", + "typeString": "struct PrivateHashTimeLock.PrivateEnhancing memory" + } + ], + "id": 190, + "name": "LockContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 59, + "src": "2658:12:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_LockContract_$59_storage_ptr_$", + "typeString": "type(struct PrivateHashTimeLock.LockContract storage pointer)" + } + }, + "id": 201, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2658:253:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_memory_ptr", + "typeString": "struct PrivateHashTimeLock.LockContract memory" + } + }, + "src": "2642:269:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_storage", + "typeString": "struct PrivateHashTimeLock.LockContract storage ref" + } + }, + "id": 203, + "nodeType": "ExpressionStatement", + "src": "2642:269:0" + }, + { + "eventCall": { + "arguments": [ + { + "id": 205, + "name": "inputAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 131, + "src": "2952:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 206, + "name": "outputAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 106, + "src": "2965:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 207, + "name": "expiration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 108, + "src": "2979:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 208, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 151, + "src": "2991:2:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 209, + "name": "hashLock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 110, + "src": "2995:8:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 210, + "name": "sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 123, + "src": "3005:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 211, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 112, + "src": "3013:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 212, + "name": "outputNetwork", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 114, + "src": "3023:13:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 213, + "name": "outputAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 116, + "src": "3038:13:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 214, + "name": "priv", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 119, + "src": "3053:4:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PrivateEnhancing_$26_memory_ptr", + "typeString": "struct PrivateHashTimeLock.PrivateEnhancing memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_struct$_PrivateEnhancing_$26_memory_ptr", + "typeString": "struct PrivateHashTimeLock.PrivateEnhancing memory" + } + ], + "id": 204, + "name": "NewContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 104, + "src": "2927:11:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_bytes32_$_t_bytes32_$_t_address_$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_struct$_PrivateEnhancing_$26_memory_ptr_$returns$__$", + "typeString": "function (uint256,uint256,uint256,bytes32,bytes32,address,address,string memory,string memory,struct PrivateHashTimeLock.PrivateEnhancing memory)" + } + }, + "id": 215, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2927:140:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 216, + "nodeType": "EmitStatement", + "src": "2922:145:0" + } + ] + }, + "functionSelector": "9b0bcdcb", + "id": 218, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "newPrivateContract", + "nameLocation": "1914:18:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 120, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 106, + "mutability": "mutable", + "name": "outputAmount", + "nameLocation": "1950:12:0", + "nodeType": "VariableDeclaration", + "scope": 218, + "src": "1942:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 105, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1942:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 108, + "mutability": "mutable", + "name": "expiration", + "nameLocation": "1980:10:0", + "nodeType": "VariableDeclaration", + "scope": 218, + "src": "1972:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 107, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1972:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 110, + "mutability": "mutable", + "name": "hashLock", + "nameLocation": "2008:8:0", + "nodeType": "VariableDeclaration", + "scope": 218, + "src": "2000:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 109, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2000:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 112, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "2042:8:0", + "nodeType": "VariableDeclaration", + "scope": 218, + "src": "2026:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 111, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2026:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 114, + "mutability": "mutable", + "name": "outputNetwork", + "nameLocation": "2074:13:0", + "nodeType": "VariableDeclaration", + "scope": 218, + "src": "2060:27:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 113, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2060:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 116, + "mutability": "mutable", + "name": "outputAddress", + "nameLocation": "2111:13:0", + "nodeType": "VariableDeclaration", + "scope": 218, + "src": "2097:27:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 115, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2097:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 119, + "mutability": "mutable", + "name": "priv", + "nameLocation": "2158:4:0", + "nodeType": "VariableDeclaration", + "scope": 218, + "src": "2134:28:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PrivateEnhancing_$26_memory_ptr", + "typeString": "struct PrivateHashTimeLock.PrivateEnhancing" + }, + "typeName": { + "id": 118, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 117, + "name": "PrivateEnhancing", + "nameLocations": [ + "2134:16:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 26, + "src": "2134:16:0" + }, + "referencedDeclaration": 26, + "src": "2134:16:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PrivateEnhancing_$26_storage_ptr", + "typeString": "struct PrivateHashTimeLock.PrivateEnhancing" + } + }, + "visibility": "internal" + } + ], + "src": "1932:236:0" + }, + "returnParameters": { + "id": 121, + "nodeType": "ParameterList", + "parameters": [], + "src": "2186:0:0" + }, + "scope": 504, + "src": "1905:1169:0", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 294, + "nodeType": "Block", + "src": "3135:471:0", + "statements": [ + { + "assignments": [ + 227 + ], + "declarations": [ + { + "constant": false, + "id": 227, + "mutability": "mutable", + "name": "c", + "nameLocation": "3166:1:0", + "nodeType": "VariableDeclaration", + "scope": 294, + "src": "3145:22:0", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_storage_ptr", + "typeString": "struct PrivateHashTimeLock.LockContract" + }, + "typeName": { + "id": 226, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 225, + "name": "LockContract", + "nameLocations": [ + "3145:12:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 59, + "src": "3145:12:0" + }, + "referencedDeclaration": 59, + "src": "3145:12:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_storage_ptr", + "typeString": "struct PrivateHashTimeLock.LockContract" + } + }, + "visibility": "internal" + } + ], + "id": 231, + "initialValue": { + "baseExpression": { + "id": 228, + "name": "contracts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6, + "src": "3170:9:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_LockContract_$59_storage_$", + "typeString": "mapping(bytes32 => struct PrivateHashTimeLock.LockContract storage ref)" + } + }, + "id": 230, + "indexExpression": { + "id": 229, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 220, + "src": "3180:2:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3170:13:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_storage", + "typeString": "struct PrivateHashTimeLock.LockContract storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3145:38:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 236, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 233, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 227, + "src": "3201:1:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_storage_ptr", + "typeString": "struct PrivateHashTimeLock.LockContract storage pointer" + } + }, + "id": 234, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3203:6:0", + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 45, + "src": "3201:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 235, + "name": "ACTIVE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12, + "src": "3213:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3201:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "535741505f4e4f545f414354495645", + "id": 237, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3221:17:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_afbfa7d3db262df0c92c413f0113503b1c1332dc5a4a874fcd8d6a6de57b74dd", + "typeString": "literal_string \"SWAP_NOT_ACTIVE\"" + }, + "value": "SWAP_NOT_ACTIVE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_afbfa7d3db262df0c92c413f0113503b1c1332dc5a4a874fcd8d6a6de57b74dd", + "typeString": "literal_string \"SWAP_NOT_ACTIVE\"" + } + ], + "id": 232, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "3193:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3193:46:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 239, + "nodeType": "ExpressionStatement", + "src": "3193:46:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 245, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 241, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 227, + "src": "3258:1:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_storage_ptr", + "typeString": "struct PrivateHashTimeLock.LockContract storage pointer" + } + }, + "id": 242, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3260:10:0", + "memberName": "expiration", + "nodeType": "MemberAccess", + "referencedDeclaration": 43, + "src": "3258:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "id": 243, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967292, + "src": "3273:5:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 244, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3279:9:0", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "3273:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3258:30:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "494e56414c49445f54494d45", + "id": 246, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3290:14:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b98f3e47db5919a8c78ec10ff6bf7d1326066d3facdc164cf7441d38cae771df", + "typeString": "literal_string \"INVALID_TIME\"" + }, + "value": "INVALID_TIME" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b98f3e47db5919a8c78ec10ff6bf7d1326066d3facdc164cf7441d38cae771df", + "typeString": "literal_string \"INVALID_TIME\"" + } + ], + "id": 240, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "3250:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3250:55:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 248, + "nodeType": "ExpressionStatement", + "src": "3250:55:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 250, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 227, + "src": "3337:1:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_storage_ptr", + "typeString": "struct PrivateHashTimeLock.LockContract storage pointer" + } + }, + "id": 251, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3339:10:0", + "memberName": "hashSecret", + "nodeType": "MemberAccess", + "referencedDeclaration": 47, + "src": "3337:12:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "expression": { + "expression": { + "id": 253, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 227, + "src": "3373:1:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_storage_ptr", + "typeString": "struct PrivateHashTimeLock.LockContract storage pointer" + } + }, + "id": 254, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3375:4:0", + "memberName": "priv", + "nodeType": "MemberAccess", + "referencedDeclaration": 58, + "src": "3373:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PrivateEnhancing_$26_storage", + "typeString": "struct PrivateHashTimeLock.PrivateEnhancing storage ref" + } + }, + "id": 255, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3380:9:0", + "memberName": "generator", + "nodeType": "MemberAccess", + "referencedDeclaration": 23, + "src": "3373:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 258, + "name": "secret", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 222, + "src": "3399:6:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 257, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3391:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 256, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3391:7:0", + "typeDescriptions": {} + } + }, + "id": 259, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3391:15:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "expression": { + "id": 260, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 227, + "src": "3408:1:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_storage_ptr", + "typeString": "struct PrivateHashTimeLock.LockContract storage pointer" + } + }, + "id": 261, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3410:4:0", + "memberName": "priv", + "nodeType": "MemberAccess", + "referencedDeclaration": 58, + "src": "3408:6:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PrivateEnhancing_$26_storage", + "typeString": "struct PrivateHashTimeLock.PrivateEnhancing storage ref" + } + }, + "id": 262, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3415:7:0", + "memberName": "modulus", + "nodeType": "MemberAccess", + "referencedDeclaration": 25, + "src": "3408:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 252, + "name": "calculateHashSecret", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 338, + "src": "3353:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (uint256,uint256,uint256) pure returns (bytes32)" + } + }, + "id": 263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3353:70:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "3337:86:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "494e56414c49445f534543524554", + "id": 265, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3425:16:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_20442b474b3561be70a7e12c2acf875277f59e68e7748337cd68bf5c8ada064b", + "typeString": "literal_string \"INVALID_SECRET\"" + }, + "value": "INVALID_SECRET" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_20442b474b3561be70a7e12c2acf875277f59e68e7748337cd68bf5c8ada064b", + "typeString": "literal_string \"INVALID_SECRET\"" + } + ], + "id": 249, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "3316:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3316:135:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 267, + "nodeType": "ExpressionStatement", + "src": "3316:135:0" + }, + { + "expression": { + "id": 272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 268, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 227, + "src": "3462:1:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_storage_ptr", + "typeString": "struct PrivateHashTimeLock.LockContract storage pointer" + } + }, + "id": 270, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "3464:6:0", + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 45, + "src": "3462:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 271, + "name": "WITHDRAWN", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18, + "src": "3473:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3462:20:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 273, + "nodeType": "ExpressionStatement", + "src": "3462:20:0" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 279, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 227, + "src": "3513:1:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_storage_ptr", + "typeString": "struct PrivateHashTimeLock.LockContract storage pointer" + } + }, + "id": 280, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3515:11:0", + "memberName": "inputAmount", + "nodeType": "MemberAccess", + "referencedDeclaration": 39, + "src": "3513:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "expression": { + "id": 274, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 227, + "src": "3493:1:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_storage_ptr", + "typeString": "struct PrivateHashTimeLock.LockContract storage pointer" + } + }, + "id": 277, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3495:8:0", + "memberName": "receiver", + "nodeType": "MemberAccess", + "referencedDeclaration": 51, + "src": "3493:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 278, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3504:8:0", + "memberName": "transfer", + "nodeType": "MemberAccess", + "src": "3493:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3493:34:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 282, + "nodeType": "ExpressionStatement", + "src": "3493:34:0" + }, + { + "eventCall": { + "arguments": [ + { + "id": 284, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 220, + "src": "3552:2:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 285, + "name": "secret", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 222, + "src": "3556:6:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 286, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 227, + "src": "3564:1:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_storage_ptr", + "typeString": "struct PrivateHashTimeLock.LockContract storage pointer" + } + }, + "id": 287, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3566:10:0", + "memberName": "hashSecret", + "nodeType": "MemberAccess", + "referencedDeclaration": 47, + "src": "3564:12:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 288, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 227, + "src": "3578:1:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_storage_ptr", + "typeString": "struct PrivateHashTimeLock.LockContract storage pointer" + } + }, + "id": 289, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3580:6:0", + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": 49, + "src": "3578:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "expression": { + "id": 290, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 227, + "src": "3588:1:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_storage_ptr", + "typeString": "struct PrivateHashTimeLock.LockContract storage pointer" + } + }, + "id": 291, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3590:8:0", + "memberName": "receiver", + "nodeType": "MemberAccess", + "referencedDeclaration": 51, + "src": "3588:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 283, + "name": "Withdraw", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 71, + "src": "3543:8:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_address_$_t_address_$returns$__$", + "typeString": "function (bytes32,bytes32,bytes32,address,address)" + } + }, + "id": 292, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3543:56:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 293, + "nodeType": "EmitStatement", + "src": "3538:61:0" + } + ] + }, + "functionSelector": "63615149", + "id": 295, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "withdraw", + "nameLocation": "3089:8:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 223, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 220, + "mutability": "mutable", + "name": "id", + "nameLocation": "3106:2:0", + "nodeType": "VariableDeclaration", + "scope": 295, + "src": "3098:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 219, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3098:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 222, + "mutability": "mutable", + "name": "secret", + "nameLocation": "3118:6:0", + "nodeType": "VariableDeclaration", + "scope": 295, + "src": "3110:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 221, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3110:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "3097:28:0" + }, + "returnParameters": { + "id": 224, + "nodeType": "ParameterList", + "parameters": [], + "src": "3135:0:0" + }, + "scope": 504, + "src": "3080:526:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 337, + "nodeType": "Block", + "src": "3757:219:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 309, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 307, + "name": "modulus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 301, + "src": "3775:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 308, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3785:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3775:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4d6f64756c75732063616e6e6f742062652030", + "id": 310, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3788:21:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9abeeb3c73b526a3f82a7331ba0148e5c5651d567cb2589f67059a76ae4a2f81", + "typeString": "literal_string \"Modulus cannot be 0\"" + }, + "value": "Modulus cannot be 0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9abeeb3c73b526a3f82a7331ba0148e5c5651d567cb2589f67059a76ae4a2f81", + "typeString": "literal_string \"Modulus cannot be 0\"" + } + ], + "id": 306, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "3767:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 311, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3767:43:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 312, + "nodeType": "ExpressionStatement", + "src": "3767:43:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 316, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 314, + "name": "base", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 297, + "src": "3828:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 315, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3835:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3828:8:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "626173652063616e6e6f742062652030", + "id": 317, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3838:18:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9d64bf9c86f6569726beb048e0d4ccfc36d1f1db25c857d0a597dd762f52b90f", + "typeString": "literal_string \"base cannot be 0\"" + }, + "value": "base cannot be 0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9d64bf9c86f6569726beb048e0d4ccfc36d1f1db25c857d0a597dd762f52b90f", + "typeString": "literal_string \"base cannot be 0\"" + } + ], + "id": 313, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "3820:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3820:37:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 319, + "nodeType": "ExpressionStatement", + "src": "3820:37:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 323, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 321, + "name": "exponent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 299, + "src": "3875:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 322, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3886:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3875:12:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "6578706f6e656e745f312063616e6e6f742062652030", + "id": 324, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3889:24:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cf1dcbcb74065c0b4cc75c49d3d558b90f1c4a7d0c11e0156bec635922502b78", + "typeString": "literal_string \"exponent_1 cannot be 0\"" + }, + "value": "exponent_1 cannot be 0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cf1dcbcb74065c0b4cc75c49d3d558b90f1c4a7d0c11e0156bec635922502b78", + "typeString": "literal_string \"exponent_1 cannot be 0\"" + } + ], + "id": 320, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "3867:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3867:47:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 326, + "nodeType": "ExpressionStatement", + "src": "3867:47:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 334, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 331, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 329, + "name": "base", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 297, + "src": "3941:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "id": 330, + "name": "exponent", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 299, + "src": "3949:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3941:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 332, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "3940:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 333, + "name": "modulus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 301, + "src": "3961:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3940:28:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 328, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3932:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 327, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3932:7:0", + "typeDescriptions": {} + } + }, + "id": 335, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3932:37:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 305, + "id": 336, + "nodeType": "Return", + "src": "3925:44:0" + } + ] + }, + "id": 338, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "calculateHashSecret", + "nameLocation": "3621:19:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 302, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 297, + "mutability": "mutable", + "name": "base", + "nameLocation": "3649:4:0", + "nodeType": "VariableDeclaration", + "scope": 338, + "src": "3641:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 296, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3641:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 299, + "mutability": "mutable", + "name": "exponent", + "nameLocation": "3663:8:0", + "nodeType": "VariableDeclaration", + "scope": 338, + "src": "3655:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 298, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3655:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 301, + "mutability": "mutable", + "name": "modulus", + "nameLocation": "3681:7:0", + "nodeType": "VariableDeclaration", + "scope": 338, + "src": "3673:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 300, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3673:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3640:49:0" + }, + "returnParameters": { + "id": 305, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 304, + "mutability": "mutable", + "name": "result", + "nameLocation": "3745:6:0", + "nodeType": "VariableDeclaration", + "scope": 338, + "src": "3737:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 303, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3737:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "3736:16:0" + }, + "scope": 504, + "src": "3612:364:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 392, + "nodeType": "Block", + "src": "4019:314:0", + "statements": [ + { + "assignments": [ + 345 + ], + "declarations": [ + { + "constant": false, + "id": 345, + "mutability": "mutable", + "name": "c", + "nameLocation": "4050:1:0", + "nodeType": "VariableDeclaration", + "scope": 392, + "src": "4029:22:0", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_storage_ptr", + "typeString": "struct PrivateHashTimeLock.LockContract" + }, + "typeName": { + "id": 344, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 343, + "name": "LockContract", + "nameLocations": [ + "4029:12:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 59, + "src": "4029:12:0" + }, + "referencedDeclaration": 59, + "src": "4029:12:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_storage_ptr", + "typeString": "struct PrivateHashTimeLock.LockContract" + } + }, + "visibility": "internal" + } + ], + "id": 349, + "initialValue": { + "baseExpression": { + "id": 346, + "name": "contracts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6, + "src": "4054:9:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_LockContract_$59_storage_$", + "typeString": "mapping(bytes32 => struct PrivateHashTimeLock.LockContract storage ref)" + } + }, + "id": 348, + "indexExpression": { + "id": 347, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 340, + "src": "4064:2:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4054:13:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_storage", + "typeString": "struct PrivateHashTimeLock.LockContract storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4029:38:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 354, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 351, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 345, + "src": "4086:1:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_storage_ptr", + "typeString": "struct PrivateHashTimeLock.LockContract storage pointer" + } + }, + "id": 352, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4088:6:0", + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 45, + "src": "4086:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 353, + "name": "ACTIVE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12, + "src": "4098:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4086:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "535741505f4e4f545f414354495645", + "id": 355, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4106:17:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_afbfa7d3db262df0c92c413f0113503b1c1332dc5a4a874fcd8d6a6de57b74dd", + "typeString": "literal_string \"SWAP_NOT_ACTIVE\"" + }, + "value": "SWAP_NOT_ACTIVE" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_afbfa7d3db262df0c92c413f0113503b1c1332dc5a4a874fcd8d6a6de57b74dd", + "typeString": "literal_string \"SWAP_NOT_ACTIVE\"" + } + ], + "id": 350, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "4078:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 356, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4078:46:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 357, + "nodeType": "ExpressionStatement", + "src": "4078:46:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 363, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 359, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 345, + "src": "4143:1:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_storage_ptr", + "typeString": "struct PrivateHashTimeLock.LockContract storage pointer" + } + }, + "id": 360, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4145:10:0", + "memberName": "expiration", + "nodeType": "MemberAccess", + "referencedDeclaration": 43, + "src": "4143:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "expression": { + "id": 361, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967292, + "src": "4159:5:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 362, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4165:9:0", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "4159:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4143:31:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "494e56414c49445f54494d45", + "id": 364, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4176:14:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b98f3e47db5919a8c78ec10ff6bf7d1326066d3facdc164cf7441d38cae771df", + "typeString": "literal_string \"INVALID_TIME\"" + }, + "value": "INVALID_TIME" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b98f3e47db5919a8c78ec10ff6bf7d1326066d3facdc164cf7441d38cae771df", + "typeString": "literal_string \"INVALID_TIME\"" + } + ], + "id": 358, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "4135:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 365, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4135:56:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 366, + "nodeType": "ExpressionStatement", + "src": "4135:56:0" + }, + { + "expression": { + "id": 371, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 367, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 345, + "src": "4202:1:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_storage_ptr", + "typeString": "struct PrivateHashTimeLock.LockContract storage pointer" + } + }, + "id": 369, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "4204:6:0", + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 45, + "src": "4202:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 370, + "name": "REFUNDED", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15, + "src": "4213:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4202:19:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 372, + "nodeType": "ExpressionStatement", + "src": "4202:19:0" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 378, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 345, + "src": "4250:1:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_storage_ptr", + "typeString": "struct PrivateHashTimeLock.LockContract storage pointer" + } + }, + "id": 379, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4252:11:0", + "memberName": "inputAmount", + "nodeType": "MemberAccess", + "referencedDeclaration": 39, + "src": "4250:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "expression": { + "id": 373, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 345, + "src": "4232:1:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_storage_ptr", + "typeString": "struct PrivateHashTimeLock.LockContract storage pointer" + } + }, + "id": 376, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4234:6:0", + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": 49, + "src": "4232:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 377, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4241:8:0", + "memberName": "transfer", + "nodeType": "MemberAccess", + "src": "4232:17:0", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 380, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4232:32:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 381, + "nodeType": "ExpressionStatement", + "src": "4232:32:0" + }, + { + "eventCall": { + "arguments": [ + { + "id": 383, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 340, + "src": "4287:2:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 384, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 345, + "src": "4291:1:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_storage_ptr", + "typeString": "struct PrivateHashTimeLock.LockContract storage pointer" + } + }, + "id": 385, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4293:10:0", + "memberName": "hashSecret", + "nodeType": "MemberAccess", + "referencedDeclaration": 47, + "src": "4291:12:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 386, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 345, + "src": "4305:1:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_storage_ptr", + "typeString": "struct PrivateHashTimeLock.LockContract storage pointer" + } + }, + "id": 387, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4307:6:0", + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": 49, + "src": "4305:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "expression": { + "id": 388, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 345, + "src": "4315:1:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_storage_ptr", + "typeString": "struct PrivateHashTimeLock.LockContract storage pointer" + } + }, + "id": 389, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4317:8:0", + "memberName": "receiver", + "nodeType": "MemberAccess", + "referencedDeclaration": 51, + "src": "4315:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 382, + "name": "Refund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 81, + "src": "4280:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$_t_address_$returns$__$", + "typeString": "function (bytes32,bytes32,address,address)" + } + }, + "id": 390, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4280:46:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 391, + "nodeType": "EmitStatement", + "src": "4275:51:0" + } + ] + }, + "functionSelector": "7249fbb6", + "id": 393, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "refund", + "nameLocation": "3991:6:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 341, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 340, + "mutability": "mutable", + "name": "id", + "nameLocation": "4006:2:0", + "nodeType": "VariableDeclaration", + "scope": 393, + "src": "3998:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 339, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3998:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "3997:12:0" + }, + "returnParameters": { + "id": 342, + "nodeType": "ParameterList", + "parameters": [], + "src": "4019:0:0" + }, + "scope": 504, + "src": "3982:351:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 439, + "nodeType": "Block", + "src": "4419:223:0", + "statements": [ + { + "assignments": [ + 406 + ], + "declarations": [ + { + "constant": false, + "id": 406, + "mutability": "mutable", + "name": "result", + "nameLocation": "4446:6:0", + "nodeType": "VariableDeclaration", + "scope": 439, + "src": "4429:23:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 404, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4429:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 405, + "nodeType": "ArrayTypeName", + "src": "4429:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "id": 413, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 410, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 396, + "src": "4469:3:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[] memory" + } + }, + "id": 411, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4473:6:0", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "4469:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 409, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "4455:13:0", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (uint256[] memory)" + }, + "typeName": { + "baseType": { + "id": 407, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4459:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 408, + "nodeType": "ArrayTypeName", + "src": "4459:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + } + }, + "id": 412, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4455:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4429:51:0" + }, + { + "body": { + "id": 435, + "nodeType": "Block", + "src": "4544:68:0", + "statements": [ + { + "expression": { + "id": 433, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 425, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 406, + "src": "4558:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 427, + "indexExpression": { + "id": 426, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 415, + "src": "4565:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4558:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "baseExpression": { + "id": 429, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 396, + "src": "4590:3:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[] memory" + } + }, + "id": 431, + "indexExpression": { + "id": 430, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 415, + "src": "4594:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4590:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 428, + "name": "getSingleStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 477, + "src": "4574:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_uint256_$", + "typeString": "function (bytes32) view returns (uint256)" + } + }, + "id": 432, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4574:27:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4558:43:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 434, + "nodeType": "ExpressionStatement", + "src": "4558:43:0" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 418, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 415, + "src": "4515:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 419, + "name": "ids", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 396, + "src": "4523:3:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[] memory" + } + }, + "id": 420, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4527:6:0", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "4523:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4515:18:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 436, + "initializationExpression": { + "assignments": [ + 415 + ], + "declarations": [ + { + "constant": false, + "id": 415, + "mutability": "mutable", + "name": "index", + "nameLocation": "4504:5:0", + "nodeType": "VariableDeclaration", + "scope": 436, + "src": "4496:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 414, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4496:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 417, + "initialValue": { + "hexValue": "30", + "id": 416, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4512:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "4496:17:0" + }, + "loopExpression": { + "expression": { + "id": 423, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "4535:7:0", + "subExpression": { + "id": 422, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 415, + "src": "4535:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 424, + "nodeType": "ExpressionStatement", + "src": "4535:7:0" + }, + "nodeType": "ForStatement", + "src": "4491:121:0" + }, + { + "expression": { + "id": 437, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 406, + "src": "4629:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "functionReturnParameters": 401, + "id": 438, + "nodeType": "Return", + "src": "4622:13:0" + } + ] + }, + "functionSelector": "2f21a663", + "id": 440, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getStatus", + "nameLocation": "4348:9:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 397, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 396, + "mutability": "mutable", + "name": "ids", + "nameLocation": "4375:3:0", + "nodeType": "VariableDeclaration", + "scope": 440, + "src": "4358:20:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 394, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4358:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 395, + "nodeType": "ArrayTypeName", + "src": "4358:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + } + }, + "visibility": "internal" + } + ], + "src": "4357:22:0" + }, + "returnParameters": { + "id": 401, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 400, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 440, + "src": "4401:16:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 398, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4401:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 399, + "nodeType": "ArrayTypeName", + "src": "4401:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "4400:18:0" + }, + "scope": 504, + "src": "4339:303:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 476, + "nodeType": "Block", + "src": "4722:255:0", + "statements": [ + { + "assignments": [ + 449 + ], + "declarations": [ + { + "constant": false, + "id": 449, + "mutability": "mutable", + "name": "tempContract", + "nameLocation": "4752:12:0", + "nodeType": "VariableDeclaration", + "scope": 476, + "src": "4732:32:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_memory_ptr", + "typeString": "struct PrivateHashTimeLock.LockContract" + }, + "typeName": { + "id": 448, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 447, + "name": "LockContract", + "nameLocations": [ + "4732:12:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 59, + "src": "4732:12:0" + }, + "referencedDeclaration": 59, + "src": "4732:12:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_storage_ptr", + "typeString": "struct PrivateHashTimeLock.LockContract" + } + }, + "visibility": "internal" + } + ], + "id": 453, + "initialValue": { + "baseExpression": { + "id": 450, + "name": "contracts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6, + "src": "4767:9:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_LockContract_$59_storage_$", + "typeString": "mapping(bytes32 => struct PrivateHashTimeLock.LockContract storage ref)" + } + }, + "id": 452, + "indexExpression": { + "id": 451, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 442, + "src": "4777:2:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4767:13:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_storage", + "typeString": "struct PrivateHashTimeLock.LockContract storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4732:48:0" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 463, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 457, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 454, + "name": "tempContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 449, + "src": "4795:12:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_memory_ptr", + "typeString": "struct PrivateHashTimeLock.LockContract memory" + } + }, + "id": 455, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4808:6:0", + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 45, + "src": "4795:19:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 456, + "name": "ACTIVE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12, + "src": "4818:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4795:29:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 462, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 458, + "name": "tempContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 449, + "src": "4828:12:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_memory_ptr", + "typeString": "struct PrivateHashTimeLock.LockContract memory" + } + }, + "id": 459, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4841:10:0", + "memberName": "expiration", + "nodeType": "MemberAccess", + "referencedDeclaration": 43, + "src": "4828:23:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 460, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967292, + "src": "4854:5:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4860:9:0", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "4854:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4828:41:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4795:74:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 474, + "nodeType": "Block", + "src": "4918:53:0", + "statements": [ + { + "expression": { + "id": 472, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 469, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 445, + "src": "4932:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 470, + "name": "tempContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 449, + "src": "4941:12:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_memory_ptr", + "typeString": "struct PrivateHashTimeLock.LockContract memory" + } + }, + "id": 471, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4954:6:0", + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 45, + "src": "4941:19:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4932:28:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 473, + "nodeType": "ExpressionStatement", + "src": "4932:28:0" + } + ] + }, + "id": 475, + "nodeType": "IfStatement", + "src": "4791:180:0", + "trueBody": { + "id": 468, + "nodeType": "Block", + "src": "4871:41:0", + "statements": [ + { + "expression": { + "id": 466, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 464, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 445, + "src": "4885:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 465, + "name": "EXPIRED", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21, + "src": "4894:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4885:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 467, + "nodeType": "ExpressionStatement", + "src": "4885:16:0" + } + ] + } + } + ] + }, + "functionSelector": "fbdf3b43", + "id": 477, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getSingleStatus", + "nameLocation": "4657:15:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 443, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 442, + "mutability": "mutable", + "name": "id", + "nameLocation": "4681:2:0", + "nodeType": "VariableDeclaration", + "scope": 477, + "src": "4673:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 441, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4673:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "4672:12:0" + }, + "returnParameters": { + "id": 446, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 445, + "mutability": "mutable", + "name": "result", + "nameLocation": "4714:6:0", + "nodeType": "VariableDeclaration", + "scope": 477, + "src": "4706:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 444, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4706:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4705:16:0" + }, + "scope": 504, + "src": "4648:329:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 502, + "nodeType": "Block", + "src": "5053:187:0", + "statements": [ + { + "assignments": [ + 486 + ], + "declarations": [ + { + "constant": false, + "id": 486, + "mutability": "mutable", + "name": "tempContract", + "nameLocation": "5083:12:0", + "nodeType": "VariableDeclaration", + "scope": 502, + "src": "5063:32:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_memory_ptr", + "typeString": "struct PrivateHashTimeLock.LockContract" + }, + "typeName": { + "id": 485, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 484, + "name": "LockContract", + "nameLocations": [ + "5063:12:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 59, + "src": "5063:12:0" + }, + "referencedDeclaration": 59, + "src": "5063:12:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_storage_ptr", + "typeString": "struct PrivateHashTimeLock.LockContract" + } + }, + "visibility": "internal" + } + ], + "id": 490, + "initialValue": { + "baseExpression": { + "id": 487, + "name": "contracts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6, + "src": "5098:9:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_LockContract_$59_storage_$", + "typeString": "mapping(bytes32 => struct PrivateHashTimeLock.LockContract storage ref)" + } + }, + "id": 489, + "indexExpression": { + "id": 488, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 479, + "src": "5108:2:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5098:13:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_storage", + "typeString": "struct PrivateHashTimeLock.LockContract storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5063:48:0" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 494, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 491, + "name": "tempContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 486, + "src": "5126:12:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_LockContract_$59_memory_ptr", + "typeString": "struct PrivateHashTimeLock.LockContract memory" + } + }, + "id": 492, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5139:6:0", + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 45, + "src": "5126:19:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 493, + "name": "INIT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9, + "src": "5149:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5126:27:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 500, + "nodeType": "Block", + "src": "5198:36:0", + "statements": [ + { + "expression": { + "hexValue": "74727565", + "id": 498, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5219:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 483, + "id": 499, + "nodeType": "Return", + "src": "5212:11:0" + } + ] + }, + "id": 501, + "nodeType": "IfStatement", + "src": "5122:112:0", + "trueBody": { + "id": 497, + "nodeType": "Block", + "src": "5155:37:0", + "statements": [ + { + "expression": { + "hexValue": "66616c7365", + "id": 495, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5176:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 483, + "id": 496, + "nodeType": "Return", + "src": "5169:12:0" + } + ] + } + } + ] + }, + "functionSelector": "6c8244b8", + "id": 503, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "contractExists", + "nameLocation": "4992:14:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 480, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 479, + "mutability": "mutable", + "name": "id", + "nameLocation": "5015:2:0", + "nodeType": "VariableDeclaration", + "scope": 503, + "src": "5007:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 478, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5007:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "5006:12:0" + }, + "returnParameters": { + "id": 483, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 482, + "mutability": "mutable", + "name": "result", + "nameLocation": "5045:6:0", + "nodeType": "VariableDeclaration", + "scope": 503, + "src": "5040:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 481, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5040:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "5039:13:0" + }, + "scope": 504, + "src": "4983:257:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "scope": 505, + "src": "57:5185:0", + "usedErrors": [] + } + ], + "src": "32:5211:0" + }, + "functionHashes": { + "contractExists(bytes32)": "6c8244b8", + "getSingleStatus(bytes32)": "fbdf3b43", + "getStatus(bytes32[])": "2f21a663", + "newPrivateContract(uint256,uint256,bytes32,address,string,string,(uint256,uint256))": "9b0bcdcb", + "refund(bytes32)": "7249fbb6", + "withdraw(bytes32,bytes32)": "63615149" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "942000", + "executionCost": "981", + "totalCost": "942981" + }, + "external": { + "contractExists(bytes32)": "infinite", + "getSingleStatus(bytes32)": "infinite", + "getStatus(bytes32[])": "infinite", + "newPrivateContract(uint256,uint256,bytes32,address,string,string,(uint256,uint256))": "infinite", + "refund(bytes32)": "infinite", + "withdraw(bytes32,bytes32)": "infinite" + }, + "internal": { + "calculateHashSecret(uint256,uint256,uint256)": "infinite" + } + } +} \ No newline at end of file diff --git a/packages/cactus-plugin-htlc-eth-besu/src/main/solidity/contracts/PrivateHashTimeLock.sol b/packages/cactus-plugin-htlc-eth-besu/src/main/solidity/contracts/PrivateHashTimeLock.sol index f546919c37d..e698a43277e 100644 --- a/packages/cactus-plugin-htlc-eth-besu/src/main/solidity/contracts/PrivateHashTimeLock.sol +++ b/packages/cactus-plugin-htlc-eth-besu/src/main/solidity/contracts/PrivateHashTimeLock.sol @@ -77,7 +77,7 @@ contract PrivateHashTimeLock { require(inputAmount > 0, "INVALID_AMOUNT"); - bytes32 id = keccak256(abi.encodePacked(sender, receiver, inputAmount, hashLock, expiration)); + bytes32 id = keccak256(abi.encode(sender, receiver, inputAmount, hashLock, expiration)); require(contracts[id].status == INIT, "SWAP_EXISTS"); require(priv.generator > 0); diff --git a/packages/cactus-plugin-htlc-eth-besu/src/main/typescript/plugin-htlc-eth-besu.ts b/packages/cactus-plugin-htlc-eth-besu/src/main/typescript/plugin-htlc-eth-besu.ts index c83da099d4a..41082fed9d6 100644 --- a/packages/cactus-plugin-htlc-eth-besu/src/main/typescript/plugin-htlc-eth-besu.ts +++ b/packages/cactus-plugin-htlc-eth-besu/src/main/typescript/plugin-htlc-eth-besu.ts @@ -34,6 +34,7 @@ import { InitializeRequest, GetStatusRequest, GetSingleStatusRequest, + Web3SigningCredentialPrivateKeyHex, } from "./generated/openapi/typescript-axios"; export interface IPluginHtlcEthBesuOptions extends ICactusPluginOptions { logLevel?: LogLevelDesc; @@ -188,6 +189,23 @@ export class PluginHtlcEthBesu implements ICactusPlugin, IPluginWebService { gas: newContractRequest.gas || this.estimatedGas, value: newContractRequest.inputAmount, }); + + console.log( + "newContractV1() args to hash for ID: ", + JSON.stringify( + [ + (newContractRequest.web3SigningCredential as Web3SigningCredentialPrivateKeyHex) + .ethAccount, + newContractRequest.receiver, + newContractRequest.inputAmount, + newContractRequest.hashLock, + newContractRequest.expiration, + ], + null, + 4, + ), + ); + return result; } diff --git a/packages/cactus-plugin-htlc-eth-besu/src/test/solidity/integration/HashTimeLock.t.sol b/packages/cactus-plugin-htlc-eth-besu/src/test/solidity/integration/HashTimeLock.t.sol new file mode 100644 index 00000000000..e0ad117013f --- /dev/null +++ b/packages/cactus-plugin-htlc-eth-besu/src/test/solidity/integration/HashTimeLock.t.sol @@ -0,0 +1,119 @@ +pragma solidity 0.8.19; + +import {HashTimeLock} from "../../../main/solidity/contracts/HashTimeLock.sol"; +import "forge-std/Test.sol"; +import "forge-std/console2.sol"; + +contract HashTimeLockTest is Test { + + bytes32 AliceSecret; + bytes32 HashedAliceSecret; + bytes32 Z; + + function setUp() public { + AliceSecret = bytes32(0x0000000000000000000000000000000000000000000000000000000000000003); + // keccak256(abi.encodePacked(AliceSecret)); + HashedAliceSecret = bytes32(0xc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b); + } + + function test_Deployment() public { + new HashTimeLock(); + } + + function test_initializeHTLC() public { + // 5 eth + uint256 inputAmountEth = 5; + uint256 outputAmount = 5000000000000000000; + // 1/1/2030 + uint256 expiration = 1893515539; + // account # 1 of anvil -a 10 + address payable receiver = payable(0x70997970C51812dc3A010C7d01b50e0d17dc79C8); + string memory outputNetwork = "anvil"; + string memory outputAddress = vm.toString(msg.sender); + + + HashTimeLock HtlcManager = new HashTimeLock(); + console.log("Deployed HTLC: ", address(HtlcManager)); + + vm.expectCall( + address(HtlcManager), + 5, + abi.encodeWithSelector( + HtlcManager.newContract.selector, + outputAmount, + expiration, + HashedAliceSecret, + receiver, + outputNetwork, + outputAddress + ), + 1 + ); + + //vm.expectEmit(true, true, false, true, address(HtlcManager)); + vm.recordLogs(); + + HtlcManager.newContract{value: inputAmountEth}( + outputAmount, expiration, HashedAliceSecret, receiver, outputNetwork, outputAddress + ); + + Vm.Log[] memory entries = vm.getRecordedLogs(); + + // get contract id from event + assertEq(entries.length, 1); + bytes32 id = entries[0].topics[1]; + + bool exists = HtlcManager.contractExists(id); + assert(exists); + + // state is active + assert(HtlcManager.getSingleStatus(id) == 1); + } + + function test_process_secret() public { + // 5 eth + uint256 inputAmountEth = 5; + uint256 outputAmount = 5000000000000000000; + // 1/1/2030 + uint256 expiration = 1893515539; + // account # 1 of anvil -a 10 + address payable receiver = payable(0x70997970C51812dc3A010C7d01b50e0d17dc79C8); + string memory outputNetwork = "anvil"; + string memory outputAddress = vm.toString(msg.sender); + + + HashTimeLock HtlcManager = new HashTimeLock(); + console.log("Deployed HTLC: ", address(HtlcManager)); + + vm.expectCall( + address(HtlcManager), + 5, + abi.encodeWithSelector( + HtlcManager.newContract.selector, + outputAmount, + expiration, + HashedAliceSecret, + receiver, + outputNetwork, + outputAddress + ), + 1 + ); + + //vm.expectEmit(true, true, false, true, address(HtlcManager)); + vm.recordLogs(); + + HtlcManager.newContract{value: inputAmountEth}( + outputAmount, expiration, HashedAliceSecret, receiver, outputNetwork, outputAddress + ); + + Vm.Log[] memory entries = vm.getRecordedLogs(); + + // get contract id from event + assertEq(entries.length, 1); + bytes32 id = entries[0].topics[1]; + assertEq(HashedAliceSecret, keccak256(abi.encode(AliceSecret))); + HtlcManager.withdraw(id, AliceSecret); + } + +} diff --git a/packages/cactus-test-plugin-htlc-eth-besu-erc20/package.json b/packages/cactus-test-plugin-htlc-eth-besu-erc20/package.json index aa08b42b093..e361a8e41b9 100644 --- a/packages/cactus-test-plugin-htlc-eth-besu-erc20/package.json +++ b/packages/cactus-test-plugin-htlc-eth-besu-erc20/package.json @@ -59,7 +59,9 @@ "@hyperledger/cactus-plugin-ledger-connector-besu": "2.0.0-alpha.1", "@hyperledger/cactus-test-tooling": "2.0.0-alpha.1", "axios": "0.21.4", - "express": "4.17.1" + "express": "4.17.1", + "web3-eth-abi": "4.0.3", + "web3-utils": "4.0.3" }, "devDependencies": { "@types/express": "4.17.13" diff --git a/packages/cactus-test-plugin-htlc-eth-besu-erc20/src/test/solidity/token-erc20-contract/DemoHelpers.json b/packages/cactus-test-plugin-htlc-eth-besu-erc20/src/test/solidity/token-erc20-contract/DemoHelpers.json index 727d27d023d..4e6984549be 100644 --- a/packages/cactus-test-plugin-htlc-eth-besu-erc20/src/test/solidity/token-erc20-contract/DemoHelpers.json +++ b/packages/cactus-test-plugin-htlc-eth-besu-erc20/src/test/solidity/token-erc20-contract/DemoHelpers.json @@ -1,6078 +1,868 @@ { "contractName": "DemoHelpers", "abi": [ - { - "inputs": [ - { - "internalType": "string", - "name": "_key", - "type": "string" - } - ], - "name": "getHash", - "outputs": [ - { - "internalType": "bytes32", - "name": "result", - "type": "bytes32" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "getTimestamp", - "outputs": [ - { - "internalType": "uint256", - "name": "result", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "internalType": "uint256", - "name": "inputAmount", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "hashLock", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "expiration", - "type": "uint256" - }, - { - "internalType": "address", - "name": "tokenAddress", - "type": "address" - } - ], - "name": "getTxId", - "outputs": [ - { - "internalType": "bytes32", - "name": "result", - "type": "bytes32" - } - ], - "stateMutability": "pure", - "type": "function" - } - ], - "metadata": "{\"compiler\":{\"version\":\"0.8.0+commit.c7dfd78e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_key\",\"type\":\"string\"}],\"name\":\"getHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"result\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"inputAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"hashLock\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"}],\"name\":\"getTxId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"result\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/Users/jordigironamezcua/pruebas/contracts/DemoHelpers.sol\":\"DemoHelpers\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/jordigironamezcua/pruebas/contracts/DemoHelpers.sol\":{\"keccak256\":\"0x1c114445c070188e9b7d10eb767226ee3621f4220efb66577368522f05f74906\",\"urls\":[\"bzz-raw://447fc94045dd130955bd83fe3f3c1a14aabc230dc9691632208781d920810130\",\"dweb:/ipfs/QmeZFqr8PAKy2J1grPsBkScCgfc45F2YKyDs4e9qmtsqir\"]}},\"version\":1}", - "bytecode": "608060405234801561001057600080fd5b506105eb806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063188ec356146100465780635b6beeb914610064578063a9a3520914610094575b600080fd5b61004e6100c4565b60405161005b91906103e2565b60405180910390f35b61007e6004803603810190610079919061026b565b6100cc565b60405161008b91906103c7565b60405180910390f35b6100ae60048036038101906100a991906101e2565b6100fc565b6040516100bb91906103c7565b60405180910390f35b600042905090565b6000816040516020016100df91906103b0565b604051602081830303815290604052805190602001209050919050565b600086868686868660405160200161011996959493929190610340565b6040516020818303038152906040528051906020012090509695505050505050565b600061014e6101498461042e565b6103fd565b90508281526020810184848401111561016657600080fd5b6101718482856104ba565b509392505050565b60008135905061018881610570565b92915050565b60008135905061019d81610587565b92915050565b600082601f8301126101b457600080fd5b81356101c484826020860161013b565b91505092915050565b6000813590506101dc8161059e565b92915050565b60008060008060008060c087890312156101fb57600080fd5b600061020989828a01610179565b965050602061021a89828a01610179565b955050604061022b89828a016101cd565b945050606061023c89828a0161018e565b935050608061024d89828a016101cd565b92505060a061025e89828a01610179565b9150509295509295509295565b60006020828403121561027d57600080fd5b600082013567ffffffffffffffff81111561029757600080fd5b6102a3848285016101a3565b91505092915050565b6102bd6102b882610474565b6104fc565b82525050565b6102cc81610486565b82525050565b6102e36102de82610486565b61050e565b82525050565b60006102f48261045e565b6102fe8185610469565b935061030e8185602086016104c9565b80840191505092915050565b610323816104b0565b82525050565b61033a610335826104b0565b61052a565b82525050565b600061034c82896102ac565b60148201915061035c82886102ac565b60148201915061036c8287610329565b60208201915061037c82866102d2565b60208201915061038c8285610329565b60208201915061039c82846102ac565b601482019150819050979650505050505050565b60006103bc82846102e9565b915081905092915050565b60006020820190506103dc60008301846102c3565b92915050565b60006020820190506103f7600083018461031a565b92915050565b6000604051905081810181811067ffffffffffffffff8211171561042457610423610534565b5b8060405250919050565b600067ffffffffffffffff82111561044957610448610534565b5b601f19601f8301169050602081019050919050565b600081519050919050565b600081905092915050565b600061047f82610490565b9050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b838110156104e75780820151818401526020810190506104cc565b838111156104f6576000848401525b50505050565b600061050782610518565b9050919050565b6000819050919050565b600061052382610563565b9050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008160601b9050919050565b61057981610474565b811461058457600080fd5b50565b61059081610486565b811461059b57600080fd5b50565b6105a7816104b0565b81146105b257600080fd5b5056fea2646970667358221220685687694501ec5e3555b5bec489328469d379c8340913a5d0b84722b73577a664736f6c63430008000033", - "deployedBytecode": "608060405234801561001057600080fd5b50600436106100415760003560e01c8063188ec356146100465780635b6beeb914610064578063a9a3520914610094575b600080fd5b61004e6100c4565b60405161005b91906103e2565b60405180910390f35b61007e6004803603810190610079919061026b565b6100cc565b60405161008b91906103c7565b60405180910390f35b6100ae60048036038101906100a991906101e2565b6100fc565b6040516100bb91906103c7565b60405180910390f35b600042905090565b6000816040516020016100df91906103b0565b604051602081830303815290604052805190602001209050919050565b600086868686868660405160200161011996959493929190610340565b6040516020818303038152906040528051906020012090509695505050505050565b600061014e6101498461042e565b6103fd565b90508281526020810184848401111561016657600080fd5b6101718482856104ba565b509392505050565b60008135905061018881610570565b92915050565b60008135905061019d81610587565b92915050565b600082601f8301126101b457600080fd5b81356101c484826020860161013b565b91505092915050565b6000813590506101dc8161059e565b92915050565b60008060008060008060c087890312156101fb57600080fd5b600061020989828a01610179565b965050602061021a89828a01610179565b955050604061022b89828a016101cd565b945050606061023c89828a0161018e565b935050608061024d89828a016101cd565b92505060a061025e89828a01610179565b9150509295509295509295565b60006020828403121561027d57600080fd5b600082013567ffffffffffffffff81111561029757600080fd5b6102a3848285016101a3565b91505092915050565b6102bd6102b882610474565b6104fc565b82525050565b6102cc81610486565b82525050565b6102e36102de82610486565b61050e565b82525050565b60006102f48261045e565b6102fe8185610469565b935061030e8185602086016104c9565b80840191505092915050565b610323816104b0565b82525050565b61033a610335826104b0565b61052a565b82525050565b600061034c82896102ac565b60148201915061035c82886102ac565b60148201915061036c8287610329565b60208201915061037c82866102d2565b60208201915061038c8285610329565b60208201915061039c82846102ac565b601482019150819050979650505050505050565b60006103bc82846102e9565b915081905092915050565b60006020820190506103dc60008301846102c3565b92915050565b60006020820190506103f7600083018461031a565b92915050565b6000604051905081810181811067ffffffffffffffff8211171561042457610423610534565b5b8060405250919050565b600067ffffffffffffffff82111561044957610448610534565b5b601f19601f8301169050602081019050919050565b600081519050919050565b600081905092915050565b600061047f82610490565b9050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b838110156104e75780820151818401526020810190506104cc565b838111156104f6576000848401525b50505050565b600061050782610518565b9050919050565b6000819050919050565b600061052382610563565b9050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008160601b9050919050565b61057981610474565b811461058457600080fd5b50565b61059081610486565b811461059b57600080fd5b50565b6105a7816104b0565b81146105b257600080fd5b5056fea2646970667358221220685687694501ec5e3555b5bec489328469d379c8340913a5d0b84722b73577a664736f6c63430008000033", - "immutableReferences": {}, - "generatedSources": [], - "deployedGeneratedSources": [ - { - "ast": { - "nodeType": "YulBlock", - "src": "0:8088:2", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "91:260:2", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "101:74:2", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "167:6:2" - } - ], - "functionName": { - "name": "array_allocation_size_t_string_memory_ptr", - "nodeType": "YulIdentifier", - "src": "125:41:2" - }, - "nodeType": "YulFunctionCall", - "src": "125:49:2" - } - ], - "functionName": { - "name": "allocateMemory", - "nodeType": "YulIdentifier", - "src": "110:14:2" - }, - "nodeType": "YulFunctionCall", - "src": "110:65:2" - }, - "variableNames": [ - { - "name": "array", - "nodeType": "YulIdentifier", - "src": "101:5:2" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "array", - "nodeType": "YulIdentifier", - "src": "191:5:2" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "198:6:2" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "184:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "184:21:2" - }, - "nodeType": "YulExpressionStatement", - "src": "184:21:2" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "214:27:2", - "value": { - "arguments": [ - { - "name": "array", - "nodeType": "YulIdentifier", - "src": "229:5:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "236:4:2", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "225:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "225:16:2" - }, - "variables": [ - { - "name": "dst", - "nodeType": "YulTypedName", - "src": "218:3:2", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "279:16:2", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "288:1:2", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "291:1:2", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "281:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "281:12:2" - }, - "nodeType": "YulExpressionStatement", - "src": "281:12:2" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nodeType": "YulIdentifier", - "src": "260:3:2" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "265:6:2" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "256:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "256:16:2" - }, - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "274:3:2" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "253:2:2" - }, - "nodeType": "YulFunctionCall", - "src": "253:25:2" - }, - "nodeType": "YulIf", - "src": "250:2:2" - }, - { - "expression": { - "arguments": [ - { - "name": "src", - "nodeType": "YulIdentifier", - "src": "328:3:2" - }, - { - "name": "dst", - "nodeType": "YulIdentifier", - "src": "333:3:2" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "338:6:2" - } - ], - "functionName": { - "name": "copy_calldata_to_memory", - "nodeType": "YulIdentifier", - "src": "304:23:2" - }, - "nodeType": "YulFunctionCall", - "src": "304:41:2" - }, - "nodeType": "YulExpressionStatement", - "src": "304:41:2" - } - ] - }, - "name": "abi_decode_available_length_t_string_memory_ptr", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "src", - "nodeType": "YulTypedName", - "src": "64:3:2", - "type": "" - }, - { - "name": "length", - "nodeType": "YulTypedName", - "src": "69:6:2", - "type": "" - }, - { - "name": "end", - "nodeType": "YulTypedName", - "src": "77:3:2", - "type": "" - } - ], - "returnVariables": [ + { + "inputs": [ { - "name": "array", - "nodeType": "YulTypedName", - "src": "85:5:2", - "type": "" + "internalType": "string", + "name": "_key", + "type": "string" } - ], - "src": "7:344:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "409:87:2", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "419:29:2", - "value": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "441:6:2" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "428:12:2" - }, - "nodeType": "YulFunctionCall", - "src": "428:20:2" - }, - "variableNames": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "419:5:2" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "484:5:2" - } - ], - "functionName": { - "name": "validator_revert_t_address", - "nodeType": "YulIdentifier", - "src": "457:26:2" - }, - "nodeType": "YulFunctionCall", - "src": "457:33:2" - }, - "nodeType": "YulExpressionStatement", - "src": "457:33:2" - } - ] - }, - "name": "abi_decode_t_address", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "387:6:2", - "type": "" - }, + ], + "name": "getHash", + "outputs": [ { - "name": "end", - "nodeType": "YulTypedName", - "src": "395:3:2", - "type": "" + "internalType": "bytes32", + "name": "result", + "type": "bytes32" } - ], - "returnVariables": [ + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "getTimestamp", + "outputs": [ { - "name": "value", - "nodeType": "YulTypedName", - "src": "403:5:2", - "type": "" + "internalType": "uint256", + "name": "result", + "type": "uint256" } - ], - "src": "357:139:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "554:87:2", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "564:29:2", - "value": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "586:6:2" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "573:12:2" - }, - "nodeType": "YulFunctionCall", - "src": "573:20:2" - }, - "variableNames": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "564:5:2" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "629:5:2" - } - ], - "functionName": { - "name": "validator_revert_t_bytes32", - "nodeType": "YulIdentifier", - "src": "602:26:2" - }, - "nodeType": "YulFunctionCall", - "src": "602:33:2" - }, - "nodeType": "YulExpressionStatement", - "src": "602:33:2" - } - ] - }, - "name": "abi_decode_t_bytes32", - "nodeType": "YulFunctionDefinition", - "parameters": [ + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ { - "name": "offset", - "nodeType": "YulTypedName", - "src": "532:6:2", - "type": "" + "internalType": "address", + "name": "sender", + "type": "address" }, { - "name": "end", - "nodeType": "YulTypedName", - "src": "540:3:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "548:5:2", - "type": "" - } - ], - "src": "502:139:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "723:211:2", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "772:16:2", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "781:1:2", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "784:1:2", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "774:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "774:12:2" - }, - "nodeType": "YulExpressionStatement", - "src": "774:12:2" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "751:6:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "759:4:2", - "type": "", - "value": "0x1f" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "747:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "747:17:2" - }, - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "766:3:2" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "743:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "743:27:2" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "736:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "736:35:2" - }, - "nodeType": "YulIf", - "src": "733:2:2" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "797:34:2", - "value": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "824:6:2" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "811:12:2" - }, - "nodeType": "YulFunctionCall", - "src": "811:20:2" - }, - "variables": [ - { - "name": "length", - "nodeType": "YulTypedName", - "src": "801:6:2", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "840:88:2", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "901:6:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "909:4:2", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "897:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "897:17:2" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "916:6:2" - }, - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "924:3:2" - } - ], - "functionName": { - "name": "abi_decode_available_length_t_string_memory_ptr", - "nodeType": "YulIdentifier", - "src": "849:47:2" - }, - "nodeType": "YulFunctionCall", - "src": "849:79:2" - }, - "variableNames": [ - { - "name": "array", - "nodeType": "YulIdentifier", - "src": "840:5:2" - } - ] - } - ] - }, - "name": "abi_decode_t_string_memory_ptr", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "701:6:2", - "type": "" + "internalType": "address", + "name": "receiver", + "type": "address" }, { - "name": "end", - "nodeType": "YulTypedName", - "src": "709:3:2", - "type": "" - } - ], - "returnVariables": [ + "internalType": "uint256", + "name": "inputAmount", + "type": "uint256" + }, { - "name": "array", - "nodeType": "YulTypedName", - "src": "717:5:2", - "type": "" - } - ], - "src": "661:273:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "992:87:2", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "1002:29:2", - "value": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "1024:6:2" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "1011:12:2" - }, - "nodeType": "YulFunctionCall", - "src": "1011:20:2" - }, - "variableNames": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "1002:5:2" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "1067:5:2" - } - ], - "functionName": { - "name": "validator_revert_t_uint256", - "nodeType": "YulIdentifier", - "src": "1040:26:2" - }, - "nodeType": "YulFunctionCall", - "src": "1040:33:2" - }, - "nodeType": "YulExpressionStatement", - "src": "1040:33:2" - } - ] - }, - "name": "abi_decode_t_uint256", - "nodeType": "YulFunctionDefinition", - "parameters": [ + "internalType": "bytes32", + "name": "hashLock", + "type": "bytes32" + }, { - "name": "offset", - "nodeType": "YulTypedName", - "src": "970:6:2", - "type": "" + "internalType": "uint256", + "name": "expiration", + "type": "uint256" }, { - "name": "end", - "nodeType": "YulTypedName", - "src": "978:3:2", - "type": "" + "internalType": "address", + "name": "tokenAddress", + "type": "address" } - ], - "returnVariables": [ + ], + "name": "getTxId", + "outputs": [ { - "name": "value", - "nodeType": "YulTypedName", - "src": "986:5:2", - "type": "" + "internalType": "bytes32", + "name": "result", + "type": "bytes32" } - ], - "src": "940:139:2" + ], + "stateMutability": "pure", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_key\",\"type\":\"string\"}],\"name\":\"getHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"result\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"inputAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"hashLock\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"}],\"name\":\"getTxId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"result\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/peter/a/cacti-2/packages/cactus-test-plugin-htlc-eth-besu-erc20/src/test/solidity/token-erc20-contract/DemoHelpers.sol\":\"DemoHelpers\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/peter/a/cacti-2/packages/cactus-test-plugin-htlc-eth-besu-erc20/src/test/solidity/token-erc20-contract/DemoHelpers.sol\":{\"keccak256\":\"0xd76915c48ef773b98e625635e46b2a5506b9d1c643ec1fc2e03db8a434896efc\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b37e4dbaa96fb417676e1ffa477c8be7d22206b05da3e8f2b698b39468a842ca\",\"dweb:/ipfs/QmSaErkiknyRSDZUuesKcxtu9PPa7ew2jC3e2ZX8qUgAGm\"]}},\"version\":1}", + "bytecode": "608060405234801561001057600080fd5b506102ce806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063188ec356146100465780635b6beeb91461005a578063a9a352091461006d575b600080fd5b425b60405190815260200160405180910390f35b61004861006836600461011e565b6100d8565b61004861007b3660046101eb565b604080516001600160a01b03978816602080830191909152968816818301526060810195909552608085019390935260a084019190915290931660c0808301919091528351808303909101815260e0909101909252815191012090565b6000816040516020016100eb919061024a565b604051602081830303815290604052805190602001209050919050565b634e487b7160e01b600052604160045260246000fd5b60006020828403121561013057600080fd5b813567ffffffffffffffff8082111561014857600080fd5b818401915084601f83011261015c57600080fd5b81358181111561016e5761016e610108565b604051601f8201601f19908116603f0116810190838211818310171561019657610196610108565b816040528281528760208487010111156101af57600080fd5b826020860160208301376000928101602001929092525095945050505050565b80356001600160a01b03811681146101e657600080fd5b919050565b60008060008060008060c0878903121561020457600080fd5b61020d876101cf565b955061021b602088016101cf565b945060408701359350606087013592506080870135915061023e60a088016101cf565b90509295509295509295565b600060208083528351808285015260005b818110156102775785810183015185820160400152820161025b565b506000604082860101526040601f19601f830116850101925050509291505056fea2646970667358221220a3091693ddb2ca9ebb38baa348797a852c936d5e2b19c209eba45b1f73ba8ba664736f6c63430008130033", + "deployedBytecode": "608060405234801561001057600080fd5b50600436106100415760003560e01c8063188ec356146100465780635b6beeb91461005a578063a9a352091461006d575b600080fd5b425b60405190815260200160405180910390f35b61004861006836600461011e565b6100d8565b61004861007b3660046101eb565b604080516001600160a01b03978816602080830191909152968816818301526060810195909552608085019390935260a084019190915290931660c0808301919091528351808303909101815260e0909101909252815191012090565b6000816040516020016100eb919061024a565b604051602081830303815290604052805190602001209050919050565b634e487b7160e01b600052604160045260246000fd5b60006020828403121561013057600080fd5b813567ffffffffffffffff8082111561014857600080fd5b818401915084601f83011261015c57600080fd5b81358181111561016e5761016e610108565b604051601f8201601f19908116603f0116810190838211818310171561019657610196610108565b816040528281528760208487010111156101af57600080fd5b826020860160208301376000928101602001929092525095945050505050565b80356001600160a01b03811681146101e657600080fd5b919050565b60008060008060008060c0878903121561020457600080fd5b61020d876101cf565b955061021b602088016101cf565b945060408701359350606087013592506080870135915061023e60a088016101cf565b90509295509295509295565b600060208083528351808285015260005b818110156102775785810183015185820160400152820161025b565b506000604082860101526040601f19601f830116850101925050509291505056fea2646970667358221220a3091693ddb2ca9ebb38baa348797a852c936d5e2b19c209eba45b1f73ba8ba664736f6c63430008130033", + "sourceMap": "99:573:0:-:0;;;;;;;;;;;;;;;;;;;", + "deployedSourceMap": "99:573:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;261:100;339:15;261:100;;;160:25:1;;;148:2;133:18;261:100:0;;;;;;;131:124;;;;;;:::i;:::-;;:::i;367:303::-;;;;;;:::i;:::-;576:77;;;-1:-1:-1;;;;;3057:15:1;;;576:77:0;;;;3039:34:1;;;;3109:15;;;3089:18;;;3082:43;3141:18;;;3134:34;;;;3184:18;;;3177:34;;;;3227:19;;;3220:35;;;;3292:15;;;3271:19;;;;3264:44;;;;576:77:0;;;;;;;;;;2973:19:1;;;;576:77:0;;;553:110;;;;;;367:303;131:124;189:14;242:4;231:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;221:27;;;;;;214:34;;131:124;;;:::o;196:127:1:-;257:10;252:3;248:20;245:1;238:31;288:4;285:1;278:15;312:4;309:1;302:15;328:922;397:6;450:2;438:9;429:7;425:23;421:32;418:52;;;466:1;463;456:12;418:52;506:9;493:23;535:18;576:2;568:6;565:14;562:34;;;592:1;589;582:12;562:34;630:6;619:9;615:22;605:32;;675:7;668:4;664:2;660:13;656:27;646:55;;697:1;694;687:12;646:55;733:2;720:16;755:2;751;748:10;745:36;;;761:18;;:::i;:::-;836:2;830:9;804:2;890:13;;-1:-1:-1;;886:22:1;;;910:2;882:31;878:40;866:53;;;934:18;;;954:22;;;931:46;928:72;;;980:18;;:::i;:::-;1020:10;1016:2;1009:22;1055:2;1047:6;1040:18;1095:7;1090:2;1085;1081;1077:11;1073:20;1070:33;1067:53;;;1116:1;1113;1106:12;1067:53;1172:2;1167;1163;1159:11;1154:2;1146:6;1142:15;1129:46;1217:1;1195:15;;;1212:2;1191:24;1184:35;;;;-1:-1:-1;1199:6:1;328:922;-1:-1:-1;;;;;328:922:1:o;1437:173::-;1505:20;;-1:-1:-1;;;;;1554:31:1;;1544:42;;1534:70;;1600:1;1597;1590:12;1534:70;1437:173;;;:::o;1615:541::-;1719:6;1727;1735;1743;1751;1759;1812:3;1800:9;1791:7;1787:23;1783:33;1780:53;;;1829:1;1826;1819:12;1780:53;1852:29;1871:9;1852:29;:::i;:::-;1842:39;;1900:38;1934:2;1923:9;1919:18;1900:38;:::i;:::-;1890:48;;1985:2;1974:9;1970:18;1957:32;1947:42;;2036:2;2025:9;2021:18;2008:32;1998:42;;2087:3;2076:9;2072:19;2059:33;2049:43;;2111:39;2145:3;2134:9;2130:19;2111:39;:::i;:::-;2101:49;;1615:541;;;;;;;;:::o;2161:548::-;2273:4;2302:2;2331;2320:9;2313:21;2363:6;2357:13;2406:6;2401:2;2390:9;2386:18;2379:34;2431:1;2441:140;2455:6;2452:1;2449:13;2441:140;;;2550:14;;;2546:23;;2540:30;2516:17;;;2535:2;2512:26;2505:66;2470:10;;2441:140;;;2445:3;2630:1;2625:2;2616:6;2605:9;2601:22;2597:31;2590:42;2700:2;2693;2689:7;2684:2;2676:6;2672:15;2668:29;2657:9;2653:45;2649:54;2641:62;;;;2161:548;;;;:::o", + "sourcePath": "/home/peter/a/cacti-2/packages/cactus-test-plugin-htlc-eth-besu-erc20/src/test/solidity/token-erc20-contract/DemoHelpers.sol", + "compiler": { + "name": "solc", + "version": "0.8.19+commit.7dd6d404" + }, + "ast": { + "absolutePath": "/home/peter/a/cacti-2/packages/cactus-test-plugin-htlc-eth-besu-erc20/src/test/solidity/token-erc20-contract/DemoHelpers.sol", + "exportedSymbols": { + "DemoHelpers": [ + 57 + ] + }, + "id": 58, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "0.8", + ".19" + ], + "nodeType": "PragmaDirective", + "src": "40:23:0" }, { - "body": { - "nodeType": "YulBlock", - "src": "1236:839:2", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "1283:16:2", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1292:1:2", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1295:1:2", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "1285:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "1285:12:2" - }, - "nodeType": "YulExpressionStatement", - "src": "1285:12:2" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "1257:7:2" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1266:9:2" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "1253:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "1253:23:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1278:3:2", - "type": "", - "value": "192" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "1249:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "1249:33:2" - }, - "nodeType": "YulIf", - "src": "1246:2:2" - }, - { - "nodeType": "YulBlock", - "src": "1309:117:2", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "1324:15:2", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1338:1:2", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "1328:6:2", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "1353:63:2", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1388:9:2" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "1399:6:2" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1384:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "1384:22:2" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "1408:7:2" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nodeType": "YulIdentifier", - "src": "1363:20:2" - }, - "nodeType": "YulFunctionCall", - "src": "1363:53:2" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "1353:6:2" - } - ] - } - ] - }, - { - "nodeType": "YulBlock", - "src": "1436:118:2", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "1451:16:2", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1465:2:2", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "1455:6:2", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "1481:63:2", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1516:9:2" - }, + "id": 2, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "64:33:0" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "DemoHelpers", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 57, + "linearizedBaseContracts": [ + 57 + ], + "name": "DemoHelpers", + "nameLocation": "108:11:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 16, + "nodeType": "Block", + "src": "205:50:0", + "statements": [ { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "1527:6:2" + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 12, + "name": "_key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4, + "src": "242:4:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "id": 10, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "231:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 11, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "235:6:0", + "memberName": "encode", + "nodeType": "MemberAccess", + "src": "231:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 13, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "231:16:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 9, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967288, + "src": "221:9:0", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 14, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "221:27:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 8, + "id": 15, + "nodeType": "Return", + "src": "214:34:0" } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1512:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "1512:22:2" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "1536:7:2" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nodeType": "YulIdentifier", - "src": "1491:20:2" - }, - "nodeType": "YulFunctionCall", - "src": "1491:53:2" - }, - "variableNames": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "1481:6:2" - } - ] - } - ] - }, - { - "nodeType": "YulBlock", - "src": "1564:118:2", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "1579:16:2", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1593:2:2", - "type": "", - "value": "64" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "1583:6:2", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "1609:63:2", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1644:9:2" - }, + ] + }, + "functionSelector": "5b6beeb9", + "id": 17, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getHash", + "nameLocation": "140:7:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5, + "nodeType": "ParameterList", + "parameters": [ { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "1655:6:2" + "constant": false, + "id": 4, + "mutability": "mutable", + "name": "_key", + "nameLocation": "162:4:0", + "nodeType": "VariableDeclaration", + "scope": 17, + "src": "148:18:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "148:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1640:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "1640:22:2" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "1664:7:2" - } - ], - "functionName": { - "name": "abi_decode_t_uint256", - "nodeType": "YulIdentifier", - "src": "1619:20:2" - }, - "nodeType": "YulFunctionCall", - "src": "1619:53:2" - }, - "variableNames": [ - { - "name": "value2", - "nodeType": "YulIdentifier", - "src": "1609:6:2" - } - ] - } - ] - }, - { - "nodeType": "YulBlock", - "src": "1692:118:2", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "1707:16:2", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1721:2:2", - "type": "", - "value": "96" + ], + "src": "147:20:0" }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "1711:6:2", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "1737:63:2", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1772:9:2" - }, + "returnParameters": { + "id": 8, + "nodeType": "ParameterList", + "parameters": [ { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "1783:6:2" + "constant": false, + "id": 7, + "mutability": "mutable", + "name": "result", + "nameLocation": "197:6:0", + "nodeType": "VariableDeclaration", + "scope": 17, + "src": "189:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "189:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1768:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "1768:22:2" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "1792:7:2" - } - ], - "functionName": { - "name": "abi_decode_t_bytes32", - "nodeType": "YulIdentifier", - "src": "1747:20:2" - }, - "nodeType": "YulFunctionCall", - "src": "1747:53:2" - }, - "variableNames": [ - { - "name": "value3", - "nodeType": "YulIdentifier", - "src": "1737:6:2" - } - ] - } - ] - }, - { - "nodeType": "YulBlock", - "src": "1820:119:2", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "1835:17:2", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1849:3:2", - "type": "", - "value": "128" + ], + "src": "188:16:0" }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "1839:6:2", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "1866:63:2", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1901:9:2" - }, + "scope": 57, + "src": "131:124:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 25, + "nodeType": "Block", + "src": "322:39:0", + "statements": [ { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "1912:6:2" + "expression": { + "expression": { + "id": 22, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967292, + "src": "339:5:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 23, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "345:9:0", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "339:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 21, + "id": 24, + "nodeType": "Return", + "src": "332:22:0" } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1897:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "1897:22:2" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "1921:7:2" - } - ], - "functionName": { - "name": "abi_decode_t_uint256", - "nodeType": "YulIdentifier", - "src": "1876:20:2" - }, - "nodeType": "YulFunctionCall", - "src": "1876:53:2" - }, - "variableNames": [ - { - "name": "value4", - "nodeType": "YulIdentifier", - "src": "1866:6:2" - } - ] - } - ] - }, - { - "nodeType": "YulBlock", - "src": "1949:119:2", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "1964:17:2", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1978:3:2", - "type": "", - "value": "160" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "1968:6:2", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "1995:63:2", - "value": { - "arguments": [ - { - "arguments": [ + ] + }, + "functionSelector": "188ec356", + "id": 26, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getTimestamp", + "nameLocation": "270:12:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 18, + "nodeType": "ParameterList", + "parameters": [], + "src": "282:2:0" + }, + "returnParameters": { + "id": 21, + "nodeType": "ParameterList", + "parameters": [ { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "2030:9:2" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "2041:6:2" + "constant": false, + "id": 20, + "mutability": "mutable", + "name": "result", + "nameLocation": "314:6:0", + "nodeType": "VariableDeclaration", + "scope": 26, + "src": "306:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 19, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "306:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2026:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "2026:22:2" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "2050:7:2" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nodeType": "YulIdentifier", - "src": "2005:20:2" - }, - "nodeType": "YulFunctionCall", - "src": "2005:53:2" - }, - "variableNames": [ - { - "name": "value5", - "nodeType": "YulIdentifier", - "src": "1995:6:2" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_addresst_addresst_uint256t_bytes32t_uint256t_address", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "1166:9:2", - "type": "" - }, - { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "1177:7:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "1189:6:2", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "1197:6:2", - "type": "" - }, - { - "name": "value2", - "nodeType": "YulTypedName", - "src": "1205:6:2", - "type": "" - }, - { - "name": "value3", - "nodeType": "YulTypedName", - "src": "1213:6:2", - "type": "" - }, - { - "name": "value4", - "nodeType": "YulTypedName", - "src": "1221:6:2", - "type": "" - }, - { - "name": "value5", - "nodeType": "YulTypedName", - "src": "1229:6:2", - "type": "" - } - ], - "src": "1085:990:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "2157:299:2", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "2203:16:2", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2212:1:2", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2215:1:2", - "type": "", - "value": "0" - } ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "2205:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "2205:12:2" - }, - "nodeType": "YulExpressionStatement", - "src": "2205:12:2" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "2178:7:2" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "2187:9:2" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "2174:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "2174:23:2" + "src": "305:16:0" }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2199:2:2", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "2170:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "2170:32:2" + "scope": 57, + "src": "261:100:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" }, - "nodeType": "YulIf", - "src": "2167:2:2" - }, - { - "nodeType": "YulBlock", - "src": "2229:220:2", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "2244:45:2", - "value": { - "arguments": [ - { - "arguments": [ + { + "body": { + "id": 55, + "nodeType": "Block", + "src": "536:134:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 46, + "name": "sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28, + "src": "587:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 47, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30, + "src": "595:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 48, + "name": "inputAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32, + "src": "605:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 49, + "name": "hashLock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34, + "src": "618:8:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 50, + "name": "expiration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 36, + "src": "628:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 51, + "name": "tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38, + "src": "640:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 44, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "576:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 45, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "580:6:0", + "memberName": "encode", + "nodeType": "MemberAccess", + "src": "576:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 52, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "576:77:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 43, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967288, + "src": "553:9:0", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 53, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "553:110:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 42, + "id": 54, + "nodeType": "Return", + "src": "546:117:0" + } + ] + }, + "functionSelector": "a9a35209", + "id": 56, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getTxId", + "nameLocation": "376:7:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 39, + "nodeType": "ParameterList", + "parameters": [ { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "2275:9:2" + "constant": false, + "id": 28, + "mutability": "mutable", + "name": "sender", + "nameLocation": "392:6:0", + "nodeType": "VariableDeclaration", + "scope": 56, + "src": "384:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 27, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "384:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" }, { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2286:1:2", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2271:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "2271:17:2" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "2258:12:2" - }, - "nodeType": "YulFunctionCall", - "src": "2258:31:2" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "2248:6:2", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "2336:16:2", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2345:1:2", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2348:1:2", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "2338:6:2" + "constant": false, + "id": 30, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "408:8:0", + "nodeType": "VariableDeclaration", + "scope": 56, + "src": "400:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "400:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" }, - "nodeType": "YulFunctionCall", - "src": "2338:12:2" - }, - "nodeType": "YulExpressionStatement", - "src": "2338:12:2" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "2308:6:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2316:18:2", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "2305:2:2" - }, - "nodeType": "YulFunctionCall", - "src": "2305:30:2" - }, - "nodeType": "YulIf", - "src": "2302:2:2" - }, - { - "nodeType": "YulAssignment", - "src": "2366:73:2", - "value": { - "arguments": [ - { - "arguments": [ { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "2411:9:2" + "constant": false, + "id": 32, + "mutability": "mutable", + "name": "inputAmount", + "nameLocation": "426:11:0", + "nodeType": "VariableDeclaration", + "scope": 56, + "src": "418:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 31, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "418:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" }, { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "2422:6:2" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2407:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "2407:22:2" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "2431:7:2" - } - ], - "functionName": { - "name": "abi_decode_t_string_memory_ptr", - "nodeType": "YulIdentifier", - "src": "2376:30:2" - }, - "nodeType": "YulFunctionCall", - "src": "2376:63:2" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "2366:6:2" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_string_memory_ptr", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "2127:9:2", - "type": "" - }, - { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "2138:7:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "2150:6:2", - "type": "" - } - ], - "src": "2081:375:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "2545:74:2", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "2562:3:2" - }, - { - "arguments": [ - { - "arguments": [ + "constant": false, + "id": 34, + "mutability": "mutable", + "name": "hashLock", + "nameLocation": "447:8:0", + "nodeType": "VariableDeclaration", + "scope": 56, + "src": "439:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 33, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "439:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, { - "name": "value", - "nodeType": "YulIdentifier", - "src": "2605:5:2" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nodeType": "YulIdentifier", - "src": "2587:17:2" - }, - "nodeType": "YulFunctionCall", - "src": "2587:24:2" - } - ], - "functionName": { - "name": "leftAlign_t_address", - "nodeType": "YulIdentifier", - "src": "2567:19:2" - }, - "nodeType": "YulFunctionCall", - "src": "2567:45:2" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "2555:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "2555:58:2" - }, - "nodeType": "YulExpressionStatement", - "src": "2555:58:2" - } - ] - }, - "name": "abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "2533:5:2", - "type": "" - }, - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "2540:3:2", - "type": "" - } - ], - "src": "2462:157:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "2690:53:2", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "2707:3:2" - }, - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "2730:5:2" - } - ], - "functionName": { - "name": "cleanup_t_bytes32", - "nodeType": "YulIdentifier", - "src": "2712:17:2" - }, - "nodeType": "YulFunctionCall", - "src": "2712:24:2" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "2700:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "2700:37:2" - }, - "nodeType": "YulExpressionStatement", - "src": "2700:37:2" - } - ] - }, - "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "2678:5:2", - "type": "" - }, - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "2685:3:2", - "type": "" - } - ], - "src": "2625:118:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "2832:74:2", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "2849:3:2" - }, - { - "arguments": [ - { - "arguments": [ + "constant": false, + "id": 36, + "mutability": "mutable", + "name": "expiration", + "nameLocation": "465:10:0", + "nodeType": "VariableDeclaration", + "scope": 56, + "src": "457:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 35, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "457:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, { - "name": "value", - "nodeType": "YulIdentifier", - "src": "2892:5:2" + "constant": false, + "id": 38, + "mutability": "mutable", + "name": "tokenAddress", + "nameLocation": "485:12:0", + "nodeType": "VariableDeclaration", + "scope": 56, + "src": "477:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 37, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "477:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" } - ], - "functionName": { - "name": "cleanup_t_bytes32", - "nodeType": "YulIdentifier", - "src": "2874:17:2" - }, - "nodeType": "YulFunctionCall", - "src": "2874:24:2" - } - ], - "functionName": { - "name": "leftAlign_t_bytes32", - "nodeType": "YulIdentifier", - "src": "2854:19:2" - }, - "nodeType": "YulFunctionCall", - "src": "2854:45:2" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "2842:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "2842:58:2" - }, - "nodeType": "YulExpressionStatement", - "src": "2842:58:2" - } - ] - }, - "name": "abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "2820:5:2", - "type": "" - }, - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "2827:3:2", - "type": "" - } - ], - "src": "2749:157:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "3022:267:2", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "3032:53:2", - "value": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "3079:5:2" - } - ], - "functionName": { - "name": "array_length_t_string_memory_ptr", - "nodeType": "YulIdentifier", - "src": "3046:32:2" - }, - "nodeType": "YulFunctionCall", - "src": "3046:39:2" - }, - "variables": [ - { - "name": "length", - "nodeType": "YulTypedName", - "src": "3036:6:2", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "3094:96:2", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "3178:3:2" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "3183:6:2" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", - "nodeType": "YulIdentifier", - "src": "3101:76:2" - }, - "nodeType": "YulFunctionCall", - "src": "3101:89:2" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "3094:3:2" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "3225:5:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3232:4:2", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3221:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "3221:16:2" - }, - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "3239:3:2" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "3244:6:2" - } - ], - "functionName": { - "name": "copy_memory_to_memory", - "nodeType": "YulIdentifier", - "src": "3199:21:2" - }, - "nodeType": "YulFunctionCall", - "src": "3199:52:2" - }, - "nodeType": "YulExpressionStatement", - "src": "3199:52:2" - }, - { - "nodeType": "YulAssignment", - "src": "3260:23:2", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "3271:3:2" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "3276:6:2" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3267:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "3267:16:2" - }, - "variableNames": [ - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "3260:3:2" - } - ] - } - ] - }, - "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "3003:5:2", - "type": "" - }, - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "3010:3:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nodeType": "YulTypedName", - "src": "3018:3:2", - "type": "" - } - ], - "src": "2912:377:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "3360:53:2", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "3377:3:2" - }, - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "3400:5:2" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nodeType": "YulIdentifier", - "src": "3382:17:2" - }, - "nodeType": "YulFunctionCall", - "src": "3382:24:2" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "3370:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "3370:37:2" - }, - "nodeType": "YulExpressionStatement", - "src": "3370:37:2" - } - ] - }, - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "3348:5:2", - "type": "" - }, - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "3355:3:2", - "type": "" - } - ], - "src": "3295:118:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "3502:74:2", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "3519:3:2" + ], + "src": "383:115:0" }, - { - "arguments": [ - { - "arguments": [ + "returnParameters": { + "id": 42, + "nodeType": "ParameterList", + "parameters": [ { - "name": "value", - "nodeType": "YulIdentifier", - "src": "3562:5:2" + "constant": false, + "id": 41, + "mutability": "mutable", + "name": "result", + "nameLocation": "528:6:0", + "nodeType": "VariableDeclaration", + "scope": 56, + "src": "520:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 40, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "520:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nodeType": "YulIdentifier", - "src": "3544:17:2" - }, - "nodeType": "YulFunctionCall", - "src": "3544:24:2" - } - ], - "functionName": { - "name": "leftAlign_t_uint256", - "nodeType": "YulIdentifier", - "src": "3524:19:2" - }, - "nodeType": "YulFunctionCall", - "src": "3524:45:2" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "3512:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "3512:58:2" - }, - "nodeType": "YulExpressionStatement", - "src": "3512:58:2" - } - ] - }, - "name": "abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "3490:5:2", - "type": "" - }, - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "3497:3:2", - "type": "" - } - ], - "src": "3419:157:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "3838:705:2", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "3911:6:2" - }, - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "3920:3:2" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack", - "nodeType": "YulIdentifier", - "src": "3849:61:2" - }, - "nodeType": "YulFunctionCall", - "src": "3849:75:2" - }, - "nodeType": "YulExpressionStatement", - "src": "3849:75:2" - }, - { - "nodeType": "YulAssignment", - "src": "3933:19:2", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "3944:3:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3949:2:2", - "type": "", - "value": "20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3940:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "3940:12:2" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "3933:3:2" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "4024:6:2" - }, - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "4033:3:2" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack", - "nodeType": "YulIdentifier", - "src": "3962:61:2" - }, - "nodeType": "YulFunctionCall", - "src": "3962:75:2" - }, - "nodeType": "YulExpressionStatement", - "src": "3962:75:2" - }, - { - "nodeType": "YulAssignment", - "src": "4046:19:2", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "4057:3:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4062:2:2", - "type": "", - "value": "20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4053:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "4053:12:2" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "4046:3:2" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value2", - "nodeType": "YulIdentifier", - "src": "4137:6:2" - }, - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "4146:3:2" - } - ], - "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack", - "nodeType": "YulIdentifier", - "src": "4075:61:2" - }, - "nodeType": "YulFunctionCall", - "src": "4075:75:2" - }, - "nodeType": "YulExpressionStatement", - "src": "4075:75:2" - }, - { - "nodeType": "YulAssignment", - "src": "4159:19:2", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "4170:3:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4175:2:2", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4166:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "4166:12:2" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "4159:3:2" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value3", - "nodeType": "YulIdentifier", - "src": "4250:6:2" - }, - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "4259:3:2" - } - ], - "functionName": { - "name": "abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack", - "nodeType": "YulIdentifier", - "src": "4188:61:2" - }, - "nodeType": "YulFunctionCall", - "src": "4188:75:2" - }, - "nodeType": "YulExpressionStatement", - "src": "4188:75:2" - }, - { - "nodeType": "YulAssignment", - "src": "4272:19:2", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "4283:3:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4288:2:2", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4279:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "4279:12:2" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "4272:3:2" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value4", - "nodeType": "YulIdentifier", - "src": "4363:6:2" - }, - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "4372:3:2" - } - ], - "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack", - "nodeType": "YulIdentifier", - "src": "4301:61:2" - }, - "nodeType": "YulFunctionCall", - "src": "4301:75:2" - }, - "nodeType": "YulExpressionStatement", - "src": "4301:75:2" - }, - { - "nodeType": "YulAssignment", - "src": "4385:19:2", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "4396:3:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4401:2:2", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4392:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "4392:12:2" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "4385:3:2" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value5", - "nodeType": "YulIdentifier", - "src": "4476:6:2" - }, - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "4485:3:2" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack", - "nodeType": "YulIdentifier", - "src": "4414:61:2" - }, - "nodeType": "YulFunctionCall", - "src": "4414:75:2" - }, - "nodeType": "YulExpressionStatement", - "src": "4414:75:2" - }, - { - "nodeType": "YulAssignment", - "src": "4498:19:2", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "4509:3:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4514:2:2", - "type": "", - "value": "20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4505:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "4505:12:2" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "4498:3:2" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "4527:10:2", - "value": { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "4534:3:2" - }, - "variableNames": [ - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "4527:3:2" - } - ] - } - ] - }, - "name": "abi_encode_tuple_packed_t_address_t_address_t_uint256_t_bytes32_t_uint256_t_address__to_t_address_t_address_t_uint256_t_bytes32_t_uint256_t_address__nonPadded_inplace_fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "3777:3:2", - "type": "" - }, - { - "name": "value5", - "nodeType": "YulTypedName", - "src": "3783:6:2", - "type": "" - }, - { - "name": "value4", - "nodeType": "YulTypedName", - "src": "3791:6:2", - "type": "" - }, - { - "name": "value3", - "nodeType": "YulTypedName", - "src": "3799:6:2", - "type": "" - }, - { - "name": "value2", - "nodeType": "YulTypedName", - "src": "3807:6:2", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "3815:6:2", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "3823:6:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nodeType": "YulTypedName", - "src": "3834:3:2", - "type": "" - } - ], - "src": "3582:961:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "4685:139:2", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "4696:102:2", - "value": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "4785:6:2" - }, - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "4794:3:2" - } - ], - "functionName": { - "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", - "nodeType": "YulIdentifier", - "src": "4703:81:2" - }, - "nodeType": "YulFunctionCall", - "src": "4703:95:2" - }, - "variableNames": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "4696:3:2" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "4808:10:2", - "value": { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "4815:3:2" - }, - "variableNames": [ - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "4808:3:2" - } - ] - } - ] - }, - "name": "abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "4664:3:2", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "4670:6:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nodeType": "YulTypedName", - "src": "4681:3:2", - "type": "" - } - ], - "src": "4549:275:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "4928:124:2", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "4938:26:2", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "4950:9:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "4961:2:2", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "4946:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "4946:18:2" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "4938:4:2" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "5018:6:2" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "5031:9:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5042:1:2", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "5027:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "5027:17:2" - } - ], - "functionName": { - "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", - "nodeType": "YulIdentifier", - "src": "4974:43:2" - }, - "nodeType": "YulFunctionCall", - "src": "4974:71:2" - }, - "nodeType": "YulExpressionStatement", - "src": "4974:71:2" - } - ] - }, - "name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "4900:9:2", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "4912:6:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "4923:4:2", - "type": "" - } - ], - "src": "4830:222:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "5156:124:2", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "5166:26:2", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "5178:9:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5189:2:2", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "5174:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "5174:18:2" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "5166:4:2" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "5246:6:2" - }, - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "5259:9:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5270:1:2", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "5255:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "5255:17:2" - } - ], - "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nodeType": "YulIdentifier", - "src": "5202:43:2" - }, - "nodeType": "YulFunctionCall", - "src": "5202:71:2" - }, - "nodeType": "YulExpressionStatement", - "src": "5202:71:2" - } - ] - }, - "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "5128:9:2", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "5140:6:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "5151:4:2", - "type": "" - } - ], - "src": "5058:222:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "5326:243:2", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "5336:19:2", - "value": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5352:2:2", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "5346:5:2" - }, - "nodeType": "YulFunctionCall", - "src": "5346:9:2" - }, - "variableNames": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "5336:6:2" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "5364:35:2", - "value": { - "arguments": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "5386:6:2" - }, - { - "name": "size", - "nodeType": "YulIdentifier", - "src": "5394:4:2" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "5382:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "5382:17:2" - }, - "variables": [ - { - "name": "newFreePtr", - "nodeType": "YulTypedName", - "src": "5368:10:2", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "5510:22:2", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nodeType": "YulIdentifier", - "src": "5512:16:2" - }, - "nodeType": "YulFunctionCall", - "src": "5512:18:2" - }, - "nodeType": "YulExpressionStatement", - "src": "5512:18:2" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "newFreePtr", - "nodeType": "YulIdentifier", - "src": "5453:10:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5465:18:2", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "5450:2:2" - }, - "nodeType": "YulFunctionCall", - "src": "5450:34:2" - }, - { - "arguments": [ - { - "name": "newFreePtr", - "nodeType": "YulIdentifier", - "src": "5489:10:2" - }, - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "5501:6:2" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "5486:2:2" - }, - "nodeType": "YulFunctionCall", - "src": "5486:22:2" - } - ], - "functionName": { - "name": "or", - "nodeType": "YulIdentifier", - "src": "5447:2:2" - }, - "nodeType": "YulFunctionCall", - "src": "5447:62:2" - }, - "nodeType": "YulIf", - "src": "5444:2:2" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5548:2:2", - "type": "", - "value": "64" - }, - { - "name": "newFreePtr", - "nodeType": "YulIdentifier", - "src": "5552:10:2" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "5541:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "5541:22:2" - }, - "nodeType": "YulExpressionStatement", - "src": "5541:22:2" - } - ] - }, - "name": "allocateMemory", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "size", - "nodeType": "YulTypedName", - "src": "5310:4:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "memPtr", - "nodeType": "YulTypedName", - "src": "5319:6:2", - "type": "" - } - ], - "src": "5286:283:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "5642:265:2", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "5747:22:2", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nodeType": "YulIdentifier", - "src": "5749:16:2" - }, - "nodeType": "YulFunctionCall", - "src": "5749:18:2" - }, - "nodeType": "YulExpressionStatement", - "src": "5749:18:2" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "5719:6:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5727:18:2", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "5716:2:2" - }, - "nodeType": "YulFunctionCall", - "src": "5716:30:2" - }, - "nodeType": "YulIf", - "src": "5713:2:2" - }, - { - "nodeType": "YulAssignment", - "src": "5799:41:2", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "5815:6:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5823:4:2", - "type": "", - "value": "0x1f" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "5811:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "5811:17:2" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5834:4:2", - "type": "", - "value": "0x1f" - } - ], - "functionName": { - "name": "not", - "nodeType": "YulIdentifier", - "src": "5830:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "5830:9:2" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "5807:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "5807:33:2" - }, - "variableNames": [ - { - "name": "size", - "nodeType": "YulIdentifier", - "src": "5799:4:2" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "5877:23:2", - "value": { - "arguments": [ - { - "name": "size", - "nodeType": "YulIdentifier", - "src": "5889:4:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "5895:4:2", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "5885:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "5885:15:2" - }, - "variableNames": [ - { - "name": "size", - "nodeType": "YulIdentifier", - "src": "5877:4:2" - } - ] - } - ] - }, - "name": "array_allocation_size_t_string_memory_ptr", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "length", - "nodeType": "YulTypedName", - "src": "5626:6:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "size", - "nodeType": "YulTypedName", - "src": "5637:4:2", - "type": "" - } - ], - "src": "5575:332:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "5972:40:2", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "5983:22:2", - "value": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "5999:5:2" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "5993:5:2" - }, - "nodeType": "YulFunctionCall", - "src": "5993:12:2" - }, - "variableNames": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "5983:6:2" - } - ] - } - ] - }, - "name": "array_length_t_string_memory_ptr", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "5955:5:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "length", - "nodeType": "YulTypedName", - "src": "5965:6:2", - "type": "" - } - ], - "src": "5913:99:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "6132:34:2", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "6142:18:2", - "value": { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "6157:3:2" - }, - "variableNames": [ - { - "name": "updated_pos", - "nodeType": "YulIdentifier", - "src": "6142:11:2" - } - ] - } - ] - }, - "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "6104:3:2", - "type": "" - }, - { - "name": "length", - "nodeType": "YulTypedName", - "src": "6109:6:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "updated_pos", - "nodeType": "YulTypedName", - "src": "6120:11:2", - "type": "" - } - ], - "src": "6018:148:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "6217:51:2", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "6227:35:2", - "value": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "6256:5:2" - } - ], - "functionName": { - "name": "cleanup_t_uint160", - "nodeType": "YulIdentifier", - "src": "6238:17:2" - }, - "nodeType": "YulFunctionCall", - "src": "6238:24:2" - }, - "variableNames": [ - { - "name": "cleaned", - "nodeType": "YulIdentifier", - "src": "6227:7:2" - } - ] - } - ] - }, - "name": "cleanup_t_address", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "6199:5:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nodeType": "YulTypedName", - "src": "6209:7:2", - "type": "" - } - ], - "src": "6172:96:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "6319:32:2", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "6329:16:2", - "value": { - "name": "value", - "nodeType": "YulIdentifier", - "src": "6340:5:2" - }, - "variableNames": [ - { - "name": "cleaned", - "nodeType": "YulIdentifier", - "src": "6329:7:2" - } - ] - } - ] - }, - "name": "cleanup_t_bytes32", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "6301:5:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nodeType": "YulTypedName", - "src": "6311:7:2", - "type": "" - } - ], - "src": "6274:77:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "6402:81:2", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "6412:65:2", - "value": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "6427:5:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6434:42:2", - "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffff" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "6423:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "6423:54:2" - }, - "variableNames": [ - { - "name": "cleaned", - "nodeType": "YulIdentifier", - "src": "6412:7:2" - } - ] - } - ] - }, - "name": "cleanup_t_uint160", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "6384:5:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nodeType": "YulTypedName", - "src": "6394:7:2", - "type": "" - } - ], - "src": "6357:126:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "6534:32:2", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "6544:16:2", - "value": { - "name": "value", - "nodeType": "YulIdentifier", - "src": "6555:5:2" - }, - "variableNames": [ - { - "name": "cleaned", - "nodeType": "YulIdentifier", - "src": "6544:7:2" - } - ] - } - ] - }, - "name": "cleanup_t_uint256", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "6516:5:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nodeType": "YulTypedName", - "src": "6526:7:2", - "type": "" - } - ], - "src": "6489:77:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "6623:103:2", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "dst", - "nodeType": "YulIdentifier", - "src": "6646:3:2" - }, - { - "name": "src", - "nodeType": "YulIdentifier", - "src": "6651:3:2" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "6656:6:2" - } - ], - "functionName": { - "name": "calldatacopy", - "nodeType": "YulIdentifier", - "src": "6633:12:2" - }, - "nodeType": "YulFunctionCall", - "src": "6633:30:2" - }, - "nodeType": "YulExpressionStatement", - "src": "6633:30:2" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "dst", - "nodeType": "YulIdentifier", - "src": "6704:3:2" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "6709:6:2" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6700:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "6700:16:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6718:1:2", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "6693:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "6693:27:2" - }, - "nodeType": "YulExpressionStatement", - "src": "6693:27:2" - } - ] - }, - "name": "copy_calldata_to_memory", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "src", - "nodeType": "YulTypedName", - "src": "6605:3:2", - "type": "" - }, - { - "name": "dst", - "nodeType": "YulTypedName", - "src": "6610:3:2", - "type": "" - }, - { - "name": "length", - "nodeType": "YulTypedName", - "src": "6615:6:2", - "type": "" - } - ], - "src": "6572:154:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "6781:258:2", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "6791:10:2", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6800:1:2", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "i", - "nodeType": "YulTypedName", - "src": "6795:1:2", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "6860:63:2", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "dst", - "nodeType": "YulIdentifier", - "src": "6885:3:2" - }, - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "6890:1:2" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6881:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "6881:11:2" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nodeType": "YulIdentifier", - "src": "6904:3:2" - }, - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "6909:1:2" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6900:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "6900:11:2" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "6894:5:2" - }, - "nodeType": "YulFunctionCall", - "src": "6894:18:2" - } ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "6874:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "6874:39:2" - }, - "nodeType": "YulExpressionStatement", - "src": "6874:39:2" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "6821:1:2" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "6824:6:2" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "6818:2:2" - }, - "nodeType": "YulFunctionCall", - "src": "6818:13:2" - }, - "nodeType": "YulForLoop", - "post": { - "nodeType": "YulBlock", - "src": "6832:19:2", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "6834:15:2", - "value": { - "arguments": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "6843:1:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "6846:2:2", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "6839:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "6839:10:2" - }, - "variableNames": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "6834:1:2" - } - ] - } - ] - }, - "pre": { - "nodeType": "YulBlock", - "src": "6814:3:2", - "statements": [] - }, - "src": "6810:113:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "6957:76:2", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "dst", - "nodeType": "YulIdentifier", - "src": "7007:3:2" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "7012:6:2" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "7003:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "7003:16:2" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7021:1:2", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "6996:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "6996:27:2" - }, - "nodeType": "YulExpressionStatement", - "src": "6996:27:2" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "6938:1:2" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "6941:6:2" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "6935:2:2" - }, - "nodeType": "YulFunctionCall", - "src": "6935:13:2" - }, - "nodeType": "YulIf", - "src": "6932:2:2" - } - ] - }, - "name": "copy_memory_to_memory", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "src", - "nodeType": "YulTypedName", - "src": "6763:3:2", - "type": "" - }, - { - "name": "dst", - "nodeType": "YulTypedName", - "src": "6768:3:2", - "type": "" - }, - { - "name": "length", - "nodeType": "YulTypedName", - "src": "6773:6:2", - "type": "" - } - ], - "src": "6732:307:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "7092:53:2", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "7102:37:2", - "value": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "7133:5:2" - } - ], - "functionName": { - "name": "leftAlign_t_uint160", - "nodeType": "YulIdentifier", - "src": "7113:19:2" - }, - "nodeType": "YulFunctionCall", - "src": "7113:26:2" - }, - "variableNames": [ - { - "name": "aligned", - "nodeType": "YulIdentifier", - "src": "7102:7:2" - } - ] - } - ] - }, - "name": "leftAlign_t_address", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "7074:5:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "aligned", - "nodeType": "YulTypedName", - "src": "7084:7:2", - "type": "" - } - ], - "src": "7045:100:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "7198:32:2", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "7208:16:2", - "value": { - "name": "value", - "nodeType": "YulIdentifier", - "src": "7219:5:2" - }, - "variableNames": [ - { - "name": "aligned", - "nodeType": "YulIdentifier", - "src": "7208:7:2" - } - ] - } - ] - }, - "name": "leftAlign_t_bytes32", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "7180:5:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "aligned", - "nodeType": "YulTypedName", - "src": "7190:7:2", - "type": "" - } - ], - "src": "7151:79:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "7283:47:2", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "7293:31:2", - "value": { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "7318:5:2" - } - ], - "functionName": { - "name": "shift_left_96", - "nodeType": "YulIdentifier", - "src": "7304:13:2" - }, - "nodeType": "YulFunctionCall", - "src": "7304:20:2" - }, - "variableNames": [ - { - "name": "aligned", - "nodeType": "YulIdentifier", - "src": "7293:7:2" - } - ] - } - ] - }, - "name": "leftAlign_t_uint160", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "7265:5:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "aligned", - "nodeType": "YulTypedName", - "src": "7275:7:2", - "type": "" - } - ], - "src": "7236:94:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "7383:32:2", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "7393:16:2", - "value": { - "name": "value", - "nodeType": "YulIdentifier", - "src": "7404:5:2" - }, - "variableNames": [ - { - "name": "aligned", - "nodeType": "YulIdentifier", - "src": "7393:7:2" - } - ] - } - ] - }, - "name": "leftAlign_t_uint256", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "7365:5:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "aligned", - "nodeType": "YulTypedName", - "src": "7375:7:2", - "type": "" - } - ], - "src": "7336:79:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "7449:152:2", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7466:1:2", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7469:77:2", - "type": "", - "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "7459:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "7459:88:2" - }, - "nodeType": "YulExpressionStatement", - "src": "7459:88:2" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7563:1:2", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7566:4:2", - "type": "", - "value": "0x41" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "7556:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "7556:15:2" - }, - "nodeType": "YulExpressionStatement", - "src": "7556:15:2" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7587:1:2", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7590:4:2", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "7580:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "7580:15:2" - }, - "nodeType": "YulExpressionStatement", - "src": "7580:15:2" - } - ] - }, - "name": "panic_error_0x41", - "nodeType": "YulFunctionDefinition", - "src": "7421:180:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "7649:52:2", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "7659:35:2", - "value": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7684:2:2", - "type": "", - "value": "96" - }, - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "7688:5:2" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "7680:3:2" - }, - "nodeType": "YulFunctionCall", - "src": "7680:14:2" - }, - "variableNames": [ - { - "name": "newValue", - "nodeType": "YulIdentifier", - "src": "7659:8:2" - } - ] - } - ] - }, - "name": "shift_left_96", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "7630:5:2", - "type": "" - } - ], - "returnVariables": [ - { - "name": "newValue", - "nodeType": "YulTypedName", - "src": "7640:8:2", - "type": "" - } - ], - "src": "7607:94:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "7750:79:2", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "7807:16:2", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7816:1:2", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7819:1:2", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "7809:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "7809:12:2" - }, - "nodeType": "YulExpressionStatement", - "src": "7809:12:2" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "7773:5:2" - }, - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "7798:5:2" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nodeType": "YulIdentifier", - "src": "7780:17:2" - }, - "nodeType": "YulFunctionCall", - "src": "7780:24:2" - } - ], - "functionName": { - "name": "eq", - "nodeType": "YulIdentifier", - "src": "7770:2:2" - }, - "nodeType": "YulFunctionCall", - "src": "7770:35:2" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "7763:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "7763:43:2" - }, - "nodeType": "YulIf", - "src": "7760:2:2" - } - ] - }, - "name": "validator_revert_t_address", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "7743:5:2", - "type": "" - } - ], - "src": "7707:122:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "7878:79:2", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "7935:16:2", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7944:1:2", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "7947:1:2", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "7937:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "7937:12:2" - }, - "nodeType": "YulExpressionStatement", - "src": "7937:12:2" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "7901:5:2" - }, - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "7926:5:2" - } - ], - "functionName": { - "name": "cleanup_t_bytes32", - "nodeType": "YulIdentifier", - "src": "7908:17:2" - }, - "nodeType": "YulFunctionCall", - "src": "7908:24:2" - } - ], - "functionName": { - "name": "eq", - "nodeType": "YulIdentifier", - "src": "7898:2:2" - }, - "nodeType": "YulFunctionCall", - "src": "7898:35:2" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "7891:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "7891:43:2" - }, - "nodeType": "YulIf", - "src": "7888:2:2" - } - ] - }, - "name": "validator_revert_t_bytes32", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "7871:5:2", - "type": "" - } - ], - "src": "7835:122:2" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "8006:79:2", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "8063:16:2", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8072:1:2", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "8075:1:2", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "8065:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "8065:12:2" - }, - "nodeType": "YulExpressionStatement", - "src": "8065:12:2" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "8029:5:2" - }, - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "8054:5:2" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nodeType": "YulIdentifier", - "src": "8036:17:2" - }, - "nodeType": "YulFunctionCall", - "src": "8036:24:2" - } - ], - "functionName": { - "name": "eq", - "nodeType": "YulIdentifier", - "src": "8026:2:2" - }, - "nodeType": "YulFunctionCall", - "src": "8026:35:2" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "8019:6:2" - }, - "nodeType": "YulFunctionCall", - "src": "8019:43:2" - }, - "nodeType": "YulIf", - "src": "8016:2:2" - } - ] - }, - "name": "validator_revert_t_uint256", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "7999:5:2", - "type": "" - } - ], - "src": "7963:122:2" - } - ] - }, - "contents": "{\n\n function abi_decode_available_length_t_string_memory_ptr(src, length, end) -> array {\n array := allocateMemory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert(0, 0) }\n copy_calldata_to_memory(src, dst, length)\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_t_bytes32(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes32(value)\n }\n\n // string\n function abi_decode_t_string_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_string_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256t_bytes32t_uint256t_address(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5 {\n if slt(sub(dataEnd, headStart), 192) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 96\n\n value3 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 128\n\n value4 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 160\n\n value5 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_string_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n\n value0 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_address(cleanup_t_address(value)))\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_bytes32(cleanup_t_bytes32(value)))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack(value, pos) {\n mstore(pos, leftAlign_t_uint256(cleanup_t_uint256(value)))\n }\n\n function abi_encode_tuple_packed_t_address_t_address_t_uint256_t_bytes32_t_uint256_t_address__to_t_address_t_address_t_uint256_t_bytes32_t_uint256_t_address__nonPadded_inplace_fromStack_reversed(pos , value5, value4, value3, value2, value1, value0) -> end {\n\n abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value0, pos)\n pos := add(pos, 20)\n\n abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value1, pos)\n pos := add(pos, 20)\n\n abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack(value2, pos)\n pos := add(pos, 32)\n\n abi_encode_t_bytes32_to_t_bytes32_nonPadded_inplace_fromStack(value3, pos)\n pos := add(pos, 32)\n\n abi_encode_t_uint256_to_t_uint256_nonPadded_inplace_fromStack(value4, pos)\n pos := add(pos, 32)\n\n abi_encode_t_address_to_t_address_nonPadded_inplace_fromStack(value5, pos)\n pos := add(pos, 20)\n\n end := pos\n }\n\n function abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n end := pos\n }\n\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function allocateMemory(size) -> memPtr {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, size)\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function array_allocation_size_t_string_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n // round up\n size := and(add(length, 0x1f), not(0x1f))\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function copy_calldata_to_memory(src, dst, length) {\n calldatacopy(dst, src, length)\n // clear end\n mstore(add(dst, length), 0)\n }\n\n function copy_memory_to_memory(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length)\n {\n // clear end\n mstore(add(dst, length), 0)\n }\n }\n\n function leftAlign_t_address(value) -> aligned {\n aligned := leftAlign_t_uint160(value)\n }\n\n function leftAlign_t_bytes32(value) -> aligned {\n aligned := value\n }\n\n function leftAlign_t_uint160(value) -> aligned {\n aligned := shift_left_96(value)\n }\n\n function leftAlign_t_uint256(value) -> aligned {\n aligned := value\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function shift_left_96(value) -> newValue {\n newValue :=\n\n shl(96, value)\n\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function validator_revert_t_bytes32(value) {\n if iszero(eq(value, cleanup_t_bytes32(value))) { revert(0, 0) }\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n", - "id": 2, - "language": "Yul", - "name": "#utility.yul" - } - ], - "sourceMap": "59:585:0:-:0;;;;;;;;;;;;;;;;;;;", - "deployedSourceMap": "59:585:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;227:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;91:130;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;333:309;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;227:100;272:14;305:15;298:22;;227:100;:::o;91:130::-;149:14;208:4;191:22;;;;;;;;:::i;:::-;;;;;;;;;;;;;181:33;;;;;;174:40;;91:130;;;:::o;333:309::-;486:14;559:6;567:8;577:11;590:8;600:10;612:12;542:83;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;519:116;;;;;;512:123;;333:309;;;;;;;;:::o;7:344:2:-;;110:65;125:49;167:6;125:49;:::i;:::-;110:65;:::i;:::-;101:74;;198:6;191:5;184:21;236:4;229:5;225:16;274:3;265:6;260:3;256:16;253:25;250:2;;;291:1;288;281:12;250:2;304:41;338:6;333:3;328;304:41;:::i;:::-;91:260;;;;;;:::o;357:139::-;;441:6;428:20;419:29;;457:33;484:5;457:33;:::i;:::-;409:87;;;;:::o;502:139::-;;586:6;573:20;564:29;;602:33;629:5;602:33;:::i;:::-;554:87;;;;:::o;661:273::-;;766:3;759:4;751:6;747:17;743:27;733:2;;784:1;781;774:12;733:2;824:6;811:20;849:79;924:3;916:6;909:4;901:6;897:17;849:79;:::i;:::-;840:88;;723:211;;;;;:::o;940:139::-;;1024:6;1011:20;1002:29;;1040:33;1067:5;1040:33;:::i;:::-;992:87;;;;:::o;1085:990::-;;;;;;;1278:3;1266:9;1257:7;1253:23;1249:33;1246:2;;;1295:1;1292;1285:12;1246:2;1338:1;1363:53;1408:7;1399:6;1388:9;1384:22;1363:53;:::i;:::-;1353:63;;1309:117;1465:2;1491:53;1536:7;1527:6;1516:9;1512:22;1491:53;:::i;:::-;1481:63;;1436:118;1593:2;1619:53;1664:7;1655:6;1644:9;1640:22;1619:53;:::i;:::-;1609:63;;1564:118;1721:2;1747:53;1792:7;1783:6;1772:9;1768:22;1747:53;:::i;:::-;1737:63;;1692:118;1849:3;1876:53;1921:7;1912:6;1901:9;1897:22;1876:53;:::i;:::-;1866:63;;1820:119;1978:3;2005:53;2050:7;2041:6;2030:9;2026:22;2005:53;:::i;:::-;1995:63;;1949:119;1236:839;;;;;;;;:::o;2081:375::-;;2199:2;2187:9;2178:7;2174:23;2170:32;2167:2;;;2215:1;2212;2205:12;2167:2;2286:1;2275:9;2271:17;2258:31;2316:18;2308:6;2305:30;2302:2;;;2348:1;2345;2338:12;2302:2;2376:63;2431:7;2422:6;2411:9;2407:22;2376:63;:::i;:::-;2366:73;;2229:220;2157:299;;;;:::o;2462:157::-;2567:45;2587:24;2605:5;2587:24;:::i;:::-;2567:45;:::i;:::-;2562:3;2555:58;2545:74;;:::o;2625:118::-;2712:24;2730:5;2712:24;:::i;:::-;2707:3;2700:37;2690:53;;:::o;2749:157::-;2854:45;2874:24;2892:5;2874:24;:::i;:::-;2854:45;:::i;:::-;2849:3;2842:58;2832:74;;:::o;2912:377::-;;3046:39;3079:5;3046:39;:::i;:::-;3101:89;3183:6;3178:3;3101:89;:::i;:::-;3094:96;;3199:52;3244:6;3239:3;3232:4;3225:5;3221:16;3199:52;:::i;:::-;3276:6;3271:3;3267:16;3260:23;;3022:267;;;;;:::o;3295:118::-;3382:24;3400:5;3382:24;:::i;:::-;3377:3;3370:37;3360:53;;:::o;3419:157::-;3524:45;3544:24;3562:5;3544:24;:::i;:::-;3524:45;:::i;:::-;3519:3;3512:58;3502:74;;:::o;3582:961::-;;3849:75;3920:3;3911:6;3849:75;:::i;:::-;3949:2;3944:3;3940:12;3933:19;;3962:75;4033:3;4024:6;3962:75;:::i;:::-;4062:2;4057:3;4053:12;4046:19;;4075:75;4146:3;4137:6;4075:75;:::i;:::-;4175:2;4170:3;4166:12;4159:19;;4188:75;4259:3;4250:6;4188:75;:::i;:::-;4288:2;4283:3;4279:12;4272:19;;4301:75;4372:3;4363:6;4301:75;:::i;:::-;4401:2;4396:3;4392:12;4385:19;;4414:75;4485:3;4476:6;4414:75;:::i;:::-;4514:2;4509:3;4505:12;4498:19;;4534:3;4527:10;;3838:705;;;;;;;;;:::o;4549:275::-;;4703:95;4794:3;4785:6;4703:95;:::i;:::-;4696:102;;4815:3;4808:10;;4685:139;;;;:::o;4830:222::-;;4961:2;4950:9;4946:18;4938:26;;4974:71;5042:1;5031:9;5027:17;5018:6;4974:71;:::i;:::-;4928:124;;;;:::o;5058:222::-;;5189:2;5178:9;5174:18;5166:26;;5202:71;5270:1;5259:9;5255:17;5246:6;5202:71;:::i;:::-;5156:124;;;;:::o;5286:283::-;;5352:2;5346:9;5336:19;;5394:4;5386:6;5382:17;5501:6;5489:10;5486:22;5465:18;5453:10;5450:34;5447:62;5444:2;;;5512:18;;:::i;:::-;5444:2;5552:10;5548:2;5541:22;5326:243;;;;:::o;5575:332::-;;5727:18;5719:6;5716:30;5713:2;;;5749:18;;:::i;:::-;5713:2;5834:4;5830:9;5823:4;5815:6;5811:17;5807:33;5799:41;;5895:4;5889;5885:15;5877:23;;5642:265;;;:::o;5913:99::-;;5999:5;5993:12;5983:22;;5972:40;;;:::o;6018:148::-;;6157:3;6142:18;;6132:34;;;;:::o;6172:96::-;;6238:24;6256:5;6238:24;:::i;:::-;6227:35;;6217:51;;;:::o;6274:77::-;;6340:5;6329:16;;6319:32;;;:::o;6357:126::-;;6434:42;6427:5;6423:54;6412:65;;6402:81;;;:::o;6489:77::-;;6555:5;6544:16;;6534:32;;;:::o;6572:154::-;6656:6;6651:3;6646;6633:30;6718:1;6709:6;6704:3;6700:16;6693:27;6623:103;;;:::o;6732:307::-;6800:1;6810:113;6824:6;6821:1;6818:13;6810:113;;;6909:1;6904:3;6900:11;6894:18;6890:1;6885:3;6881:11;6874:39;6846:2;6843:1;6839:10;6834:15;;6810:113;;;6941:6;6938:1;6935:13;6932:2;;;7021:1;7012:6;7007:3;7003:16;6996:27;6932:2;6781:258;;;;:::o;7045:100::-;;7113:26;7133:5;7113:26;:::i;:::-;7102:37;;7092:53;;;:::o;7151:79::-;;7219:5;7208:16;;7198:32;;;:::o;7236:94::-;;7304:20;7318:5;7304:20;:::i;:::-;7293:31;;7283:47;;;:::o;7336:79::-;;7404:5;7393:16;;7383:32;;;:::o;7421:180::-;7469:77;7466:1;7459:88;7566:4;7563:1;7556:15;7590:4;7587:1;7580:15;7607:94;;7688:5;7684:2;7680:14;7659:35;;7649:52;;;:::o;7707:122::-;7780:24;7798:5;7780:24;:::i;:::-;7773:5;7770:35;7760:2;;7819:1;7816;7809:12;7760:2;7750:79;:::o;7835:122::-;7908:24;7926:5;7908:24;:::i;:::-;7901:5;7898:35;7888:2;;7947:1;7944;7937:12;7888:2;7878:79;:::o;7963:122::-;8036:24;8054:5;8036:24;:::i;:::-;8029:5;8026:35;8016:2;;8075:1;8072;8065:12;8016:2;8006:79;:::o", - "source": "pragma solidity ^0.8.0;\npragma experimental ABIEncoderV2;\n\ncontract DemoHelpers {\n\n \n function getHash(string memory _key) public pure returns (bytes32 result) {\n return keccak256(abi.encodePacked(_key));\n }\n\n function getTimestamp() public view returns (uint256 result) {\n return block.timestamp;\n }\n\n function getTxId(address sender, address receiver, uint256 inputAmount, bytes32 hashLock, uint256 expiration, address tokenAddress) public pure returns (bytes32 result) {\n return keccak256(\n abi.encodePacked(sender, receiver, inputAmount, hashLock, expiration, tokenAddress)\n );\n }\n}", - "sourcePath": "/Users/jordigironamezcua/pruebas/contracts/DemoHelpers.sol", - "ast": { - "absolutePath": "/Users/jordigironamezcua/pruebas/contracts/DemoHelpers.sol", - "exportedSymbols": { - "DemoHelpers": [ - 57 - ] - }, - "id": 58, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1, - "literals": [ - "solidity", - "^", - "0.8", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:0" - }, - { - "id": 2, - "literals": [ - "experimental", - "ABIEncoderV2" - ], - "nodeType": "PragmaDirective", - "src": "24:33:0" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "fullyImplemented": true, - "id": 57, - "linearizedBaseContracts": [ - 57 - ], - "name": "DemoHelpers", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 16, - "nodeType": "Block", - "src": "165:56:0", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 12, - "name": "_key", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4, - "src": "208:4:0", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "expression": { - "id": 10, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4294967295, - "src": "191:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 11, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "src": "191:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 13, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "191:22:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 9, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4294967288, - "src": "181:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 14, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "181:33:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 8, - "id": 15, - "nodeType": "Return", - "src": "174:40:0" - } - ] - }, - "functionSelector": "5b6beeb9", - "id": 17, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getHash", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4, - "mutability": "mutable", - "name": "_key", - "nodeType": "VariableDeclaration", - "scope": 17, - "src": "108:18:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "108:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "107:20:0" - }, - "returnParameters": { - "id": 8, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7, - "mutability": "mutable", - "name": "result", - "nodeType": "VariableDeclaration", - "scope": 17, - "src": "149:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 6, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "149:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "148:16:0" - }, - "scope": 57, - "src": "91:130:0", - "stateMutability": "pure", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 25, - "nodeType": "Block", - "src": "288:39:0", - "statements": [ - { - "expression": { - "expression": { - "id": 22, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4294967292, - "src": "305:5:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 23, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "src": "305:15:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 21, - "id": 24, - "nodeType": "Return", - "src": "298:22:0" - } - ] - }, - "functionSelector": "188ec356", - "id": 26, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getTimestamp", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 18, - "nodeType": "ParameterList", - "parameters": [], - "src": "248:2:0" - }, - "returnParameters": { - "id": 21, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20, - "mutability": "mutable", - "name": "result", - "nodeType": "VariableDeclaration", - "scope": 26, - "src": "272:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 19, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "272:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } + "src": "519:16:0" + }, + "scope": 57, + "src": "367:303:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + } ], - "src": "271:16:0" - }, - "scope": 57, - "src": "227:100:0", - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 55, - "nodeType": "Block", - "src": "502:140:0", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 46, - "name": "sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28, - "src": "559:6:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 47, - "name": "receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30, - "src": "567:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 48, - "name": "inputAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32, - "src": "577:11:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 49, - "name": "hashLock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "590:8:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 50, - "name": "expiration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36, - "src": "600:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 51, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 38, - "src": "612:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 44, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4294967295, - "src": "542:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 45, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "src": "542:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 52, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "542:83:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 43, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4294967288, - "src": "519:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 53, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "519:116:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 42, - "id": 54, - "nodeType": "Return", - "src": "512:123:0" - } - ] - }, - "functionSelector": "a9a35209", - "id": 56, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getTxId", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 39, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 28, - "mutability": "mutable", - "name": "sender", - "nodeType": "VariableDeclaration", - "scope": 56, - "src": "350:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 27, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "350:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 30, - "mutability": "mutable", - "name": "receiver", - "nodeType": "VariableDeclaration", - "scope": 56, - "src": "366:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 29, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "366:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 32, - "mutability": "mutable", - "name": "inputAmount", - "nodeType": "VariableDeclaration", - "scope": 56, - "src": "384:19:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "384:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 34, - "mutability": "mutable", - "name": "hashLock", - "nodeType": "VariableDeclaration", - "scope": 56, - "src": "405:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 33, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "405:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 36, - "mutability": "mutable", - "name": "expiration", - "nodeType": "VariableDeclaration", - "scope": 56, - "src": "423:18:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 35, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "423:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 38, - "mutability": "mutable", - "name": "tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 56, - "src": "443:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 37, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "443:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "349:115:0" - }, - "returnParameters": { - "id": 42, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 41, - "mutability": "mutable", - "name": "result", - "nodeType": "VariableDeclaration", - "scope": 56, - "src": "486:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 40, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "486:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "485:16:0" - }, - "scope": 57, - "src": "333:309:0", - "stateMutability": "pure", - "virtual": false, - "visibility": "public" + "scope": 58, + "src": "99:573:0", + "usedErrors": [] } - ], - "scope": 58, - "src": "59:585:0" - } - ], - "src": "0:644:0" + ], + "src": "40:632:0" }, - "legacyAST": { - "absolutePath": "/Users/jordigironamezcua/pruebas/contracts/DemoHelpers.sol", - "exportedSymbols": { - "DemoHelpers": [ - 57 - ] - }, - "id": 58, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1, - "literals": [ - "solidity", - "^", - "0.8", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:0" - }, - { - "id": 2, - "literals": [ - "experimental", - "ABIEncoderV2" - ], - "nodeType": "PragmaDirective", - "src": "24:33:0" + "functionHashes": { + "getHash(string)": "5b6beeb9", + "getTimestamp()": "188ec356", + "getTxId(address,address,uint256,bytes32,uint256,address)": "a9a35209" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "143600", + "executionCost": "190", + "totalCost": "143790" }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "fullyImplemented": true, - "id": 57, - "linearizedBaseContracts": [ - 57 - ], - "name": "DemoHelpers", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 16, - "nodeType": "Block", - "src": "165:56:0", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 12, - "name": "_key", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4, - "src": "208:4:0", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "expression": { - "id": 10, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4294967295, - "src": "191:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 11, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "src": "191:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 13, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "191:22:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 9, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4294967288, - "src": "181:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 14, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "181:33:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 8, - "id": 15, - "nodeType": "Return", - "src": "174:40:0" - } - ] - }, - "functionSelector": "5b6beeb9", - "id": 17, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getHash", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4, - "mutability": "mutable", - "name": "_key", - "nodeType": "VariableDeclaration", - "scope": 17, - "src": "108:18:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "108:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "107:20:0" - }, - "returnParameters": { - "id": 8, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7, - "mutability": "mutable", - "name": "result", - "nodeType": "VariableDeclaration", - "scope": 17, - "src": "149:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 6, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "149:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "148:16:0" - }, - "scope": 57, - "src": "91:130:0", - "stateMutability": "pure", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 25, - "nodeType": "Block", - "src": "288:39:0", - "statements": [ - { - "expression": { - "expression": { - "id": 22, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4294967292, - "src": "305:5:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 23, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "src": "305:15:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 21, - "id": 24, - "nodeType": "Return", - "src": "298:22:0" - } - ] - }, - "functionSelector": "188ec356", - "id": 26, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getTimestamp", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 18, - "nodeType": "ParameterList", - "parameters": [], - "src": "248:2:0" - }, - "returnParameters": { - "id": 21, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20, - "mutability": "mutable", - "name": "result", - "nodeType": "VariableDeclaration", - "scope": 26, - "src": "272:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 19, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "272:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "271:16:0" - }, - "scope": 57, - "src": "227:100:0", - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 55, - "nodeType": "Block", - "src": "502:140:0", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 46, - "name": "sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28, - "src": "559:6:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 47, - "name": "receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30, - "src": "567:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 48, - "name": "inputAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32, - "src": "577:11:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 49, - "name": "hashLock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "590:8:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 50, - "name": "expiration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36, - "src": "600:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 51, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 38, - "src": "612:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 44, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4294967295, - "src": "542:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 45, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "src": "542:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 52, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "542:83:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 43, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4294967288, - "src": "519:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 53, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "519:116:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 42, - "id": 54, - "nodeType": "Return", - "src": "512:123:0" - } - ] - }, - "functionSelector": "a9a35209", - "id": 56, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getTxId", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 39, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 28, - "mutability": "mutable", - "name": "sender", - "nodeType": "VariableDeclaration", - "scope": 56, - "src": "350:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 27, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "350:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 30, - "mutability": "mutable", - "name": "receiver", - "nodeType": "VariableDeclaration", - "scope": 56, - "src": "366:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 29, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "366:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 32, - "mutability": "mutable", - "name": "inputAmount", - "nodeType": "VariableDeclaration", - "scope": 56, - "src": "384:19:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "384:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 34, - "mutability": "mutable", - "name": "hashLock", - "nodeType": "VariableDeclaration", - "scope": 56, - "src": "405:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 33, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "405:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 36, - "mutability": "mutable", - "name": "expiration", - "nodeType": "VariableDeclaration", - "scope": 56, - "src": "423:18:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 35, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "423:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 38, - "mutability": "mutable", - "name": "tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 56, - "src": "443:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 37, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "443:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "349:115:0" - }, - "returnParameters": { - "id": 42, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 41, - "mutability": "mutable", - "name": "result", - "nodeType": "VariableDeclaration", - "scope": 56, - "src": "486:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 40, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "486:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "485:16:0" - }, - "scope": 57, - "src": "333:309:0", - "stateMutability": "pure", - "virtual": false, - "visibility": "public" - } - ], - "scope": 58, - "src": "59:585:0" + "external": { + "getHash(string)": "infinite", + "getTimestamp()": "146", + "getTxId(address,address,uint256,bytes32,uint256,address)": "infinite" } - ], - "src": "0:644:0" - }, - "compiler": { - "name": "solc", - "version": "0.8.0+commit.c7dfd78e.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.3.3", - "updatedAt": "2021-02-09T16:31:15.566Z", - "devdoc": { - "kind": "dev", - "methods": {}, - "version": 1 - }, - "userdoc": { - "kind": "user", - "methods": {}, - "version": 1 } -} \ No newline at end of file +} diff --git a/packages/cactus-test-plugin-htlc-eth-besu-erc20/src/test/solidity/token-erc20-contract/DemoHelpers.sol b/packages/cactus-test-plugin-htlc-eth-besu-erc20/src/test/solidity/token-erc20-contract/DemoHelpers.sol index b4c694f249d..6b03951c3bc 100644 --- a/packages/cactus-test-plugin-htlc-eth-besu-erc20/src/test/solidity/token-erc20-contract/DemoHelpers.sol +++ b/packages/cactus-test-plugin-htlc-eth-besu-erc20/src/test/solidity/token-erc20-contract/DemoHelpers.sol @@ -1,11 +1,13 @@ -pragma solidity ^0.8.0; +// SPDX-License-Identifier: Apache-2.0 + +pragma solidity 0.8.19; pragma experimental ABIEncoderV2; contract DemoHelpers { function getHash(string memory _key) public pure returns (bytes32 result) { - return keccak256(abi.encodePacked(_key)); + return keccak256(abi.encode(_key)); } function getTimestamp() public view returns (uint256 result) { @@ -14,7 +16,7 @@ contract DemoHelpers { function getTxId(address sender, address receiver, uint256 inputAmount, bytes32 hashLock, uint256 expiration, address tokenAddress) public pure returns (bytes32 result) { return keccak256( - abi.encodePacked(sender, receiver, inputAmount, hashLock, expiration, tokenAddress) + abi.encode(sender, receiver, inputAmount, hashLock, expiration, tokenAddress) ); } } \ No newline at end of file diff --git a/packages/cactus-test-plugin-htlc-eth-besu-erc20/src/test/typescript/integration/plugin-htlc-eth-besu-erc20/withdraw-endpoint.test.ts b/packages/cactus-test-plugin-htlc-eth-besu-erc20/src/test/typescript/integration/plugin-htlc-eth-besu-erc20/withdraw-endpoint.test.ts index 3209b0db79d..b8aac2544e9 100644 --- a/packages/cactus-test-plugin-htlc-eth-besu-erc20/src/test/typescript/integration/plugin-htlc-eth-besu-erc20/withdraw-endpoint.test.ts +++ b/packages/cactus-test-plugin-htlc-eth-besu-erc20/src/test/typescript/integration/plugin-htlc-eth-besu-erc20/withdraw-endpoint.test.ts @@ -5,6 +5,8 @@ import { v4 as uuidv4 } from "uuid"; import express from "express"; import type { Express } from "express"; import bodyParser from "body-parser"; +import { encodeParameter } from "web3-eth-abi"; +import { keccak256 } from "web3-utils"; import { DefaultApi as BesuApi, IPluginHtlcEthBesuErc20Options, @@ -46,8 +48,6 @@ const besuTestLedger = new BesuTestLedger({ const secret = "0x3853485acd2bfc3c632026ee365279743af107a30492e3ceaa7aefc30c2a048a"; const receiver = besuTestLedger.getGenesisAccountPubKey(); -const hashLock = - "0x3c335ba7f06a8b01d0596589f73c19069e21c81e5013b91f408165d1bf623d32"; const firstHighNetWorthAccount = "0x90F8bf6A479f320ead074411a4B0e7944Ea8c9C1"; const privateKey = "0x4f3edf983ac636a65a842ce7c78d9aa706d3b113bce9c46f30d7d21715b23b1d"; @@ -224,6 +224,9 @@ describe(testCase, () => { }); expect(responseAllowance.callOutput).toEqual("10"); + const secretEthAbiEncoded = encodeParameter("uint256", secret); + const hashLock = keccak256(secretEthAbiEncoded); + const request: NewContractRequest = { contractAddress: hashTimeLockAddress, inputAmount: 10, diff --git a/packages/cactus-test-plugin-htlc-eth-besu/src/test/solidity/contracts/DemoHelpers.json b/packages/cactus-test-plugin-htlc-eth-besu/src/test/solidity/contracts/DemoHelpers.json index 3e711549473..103b8f6fef2 100644 --- a/packages/cactus-test-plugin-htlc-eth-besu/src/test/solidity/contracts/DemoHelpers.json +++ b/packages/cactus-test-plugin-htlc-eth-besu/src/test/solidity/contracts/DemoHelpers.json @@ -1,4248 +1,1194 @@ { - "contractName": "DemoHelpers", - "abi": [ - { - "inputs": [ + "contractName": "DemoHelpers", + "abi": [ { - "internalType": "string", - "name": "_key", - "type": "string" - } - ], - "name": "getHash", - "outputs": [ - { - "internalType": "bytes32", - "name": "result", - "type": "bytes32" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "getTimestamp", - "outputs": [ - { - "internalType": "uint256", - "name": "result", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "address", - "name": "receiver", - "type": "address" - }, - { - "internalType": "uint256", - "name": "inputAmount", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "hashLock", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "expiration", - "type": "uint256" - } - ], - "name": "getTxId", - "outputs": [ - { - "internalType": "bytes32", - "name": "result", - "type": "bytes32" - } - ], - "stateMutability": "pure", - "type": "function" - } - ], - "metadata": "{\"compiler\":{\"version\":\"0.7.3+commit.9bfce1f6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_key\",\"type\":\"string\"}],\"name\":\"getHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"result\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"inputAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"hashLock\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"}],\"name\":\"getTxId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"result\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/Users/jordigironamezcua/Workspace/src/github.com/fork/cactus/extensions/cactus-plugin-htlc-eth-besu/src/main/contracts/contracts/DemoHelpers.sol\":\"DemoHelpers\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/jordigironamezcua/Workspace/src/github.com/fork/cactus/extensions/cactus-plugin-htlc-eth-besu/src/main/contracts/contracts/DemoHelpers.sol\":{\"keccak256\":\"0x3363280ba207bd2fbe11150304119434e4ebbc6a34e1e32eae4e5f5be2b60fcc\",\"urls\":[\"bzz-raw://993b0daef6f61173ce15fb02ab0fc99b6ffe4d2192743c8cd066a57edd459cf6\",\"dweb:/ipfs/QmWSuSXNj1ttcQd2g1H6C5gDsmWkQsiZH2vAwh86ej6eam\"]}},\"version\":1}", - "bytecode": "608060405234801561001057600080fd5b50610316806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063188ec356146100465780635b6beeb914610064578063da9a187a14610077575b600080fd5b61004e61008a565b60405161005b91906102a7565b60405180910390f35b61004e6100723660046101bb565b61008e565b61004e610085366004610157565b6100bf565b4290565b6000816040516020016100a1919061028b565b6040516020818303038152906040528051906020012090505b919050565b6000600286868686866040516020016100dc959493929190610250565b60408051601f19818403018152908290526100f69161028b565b602060405180830381855afa158015610113573d6000803e3d6000fd5b5050506040513d601f19601f8201168201806040525081019061013691906101a3565b9695505050505050565b80356001600160a01b03811681146100ba57600080fd5b600080600080600060a0868803121561016e578081fd5b61017786610140565b945061018560208701610140565b94979496505050506040830135926060810135926080909101359150565b6000602082840312156101b4578081fd5b5051919050565b600060208083850312156101cd578182fd5b823567ffffffffffffffff808211156101e4578384fd5b818501915085601f8301126101f7578384fd5b81358181111561020357fe5b604051601f8201601f191681018501838111828210171561022057fe5b6040528181528382018501881015610236578586fd5b818585018683013790810190930193909352509392505050565b6bffffffffffffffffffffffff19606096871b811682529490951b909316601485015260288401919091526048830152606882015260880190565b6000825161029d8184602087016102b0565b9190910192915050565b90815260200190565b60005b838110156102cb5781810151838201526020016102b3565b838111156102da576000848401525b5050505056fea26469706673582212206db05e050f05f0a12d9a68c11da172b3c5a26d79cf359a3ecefde4763e557dac64736f6c63430007030033", - "deployedBytecode": "608060405234801561001057600080fd5b50600436106100415760003560e01c8063188ec356146100465780635b6beeb914610064578063da9a187a14610077575b600080fd5b61004e61008a565b60405161005b91906102a7565b60405180910390f35b61004e6100723660046101bb565b61008e565b61004e610085366004610157565b6100bf565b4290565b6000816040516020016100a1919061028b565b6040516020818303038152906040528051906020012090505b919050565b6000600286868686866040516020016100dc959493929190610250565b60408051601f19818403018152908290526100f69161028b565b602060405180830381855afa158015610113573d6000803e3d6000fd5b5050506040513d601f19601f8201168201806040525081019061013691906101a3565b9695505050505050565b80356001600160a01b03811681146100ba57600080fd5b600080600080600060a0868803121561016e578081fd5b61017786610140565b945061018560208701610140565b94979496505050506040830135926060810135926080909101359150565b6000602082840312156101b4578081fd5b5051919050565b600060208083850312156101cd578182fd5b823567ffffffffffffffff808211156101e4578384fd5b818501915085601f8301126101f7578384fd5b81358181111561020357fe5b604051601f8201601f191681018501838111828210171561022057fe5b6040528181528382018501881015610236578586fd5b818585018683013790810190930193909352509392505050565b6bffffffffffffffffffffffff19606096871b811682529490951b909316601485015260288401919091526048830152606882015260880190565b6000825161029d8184602087016102b0565b9190910192915050565b90815260200190565b60005b838110156102cb5781810151838201526020016102b3565b838111156102da576000848401525b5050505056fea26469706673582212206db05e050f05f0a12d9a68c11da172b3c5a26d79cf359a3ecefde4763e557dac64736f6c63430007030033", - "immutableReferences": {}, - "generatedSources": [], - "deployedGeneratedSources": [ - { - "ast": { - "nodeType": "YulBlock", - "src": "0:3570:3", - "statements": [ - { - "nodeType": "YulBlock", - "src": "6:3:3", - "statements": [] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "65:124:3", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "75:29:3", - "value": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "97:6:3" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "84:12:3" - }, - "nodeType": "YulFunctionCall", - "src": "84:20:3" - }, - "variableNames": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "75:5:3" - } - ] - }, + "inputs": [ { - "body": { - "nodeType": "YulBlock", - "src": "167:16:3", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "176:1:3", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "179:1:3", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "169:6:3" - }, - "nodeType": "YulFunctionCall", - "src": "169:12:3" - }, - "nodeType": "YulExpressionStatement", - "src": "169:12:3" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "126:5:3" - }, - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "137:5:3" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "152:3:3", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "157:1:3", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "148:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "148:11:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "161:1:3", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "144:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "144:19:3" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "133:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "133:31:3" - } - ], - "functionName": { - "name": "eq", - "nodeType": "YulIdentifier", - "src": "123:2:3" - }, - "nodeType": "YulFunctionCall", - "src": "123:42:3" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "116:6:3" - }, - "nodeType": "YulFunctionCall", - "src": "116:50:3" - }, - "nodeType": "YulIf", - "src": "113:2:3" + "internalType": "string", + "name": "_key", + "type": "string" } - ] - }, - "name": "abi_decode_t_address", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "44:6:3", - "type": "" - } ], - "returnVariables": [ - { - "name": "value", - "nodeType": "YulTypedName", - "src": "55:5:3", - "type": "" - } - ], - "src": "14:175:3" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "332:342:3", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "379:26:3", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "value4", - "nodeType": "YulIdentifier", - "src": "388:6:3" - }, - { - "name": "value4", - "nodeType": "YulIdentifier", - "src": "396:6:3" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "381:6:3" - }, - "nodeType": "YulFunctionCall", - "src": "381:22:3" - }, - "nodeType": "YulExpressionStatement", - "src": "381:22:3" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "353:7:3" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "362:9:3" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "349:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "349:23:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "374:3:3", - "type": "", - "value": "160" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "345:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "345:33:3" - }, - "nodeType": "YulIf", - "src": "342:2:3" - }, - { - "nodeType": "YulAssignment", - "src": "414:41:3", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "445:9:3" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nodeType": "YulIdentifier", - "src": "424:20:3" - }, - "nodeType": "YulFunctionCall", - "src": "424:31:3" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "414:6:3" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "464:50:3", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "499:9:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "510:2:3", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "495:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "495:18:3" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nodeType": "YulIdentifier", - "src": "474:20:3" - }, - "nodeType": "YulFunctionCall", - "src": "474:40:3" - }, - "variableNames": [ - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "464:6:3" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "523:42:3", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "550:9:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "561:2:3", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "546:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "546:18:3" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "533:12:3" - }, - "nodeType": "YulFunctionCall", - "src": "533:32:3" - }, - "variableNames": [ - { - "name": "value2", - "nodeType": "YulIdentifier", - "src": "523:6:3" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "574:42:3", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "601:9:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "612:2:3", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "597:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "597:18:3" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "584:12:3" - }, - "nodeType": "YulFunctionCall", - "src": "584:32:3" - }, - "variableNames": [ - { - "name": "value3", - "nodeType": "YulIdentifier", - "src": "574:6:3" - } - ] - }, + "name": "getHash", + "outputs": [ { - "nodeType": "YulAssignment", - "src": "625:43:3", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "652:9:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "663:3:3", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "648:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "648:19:3" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "635:12:3" - }, - "nodeType": "YulFunctionCall", - "src": "635:33:3" - }, - "variableNames": [ - { - "name": "value4", - "nodeType": "YulIdentifier", - "src": "625:6:3" - } - ] + "internalType": "bytes32", + "name": "result", + "type": "bytes32" } - ] - }, - "name": "abi_decode_tuple_t_addresst_addresst_uint256t_bytes32t_uint256", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "266:9:3", - "type": "" - }, - { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "277:7:3", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "289:6:3", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "297:6:3", - "type": "" - }, - { - "name": "value2", - "nodeType": "YulTypedName", - "src": "305:6:3", - "type": "" - }, - { - "name": "value3", - "nodeType": "YulTypedName", - "src": "313:6:3", - "type": "" - }, - { - "name": "value4", - "nodeType": "YulTypedName", - "src": "321:6:3", - "type": "" - } ], - "src": "194:480:3" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "760:113:3", - "statements": [ - { - "body": { - "nodeType": "YulBlock", - "src": "806:26:3", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "815:6:3" - }, - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "823:6:3" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "808:6:3" - }, - "nodeType": "YulFunctionCall", - "src": "808:22:3" - }, - "nodeType": "YulExpressionStatement", - "src": "808:22:3" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "781:7:3" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "790:9:3" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "777:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "777:23:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "802:2:3", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "773:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "773:32:3" - }, - "nodeType": "YulIf", - "src": "770:2:3" - }, + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "getTimestamp", + "outputs": [ { - "nodeType": "YulAssignment", - "src": "841:26:3", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "857:9:3" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "851:5:3" - }, - "nodeType": "YulFunctionCall", - "src": "851:16:3" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "841:6:3" - } - ] + "internalType": "uint256", + "name": "result", + "type": "uint256" } - ] - }, - "name": "abi_decode_tuple_t_bytes32_fromMemory", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "726:9:3", - "type": "" - }, - { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "737:7:3", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "749:6:3", - "type": "" - } ], - "src": "679:194:3" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "958:888:3", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "968:12:3", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "978:2:3", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "_1", - "nodeType": "YulTypedName", - "src": "972:2:3", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1025:26:3", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "1034:6:3" - }, - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "1042:6:3" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "1027:6:3" - }, - "nodeType": "YulFunctionCall", - "src": "1027:22:3" - }, - "nodeType": "YulExpressionStatement", - "src": "1027:22:3" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "1000:7:3" - }, - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1009:9:3" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "996:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "996:23:3" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "1021:2:3" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "992:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "992:32:3" - }, - "nodeType": "YulIf", - "src": "989:2:3" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "1060:37:3", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1087:9:3" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "1074:12:3" - }, - "nodeType": "YulFunctionCall", - "src": "1074:23:3" - }, - "variables": [ - { - "name": "offset", - "nodeType": "YulTypedName", - "src": "1064:6:3", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "1106:28:3", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1116:18:3", - "type": "", - "value": "0xffffffffffffffff" - }, - "variables": [ - { - "name": "_2", - "nodeType": "YulTypedName", - "src": "1110:2:3", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1161:26:3", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "1170:6:3" - }, - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "1178:6:3" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "1163:6:3" - }, - "nodeType": "YulFunctionCall", - "src": "1163:22:3" - }, - "nodeType": "YulExpressionStatement", - "src": "1163:22:3" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "1149:6:3" - }, - { - "name": "_2", - "nodeType": "YulIdentifier", - "src": "1157:2:3" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "1146:2:3" - }, - "nodeType": "YulFunctionCall", - "src": "1146:14:3" - }, - "nodeType": "YulIf", - "src": "1143:2:3" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "1196:32:3", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1210:9:3" - }, - { - "name": "offset", - "nodeType": "YulIdentifier", - "src": "1221:6:3" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1206:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "1206:22:3" - }, - "variables": [ - { - "name": "_3", - "nodeType": "YulTypedName", - "src": "1200:2:3", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1276:26:3", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "1285:6:3" - }, - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "1293:6:3" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "1278:6:3" - }, - "nodeType": "YulFunctionCall", - "src": "1278:22:3" - }, - "nodeType": "YulExpressionStatement", - "src": "1278:22:3" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "_3", - "nodeType": "YulIdentifier", - "src": "1255:2:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1259:4:3", - "type": "", - "value": "0x1f" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1251:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "1251:13:3" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "1266:7:3" - } - ], - "functionName": { - "name": "slt", - "nodeType": "YulIdentifier", - "src": "1247:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "1247:27:3" - } - ], - "functionName": { - "name": "iszero", - "nodeType": "YulIdentifier", - "src": "1240:6:3" - }, - "nodeType": "YulFunctionCall", - "src": "1240:35:3" - }, - "nodeType": "YulIf", - "src": "1237:2:3" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "1311:30:3", - "value": { - "arguments": [ - { - "name": "_3", - "nodeType": "YulIdentifier", - "src": "1338:2:3" - } - ], - "functionName": { - "name": "calldataload", - "nodeType": "YulIdentifier", - "src": "1325:12:3" - }, - "nodeType": "YulFunctionCall", - "src": "1325:16:3" - }, - "variables": [ - { - "name": "length", - "nodeType": "YulTypedName", - "src": "1315:6:3", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "1368:13:3", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "invalid", - "nodeType": "YulIdentifier", - "src": "1370:7:3" - }, - "nodeType": "YulFunctionCall", - "src": "1370:9:3" - }, - "nodeType": "YulExpressionStatement", - "src": "1370:9:3" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "1356:6:3" - }, - { - "name": "_2", - "nodeType": "YulIdentifier", - "src": "1364:2:3" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "1353:2:3" - }, - "nodeType": "YulFunctionCall", - "src": "1353:14:3" - }, - "nodeType": "YulIf", - "src": "1350:2:3" - }, - { - "nodeType": "YulVariableDeclaration", - "src": "1390:23:3", - "value": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1410:2:3", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "1404:5:3" - }, - "nodeType": "YulFunctionCall", - "src": "1404:9:3" - }, - "variables": [ - { - "name": "memPtr", - "nodeType": "YulTypedName", - "src": "1394:6:3", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "1422:71:3", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "1448:6:3" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "1464:6:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1472:4:3", - "type": "", - "value": "0x1f" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1460:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "1460:17:3" - }, - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1483:2:3", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "not", - "nodeType": "YulIdentifier", - "src": "1479:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "1479:7:3" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "1456:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "1456:31:3" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1444:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "1444:44:3" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "1490:2:3" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1440:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "1440:53:3" - }, - "variables": [ - { - "name": "newFreePtr", - "nodeType": "YulTypedName", - "src": "1426:10:3", - "type": "" - } - ] - }, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ { - "body": { - "nodeType": "YulBlock", - "src": "1552:13:3", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "invalid", - "nodeType": "YulIdentifier", - "src": "1554:7:3" - }, - "nodeType": "YulFunctionCall", - "src": "1554:9:3" - }, - "nodeType": "YulExpressionStatement", - "src": "1554:9:3" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "newFreePtr", - "nodeType": "YulIdentifier", - "src": "1511:10:3" - }, - { - "name": "_2", - "nodeType": "YulIdentifier", - "src": "1523:2:3" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "1508:2:3" - }, - "nodeType": "YulFunctionCall", - "src": "1508:18:3" - }, - { - "arguments": [ - { - "name": "newFreePtr", - "nodeType": "YulIdentifier", - "src": "1531:10:3" - }, - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "1543:6:3" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "1528:2:3" - }, - "nodeType": "YulFunctionCall", - "src": "1528:22:3" - } - ], - "functionName": { - "name": "or", - "nodeType": "YulIdentifier", - "src": "1505:2:3" - }, - "nodeType": "YulFunctionCall", - "src": "1505:46:3" - }, - "nodeType": "YulIf", - "src": "1502:2:3" + "internalType": "address", + "name": "sender", + "type": "address" }, { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1581:2:3", - "type": "", - "value": "64" - }, - { - "name": "newFreePtr", - "nodeType": "YulIdentifier", - "src": "1585:10:3" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "1574:6:3" - }, - "nodeType": "YulFunctionCall", - "src": "1574:22:3" - }, - "nodeType": "YulExpressionStatement", - "src": "1574:22:3" + "internalType": "address", + "name": "receiver", + "type": "address" }, { - "expression": { - "arguments": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "1612:6:3" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "1620:6:3" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "1605:6:3" - }, - "nodeType": "YulFunctionCall", - "src": "1605:22:3" - }, - "nodeType": "YulExpressionStatement", - "src": "1605:22:3" + "internalType": "uint256", + "name": "inputAmount", + "type": "uint256" }, { - "body": { - "nodeType": "YulBlock", - "src": "1677:26:3", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "1686:6:3" - }, - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "1694:6:3" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "1679:6:3" - }, - "nodeType": "YulFunctionCall", - "src": "1679:22:3" - }, - "nodeType": "YulExpressionStatement", - "src": "1679:22:3" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "_3", - "nodeType": "YulIdentifier", - "src": "1650:2:3" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "1654:6:3" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1646:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "1646:15:3" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "1663:2:3" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1642:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "1642:24:3" - }, - { - "name": "dataEnd", - "nodeType": "YulIdentifier", - "src": "1668:7:3" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "1639:2:3" - }, - "nodeType": "YulFunctionCall", - "src": "1639:37:3" - }, - "nodeType": "YulIf", - "src": "1636:2:3" + "internalType": "bytes32", + "name": "hashLock", + "type": "bytes32" }, { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "1729:6:3" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "1737:2:3" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1725:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "1725:15:3" - }, - { - "arguments": [ - { - "name": "_3", - "nodeType": "YulIdentifier", - "src": "1746:2:3" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "1750:2:3" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1742:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "1742:11:3" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "1755:6:3" - } - ], - "functionName": { - "name": "calldatacopy", - "nodeType": "YulIdentifier", - "src": "1712:12:3" - }, - "nodeType": "YulFunctionCall", - "src": "1712:50:3" - }, - "nodeType": "YulExpressionStatement", - "src": "1712:50:3" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "1786:6:3" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "1794:6:3" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1782:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "1782:19:3" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "1803:2:3" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1778:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "1778:28:3" - }, - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "1808:6:3" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "1771:6:3" - }, - "nodeType": "YulFunctionCall", - "src": "1771:44:3" - }, - "nodeType": "YulExpressionStatement", - "src": "1771:44:3" - }, - { - "nodeType": "YulAssignment", - "src": "1824:16:3", - "value": { - "name": "memPtr", - "nodeType": "YulIdentifier", - "src": "1834:6:3" - }, - "variableNames": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "1824:6:3" - } - ] + "internalType": "uint256", + "name": "expiration", + "type": "uint256" } - ] - }, - "name": "abi_decode_tuple_t_string_memory_ptr", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "924:9:3", - "type": "" - }, - { - "name": "dataEnd", - "nodeType": "YulTypedName", - "src": "935:7:3", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "947:6:3", - "type": "" - } ], - "src": "878:968:3" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "2082:299:3", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "2092:41:3", - "value": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2106:26:3", - "type": "", - "value": "0xffffffffffffffffffffffff" - } - ], - "functionName": { - "name": "not", - "nodeType": "YulIdentifier", - "src": "2102:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "2102:31:3" - }, - "variables": [ - { - "name": "_1", - "nodeType": "YulTypedName", - "src": "2096:2:3", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "2149:3:3" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2162:2:3", - "type": "", - "value": "96" - }, - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "2166:6:3" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "2158:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "2158:15:3" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "2175:2:3" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "2154:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "2154:24:3" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "2142:6:3" - }, - "nodeType": "YulFunctionCall", - "src": "2142:37:3" - }, - "nodeType": "YulExpressionStatement", - "src": "2142:37:3" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "2199:3:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2204:2:3", - "type": "", - "value": "20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2195:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "2195:12:3" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2217:2:3", - "type": "", - "value": "96" - }, - { - "name": "value1", - "nodeType": "YulIdentifier", - "src": "2221:6:3" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "2213:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "2213:15:3" - }, - { - "name": "_1", - "nodeType": "YulIdentifier", - "src": "2230:2:3" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "2209:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "2209:24:3" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "2188:6:3" - }, - "nodeType": "YulFunctionCall", - "src": "2188:46:3" - }, - "nodeType": "YulExpressionStatement", - "src": "2188:46:3" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "2254:3:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2259:2:3", - "type": "", - "value": "40" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2250:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "2250:12:3" - }, - { - "name": "value2", - "nodeType": "YulIdentifier", - "src": "2264:6:3" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "2243:6:3" - }, - "nodeType": "YulFunctionCall", - "src": "2243:28:3" - }, - "nodeType": "YulExpressionStatement", - "src": "2243:28:3" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "2291:3:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2296:2:3", - "type": "", - "value": "72" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2287:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "2287:12:3" - }, - { - "name": "value3", - "nodeType": "YulIdentifier", - "src": "2301:6:3" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "2280:6:3" - }, - "nodeType": "YulFunctionCall", - "src": "2280:28:3" - }, - "nodeType": "YulExpressionStatement", - "src": "2280:28:3" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "2328:3:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2333:3:3", - "type": "", - "value": "104" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2324:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "2324:13:3" - }, - { - "name": "value4", - "nodeType": "YulIdentifier", - "src": "2339:6:3" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "2317:6:3" - }, - "nodeType": "YulFunctionCall", - "src": "2317:29:3" - }, - "nodeType": "YulExpressionStatement", - "src": "2317:29:3" - }, + "name": "getTxId", + "outputs": [ { - "nodeType": "YulAssignment", - "src": "2355:20:3", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "2366:3:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2371:3:3", - "type": "", - "value": "136" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2362:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "2362:13:3" - }, - "variableNames": [ - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "2355:3:3" - } - ] + "internalType": "bytes32", + "name": "result", + "type": "bytes32" } - ] - }, - "name": "abi_encode_tuple_packed_t_address_t_address_t_uint256_t_bytes32_t_uint256__to_t_address_t_address_t_uint256_t_bytes32_t_uint256__nonPadded_inplace_fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "2026:3:3", - "type": "" - }, - { - "name": "value4", - "nodeType": "YulTypedName", - "src": "2031:6:3", - "type": "" - }, - { - "name": "value3", - "nodeType": "YulTypedName", - "src": "2039:6:3", - "type": "" - }, - { - "name": "value2", - "nodeType": "YulTypedName", - "src": "2047:6:3", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "2055:6:3", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "2063:6:3", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nodeType": "YulTypedName", - "src": "2074:3:3", - "type": "" - } ], - "src": "1851:530:3" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "2523:137:3", - "statements": [ + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ { - "nodeType": "YulVariableDeclaration", - "src": "2533:27:3", - "value": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "2553:6:3" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "2547:5:3" - }, - "nodeType": "YulFunctionCall", - "src": "2547:13:3" - }, - "variables": [ - { - "name": "length", - "nodeType": "YulTypedName", - "src": "2537:6:3", - "type": "" - } - ] + "internalType": "address", + "name": "sender", + "type": "address" }, { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "2595:6:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2603:4:3", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2591:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "2591:17:3" - }, - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "2610:3:3" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "2615:6:3" - } - ], - "functionName": { - "name": "copy_memory_to_memory", - "nodeType": "YulIdentifier", - "src": "2569:21:3" - }, - "nodeType": "YulFunctionCall", - "src": "2569:53:3" - }, - "nodeType": "YulExpressionStatement", - "src": "2569:53:3" + "internalType": "address", + "name": "receiver", + "type": "address" }, { - "nodeType": "YulAssignment", - "src": "2631:23:3", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "2642:3:3" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "2647:6:3" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2638:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "2638:16:3" - }, - "variableNames": [ - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "2631:3:3" - } - ] - } - ] - }, - "name": "abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "2499:3:3", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "2504:6:3", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nodeType": "YulTypedName", - "src": "2515:3:3", - "type": "" - } - ], - "src": "2386:274:3" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "2804:137:3", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "2814:27:3", - "value": { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "2834:6:3" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "2828:5:3" - }, - "nodeType": "YulFunctionCall", - "src": "2828:13:3" - }, - "variables": [ - { - "name": "length", - "nodeType": "YulTypedName", - "src": "2818:6:3", - "type": "" - } - ] + "internalType": "uint256", + "name": "inputAmount", + "type": "uint256" }, { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "2876:6:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "2884:4:3", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2872:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "2872:17:3" - }, - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "2891:3:3" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "2896:6:3" - } - ], - "functionName": { - "name": "copy_memory_to_memory", - "nodeType": "YulIdentifier", - "src": "2850:21:3" - }, - "nodeType": "YulFunctionCall", - "src": "2850:53:3" - }, - "nodeType": "YulExpressionStatement", - "src": "2850:53:3" + "internalType": "bytes32", + "name": "hashLock", + "type": "bytes32" }, { - "nodeType": "YulAssignment", - "src": "2912:23:3", - "value": { - "arguments": [ - { - "name": "pos", - "nodeType": "YulIdentifier", - "src": "2923:3:3" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "2928:6:3" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "2919:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "2919:16:3" - }, - "variableNames": [ - { - "name": "end", - "nodeType": "YulIdentifier", - "src": "2912:3:3" - } - ] + "internalType": "uint256", + "name": "expiration", + "type": "uint256" } - ] - }, - "name": "abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nodeType": "YulTypedName", - "src": "2780:3:3", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "2785:6:3", - "type": "" - } ], - "returnVariables": [ - { - "name": "end", - "nodeType": "YulTypedName", - "src": "2796:3:3", - "type": "" - } - ], - "src": "2665:276:3" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "3047:76:3", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "3057:26:3", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3069:9:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3080:2:3", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3065:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "3065:18:3" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "3057:4:3" - } - ] - }, + "name": "getTxIdNoHash", + "outputs": [ { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3099:9:3" - }, - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "3110:6:3" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "3092:6:3" - }, - "nodeType": "YulFunctionCall", - "src": "3092:25:3" - }, - "nodeType": "YulExpressionStatement", - "src": "3092:25:3" + "internalType": "bytes", + "name": "result", + "type": "bytes" } - ] - }, - "name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "3016:9:3", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "3027:6:3", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "3038:4:3", - "type": "" - } ], - "src": "2946:177:3" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "3229:76:3", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "3239:26:3", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3251:9:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3262:2:3", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3247:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "3247:18:3" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "3239:4:3" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "3281:9:3" - }, - { - "name": "value0", - "nodeType": "YulIdentifier", - "src": "3292:6:3" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "3274:6:3" - }, - "nodeType": "YulFunctionCall", - "src": "3274:25:3" - }, - "nodeType": "YulExpressionStatement", - "src": "3274:25:3" - } - ] + "stateMutability": "pure", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_key\",\"type\":\"string\"}],\"name\":\"getHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"result\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"inputAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"hashLock\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"}],\"name\":\"getTxId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"result\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"inputAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"hashLock\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"expiration\",\"type\":\"uint256\"}],\"name\":\"getTxIdNoHash\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"result\",\"type\":\"bytes\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/peter/a/cacti-1/packages/cactus-test-plugin-htlc-eth-besu/src/test/solidity/contracts/DemoHelpers.sol\":\"DemoHelpers\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/peter/a/cacti-1/packages/cactus-test-plugin-htlc-eth-besu/src/test/solidity/contracts/DemoHelpers.sol\":{\"keccak256\":\"0xa36a07446f7601f3402c6024942d9b6f0d82fc6cce6b45480458b094c45d6c30\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://f589da4a9886414cf01e5753b611451d2ffe255459ed4b82b6a4acb507ee04a0\",\"dweb:/ipfs/QmWZEzCico2Z1jfgT8BiQ4XGZoF8s4YNVE2PxX1pF1N86t\"]}},\"version\":1}", + "bytecode": "608060405234801561001057600080fd5b50610331806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c8063188ec356146100515780635b6beeb914610066578063da9a187a14610079578063eeafc5e6146100d9575b600080fd5b425b6040519081526020015b60405180910390f35b610053610074366004610181565b61013b565b61005361008736600461024e565b604080516001600160a01b0396871660208083019190915295909616868201526060860193909352608085019190915260a0808501919091528151808503909101815260c09093019052815191012090565b61012e6100e736600461024e565b604080516001600160a01b03968716602082015294909516848601526060840192909252608083015260a0808301919091528251808303909101815260c090910190915290565b60405161005d91906102e1565b60008160405160200161014e91906102e1565b604051602081830303815290604052805190602001209050919050565b634e487b7160e01b600052604160045260246000fd5b60006020828403121561019357600080fd5b813567ffffffffffffffff808211156101ab57600080fd5b818401915084601f8301126101bf57600080fd5b8135818111156101d1576101d161016b565b604051601f8201601f19908116603f011681019083821181831017156101f9576101f961016b565b8160405282815287602084870101111561021257600080fd5b826020860160208301376000928101602001929092525095945050505050565b80356001600160a01b038116811461024957600080fd5b919050565b600080600080600060a0868803121561026657600080fd5b61026f86610232565b945061027d60208701610232565b94979496505050506040830135926060810135926080909101359150565b6000815180845260005b818110156102c1576020818501810151868301820152016102a5565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006102f4602083018461029b565b939250505056fea26469706673582212201b3a2adf5a65bbdbe7ad4c5c8d348c57fa7fcbaa7e5c5ea00da7302849109e6a64736f6c63430008130033", + "deployedBytecode": "608060405234801561001057600080fd5b506004361061004c5760003560e01c8063188ec356146100515780635b6beeb914610066578063da9a187a14610079578063eeafc5e6146100d9575b600080fd5b425b6040519081526020015b60405180910390f35b610053610074366004610181565b61013b565b61005361008736600461024e565b604080516001600160a01b0396871660208083019190915295909616868201526060860193909352608085019190915260a0808501919091528151808503909101815260c09093019052815191012090565b61012e6100e736600461024e565b604080516001600160a01b03968716602082015294909516848601526060840192909252608083015260a0808301919091528251808303909101815260c090910190915290565b60405161005d91906102e1565b60008160405160200161014e91906102e1565b604051602081830303815290604052805190602001209050919050565b634e487b7160e01b600052604160045260246000fd5b60006020828403121561019357600080fd5b813567ffffffffffffffff808211156101ab57600080fd5b818401915084601f8301126101bf57600080fd5b8135818111156101d1576101d161016b565b604051601f8201601f19908116603f011681019083821181831017156101f9576101f961016b565b8160405282815287602084870101111561021257600080fd5b826020860160208301376000928101602001929092525095945050505050565b80356001600160a01b038116811461024957600080fd5b919050565b600080600080600060a0868803121561026657600080fd5b61026f86610232565b945061027d60208701610232565b94979496505050506040830135926060810135926080909101359150565b6000815180845260005b818110156102c1576020818501810151868301820152016102a5565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006102f4602083018461029b565b939250505056fea26469706673582212201b3a2adf5a65bbdbe7ad4c5c8d348c57fa7fcbaa7e5c5ea00da7302849109e6a64736f6c63430008130033", + "sourceMap": "99:789:0:-:0;;;;;;;;;;;;;;;;;;;", + "deployedSourceMap": "99:789:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;261:100;339:15;261:100;;;160:25:1;;;148:2;133:18;261:100:0;;;;;;;;131:124;;;;;;:::i;:::-;;:::i;618:267::-;;;;;;:::i;:::-;805:63;;;-1:-1:-1;;;;;3274:15:1;;;805:63:0;;;;3256:34:1;;;;3326:15;;;;3306:18;;;3299:43;3358:18;;;3351:34;;;;3401:18;;;3394:34;;;;3444:19;;;;3437:35;;;;805:63:0;;;;;;;;;;3190:19:1;;;;805:63:0;;782:96;;;;;;618:267;367:245;;;;;;:::i;:::-;542:63;;;-1:-1:-1;;;;;3274:15:1;;;542:63:0;;;3256:34:1;3326:15;;;;3306:18;;;3299:43;504:19:0;3358:18:1;;3351:34;;;;3401:18;;;3394:34;3444:19;;;;3437:35;;;;542:63:0;;;;;;;;;;3190:19:1;;;;542:63:0;;;;367:245;;;;;;;;:::i;131:124::-;189:14;242:4;231:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;221:27;;;;;;214:34;;131:124;;;:::o;196:127:1:-;257:10;252:3;248:20;245:1;238:31;288:4;285:1;278:15;312:4;309:1;302:15;328:922;397:6;450:2;438:9;429:7;425:23;421:32;418:52;;;466:1;463;456:12;418:52;506:9;493:23;535:18;576:2;568:6;565:14;562:34;;;592:1;589;582:12;562:34;630:6;619:9;615:22;605:32;;675:7;668:4;664:2;660:13;656:27;646:55;;697:1;694;687:12;646:55;733:2;720:16;755:2;751;748:10;745:36;;;761:18;;:::i;:::-;836:2;830:9;804:2;890:13;;-1:-1:-1;;886:22:1;;;910:2;882:31;878:40;866:53;;;934:18;;;954:22;;;931:46;928:72;;;980:18;;:::i;:::-;1020:10;1016:2;1009:22;1055:2;1047:6;1040:18;1095:7;1090:2;1085;1081;1077:11;1073:20;1070:33;1067:53;;;1116:1;1113;1106:12;1067:53;1172:2;1167;1163;1159:11;1154:2;1146:6;1142:15;1129:46;1217:1;1195:15;;;1212:2;1191:24;1184:35;;;;-1:-1:-1;1199:6:1;328:922;-1:-1:-1;;;;;328:922:1:o;1437:173::-;1505:20;;-1:-1:-1;;;;;1554:31:1;;1544:42;;1534:70;;1600:1;1597;1590:12;1534:70;1437:173;;;:::o;1615:466::-;1710:6;1718;1726;1734;1742;1795:3;1783:9;1774:7;1770:23;1766:33;1763:53;;;1812:1;1809;1802:12;1763:53;1835:29;1854:9;1835:29;:::i;:::-;1825:39;;1883:38;1917:2;1906:9;1902:18;1883:38;:::i;:::-;1615:466;;1873:48;;-1:-1:-1;;;;1968:2:1;1953:18;;1940:32;;2019:2;2004:18;;1991:32;;2070:3;2055:19;;;2042:33;;-1:-1:-1;1615:466:1:o;2086:422::-;2127:3;2165:5;2159:12;2192:6;2187:3;2180:19;2217:1;2227:162;2241:6;2238:1;2235:13;2227:162;;;2303:4;2359:13;;;2355:22;;2349:29;2331:11;;;2327:20;;2320:59;2256:12;2227:162;;;2231:3;2434:1;2427:4;2418:6;2413:3;2409:16;2405:27;2398:38;2497:4;2490:2;2486:7;2481:2;2473:6;2469:15;2465:29;2460:3;2456:39;2452:50;2445:57;;;2086:422;;;;:::o;2513:217::-;2660:2;2649:9;2642:21;2623:4;2680:44;2720:2;2709:9;2705:18;2697:6;2680:44;:::i;:::-;2672:52;2513:217;-1:-1:-1;;;2513:217:1:o", + "sourcePath": "/home/peter/a/cacti-1/packages/cactus-test-plugin-htlc-eth-besu/src/test/solidity/contracts/DemoHelpers.sol", + "compiler": { + "name": "solc", + "version": "0.8.19+commit.7dd6d404" + }, + "ast": { + "absolutePath": "/home/peter/a/cacti-1/packages/cactus-test-plugin-htlc-eth-besu/src/test/solidity/contracts/DemoHelpers.sol", + "exportedSymbols": { + "DemoHelpers": [ + 79 + ] + }, + "id": 80, + "license": "Apache-2.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "0.8", + ".19" + ], + "nodeType": "PragmaDirective", + "src": "40:23:0" }, - "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "3198:9:3", - "type": "" - }, - { - "name": "value0", - "nodeType": "YulTypedName", - "src": "3209:6:3", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "3220:4:3", - "type": "" - } - ], - "src": "3128:177:3" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "3363:205:3", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "3373:10:3", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3382:1:3", - "type": "", - "value": "0" - }, - "variables": [ + { + "id": 2, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "64:33:0" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "DemoHelpers", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 79, + "linearizedBaseContracts": [ + 79 + ], + "name": "DemoHelpers", + "nameLocation": "108:11:0", + "nodeType": "ContractDefinition", + "nodes": [ { - "name": "i", - "nodeType": "YulTypedName", - "src": "3377:1:3", - "type": "" - } - ] - }, - { - "body": { - "nodeType": "YulBlock", - "src": "3442:63:3", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "dst", - "nodeType": "YulIdentifier", - "src": "3467:3:3" - }, + "body": { + "id": 16, + "nodeType": "Block", + "src": "205:50:0", + "statements": [ { - "name": "i", - "nodeType": "YulIdentifier", - "src": "3472:1:3" + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 12, + "name": "_key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4, + "src": "242:4:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "id": 10, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "231:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 11, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "235:6:0", + "memberName": "encode", + "nodeType": "MemberAccess", + "src": "231:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 13, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "231:16:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 9, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967288, + "src": "221:9:0", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 14, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "221:27:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 8, + "id": 15, + "nodeType": "Return", + "src": "214:34:0" } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3463:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "3463:11:3" - }, - { - "arguments": [ + ] + }, + "functionSelector": "5b6beeb9", + "id": 17, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getHash", + "nameLocation": "140:7:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5, + "nodeType": "ParameterList", + "parameters": [ { - "arguments": [ - { - "name": "src", - "nodeType": "YulIdentifier", - "src": "3486:3:3" + "constant": false, + "id": 4, + "mutability": "mutable", + "name": "_key", + "nameLocation": "162:4:0", + "nodeType": "VariableDeclaration", + "scope": 17, + "src": "148:18:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "148:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } }, - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "3491:1:3" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3482:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "3482:11:3" + "visibility": "internal" } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "3476:5:3" - }, - "nodeType": "YulFunctionCall", - "src": "3476:18:3" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "3456:6:3" - }, - "nodeType": "YulFunctionCall", - "src": "3456:39:3" - }, - "nodeType": "YulExpressionStatement", - "src": "3456:39:3" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "3403:1:3" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "3406:6:3" - } - ], - "functionName": { - "name": "lt", - "nodeType": "YulIdentifier", - "src": "3400:2:3" - }, - "nodeType": "YulFunctionCall", - "src": "3400:13:3" - }, - "nodeType": "YulForLoop", - "post": { - "nodeType": "YulBlock", - "src": "3414:19:3", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "3416:15:3", - "value": { - "arguments": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "3425:1:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3428:2:3", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3421:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "3421:10:3" + ], + "src": "147:20:0" }, - "variableNames": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "3416:1:3" - } - ] - } - ] - }, - "pre": { - "nodeType": "YulBlock", - "src": "3396:3:3", - "statements": [] - }, - "src": "3392:113:3" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "3531:31:3", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "dst", - "nodeType": "YulIdentifier", - "src": "3544:3:3" - }, + "returnParameters": { + "id": 8, + "nodeType": "ParameterList", + "parameters": [ { - "name": "length", - "nodeType": "YulIdentifier", - "src": "3549:6:3" + "constant": false, + "id": 7, + "mutability": "mutable", + "name": "result", + "nameLocation": "197:6:0", + "nodeType": "VariableDeclaration", + "scope": 17, + "src": "189:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "189:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "3540:3:3" - }, - "nodeType": "YulFunctionCall", - "src": "3540:16:3" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "3558:1:3", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "3533:6:3" - }, - "nodeType": "YulFunctionCall", - "src": "3533:27:3" - }, - "nodeType": "YulExpressionStatement", - "src": "3533:27:3" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "i", - "nodeType": "YulIdentifier", - "src": "3520:1:3" - }, - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "3523:6:3" - } - ], - "functionName": { - "name": "gt", - "nodeType": "YulIdentifier", - "src": "3517:2:3" - }, - "nodeType": "YulFunctionCall", - "src": "3517:13:3" - }, - "nodeType": "YulIf", - "src": "3514:2:3" - } - ] - }, - "name": "copy_memory_to_memory", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "src", - "nodeType": "YulTypedName", - "src": "3341:3:3", - "type": "" - }, - { - "name": "dst", - "nodeType": "YulTypedName", - "src": "3346:3:3", - "type": "" - }, - { - "name": "length", - "nodeType": "YulTypedName", - "src": "3351:6:3", - "type": "" - } - ], - "src": "3310:258:3" - } - ] - }, - "contents": "{\n { }\n function abi_decode_t_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_addresst_uint256t_bytes32t_uint256(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 160) { revert(value4, value4) }\n value0 := abi_decode_t_address(headStart)\n value1 := abi_decode_t_address(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n value3 := calldataload(add(headStart, 96))\n value4 := calldataload(add(headStart, 128))\n }\n function abi_decode_tuple_t_bytes32_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := mload(headStart)\n }\n function abi_decode_tuple_t_string_memory_ptr(headStart, dataEnd) -> value0\n {\n let _1 := 32\n if slt(sub(dataEnd, headStart), _1) { revert(value0, value0) }\n let offset := calldataload(headStart)\n let _2 := 0xffffffffffffffff\n if gt(offset, _2) { revert(value0, value0) }\n let _3 := add(headStart, offset)\n if iszero(slt(add(_3, 0x1f), dataEnd)) { revert(value0, value0) }\n let length := calldataload(_3)\n if gt(length, _2) { invalid() }\n let memPtr := mload(64)\n let newFreePtr := add(add(memPtr, and(add(length, 0x1f), not(31))), _1)\n if or(gt(newFreePtr, _2), lt(newFreePtr, memPtr)) { invalid() }\n mstore(64, newFreePtr)\n mstore(memPtr, length)\n if gt(add(add(_3, length), _1), dataEnd) { revert(value0, value0) }\n calldatacopy(add(memPtr, _1), add(_3, _1), length)\n mstore(add(add(memPtr, length), _1), value0)\n value0 := memPtr\n }\n function abi_encode_tuple_packed_t_address_t_address_t_uint256_t_bytes32_t_uint256__to_t_address_t_address_t_uint256_t_bytes32_t_uint256__nonPadded_inplace_fromStack_reversed(pos, value4, value3, value2, value1, value0) -> end\n {\n let _1 := not(0xffffffffffffffffffffffff)\n mstore(pos, and(shl(96, value0), _1))\n mstore(add(pos, 20), and(shl(96, value1), _1))\n mstore(add(pos, 40), value2)\n mstore(add(pos, 72), value3)\n mstore(add(pos, 104), value4)\n end := add(pos, 136)\n }\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory(add(value0, 0x20), pos, length)\n end := add(pos, length)\n }\n function abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory(add(value0, 0x20), pos, length)\n end := add(pos, length)\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function copy_memory_to_memory(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length) { mstore(add(dst, length), 0) }\n }\n}", - "id": 3, - "language": "Yul", - "name": "#utility.yul" - } - ], - "sourceMap": "59:547:0:-:0;;;;;;;;;;;;;;;;;;;", - "deployedSourceMap": "59:547:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;227:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;91:130;;;;;;:::i;:::-;;:::i;333:270::-;;;;;;:::i;:::-;;:::i;227:100::-;305:15;227:100;:::o;91:130::-;149:14;208:4;191:22;;;;;;;;:::i;:::-;;;;;;;;;;;;;181:33;;;;;;174:40;;91:130;;;;:::o;333:270::-;464:14;497:99;534:6;542:8;552:11;565:8;575:10;517:69;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;517:69:0;;;;;;;;;;497:99;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;490:106;333:270;-1:-1:-1;;;;;;333:270:0:o;14:175:3:-;84:20;;-1:-1:-1;;;;;133:31:3;;123:42;;113:2;;179:1;176;169:12;194:480;;;;;;374:3;362:9;353:7;349:23;345:33;342:2;;;396:6;388;381:22;342:2;424:31;445:9;424:31;:::i;:::-;414:41;;474:40;510:2;499:9;495:18;474:40;:::i;:::-;332:342;;464:50;;-1:-1:-1;;;;561:2:3;546:18;;533:32;;612:2;597:18;;584:32;;663:3;648:19;;;635:33;;-1:-1:-1;332:342:3:o;679:194::-;;802:2;790:9;781:7;777:23;773:32;770:2;;;823:6;815;808:22;770:2;-1:-1:-1;851:16:3;;760:113;-1:-1:-1;760:113:3:o;878:968::-;;978:2;1021;1009:9;1000:7;996:23;992:32;989:2;;;1042:6;1034;1027:22;989:2;1087:9;1074:23;1116:18;1157:2;1149:6;1146:14;1143:2;;;1178:6;1170;1163:22;1143:2;1221:6;1210:9;1206:22;1196:32;;1266:7;1259:4;1255:2;1251:13;1247:27;1237:2;;1293:6;1285;1278:22;1237:2;1338;1325:16;1364:2;1356:6;1353:14;1350:2;;;1370:9;1350:2;1410;1404:9;1483:2;1460:17;;-1:-1:-1;;1456:31:3;1444:44;;1440:53;;1508:18;;;1528:22;;;1505:46;1502:2;;;1554:9;1502:2;1581;1574:22;1605;;;1646:15;;;1642:24;;1639:37;-1:-1:-1;1636:2:3;;;1694:6;1686;1679:22;1636:2;1755:6;1750:2;1746;1742:11;1737:2;1729:6;1725:15;1712:50;1782:19;;;1778:28;;;1771:44;;;;-1:-1:-1;1786:6:3;958:888;-1:-1:-1;;;958:888:3:o;1851:530::-;-1:-1:-1;;2162:2:3;2158:15;;;2154:24;;2142:37;;2213:15;;;;2209:24;;;2204:2;2195:12;;2188:46;2259:2;2250:12;;2243:28;;;;2296:2;2287:12;;2280:28;2333:3;2324:13;;2317:29;2371:3;2362:13;;2082:299::o;2386:274::-;;2553:6;2547:13;2569:53;2615:6;2610:3;2603:4;2595:6;2591:17;2569:53;:::i;:::-;2638:16;;;;;2523:137;-1:-1:-1;;2523:137:3:o;2946:177::-;3092:25;;;3080:2;3065:18;;3047:76::o;3310:258::-;3382:1;3392:113;3406:6;3403:1;3400:13;3392:113;;;3482:11;;;3476:18;3463:11;;;3456:39;3428:2;3421:10;3392:113;;;3523:6;3520:1;3517:13;3514:2;;;3558:1;3549:6;3544:3;3540:16;3533:27;3514:2;;3363:205;;;:::o", - "source": "pragma solidity ^0.7.3;\npragma experimental ABIEncoderV2;\n\ncontract DemoHelpers {\n\n \n function getHash(string memory _key) public pure returns (bytes32 result) {\n return keccak256(abi.encodePacked(_key));\n }\n\n function getTimestamp() public view returns (uint256 result) {\n return block.timestamp;\n }\n\n function getTxId(address sender, address receiver, uint256 inputAmount, bytes32 hashLock, uint256 expiration) public pure returns (bytes32 result) {\n return sha256(\n abi.encodePacked(sender, receiver, inputAmount, hashLock, expiration)\n );\n }\n\n}\n", - "sourcePath": "/Users/jordigironamezcua/Workspace/src/github.com/fork/cactus/extensions/cactus-plugin-htlc-eth-besu/src/main/contracts/contracts/DemoHelpers.sol", - "ast": { - "absolutePath": "/Users/jordigironamezcua/Workspace/src/github.com/fork/cactus/extensions/cactus-plugin-htlc-eth-besu/src/main/contracts/contracts/DemoHelpers.sol", - "exportedSymbols": { - "DemoHelpers": [ - 54 - ] - }, - "id": 55, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1, - "literals": [ - "solidity", - "^", - "0.7", - ".3" - ], - "nodeType": "PragmaDirective", - "src": "0:23:0" - }, - { - "id": 2, - "literals": [ - "experimental", - "ABIEncoderV2" - ], - "nodeType": "PragmaDirective", - "src": "24:33:0" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "fullyImplemented": true, - "id": 54, - "linearizedBaseContracts": [ - 54 - ], - "name": "DemoHelpers", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 16, - "nodeType": "Block", - "src": "165:56:0", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 12, - "name": "_key", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4, - "src": "208:4:0", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "expression": { - "id": 10, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "191:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 11, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "src": "191:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } + ], + "src": "188:16:0" }, - "id": 13, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "191:22:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 9, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -8, - "src": "181:9:0", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 14, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "181:33:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 8, - "id": 15, - "nodeType": "Return", - "src": "174:40:0" - } - ] - }, - "functionSelector": "5b6beeb9", - "id": 17, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getHash", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4, - "mutability": "mutable", - "name": "_key", - "nodeType": "VariableDeclaration", - "scope": 17, - "src": "108:18:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "108:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "107:20:0" - }, - "returnParameters": { - "id": 8, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7, - "mutability": "mutable", - "name": "result", - "nodeType": "VariableDeclaration", - "scope": 17, - "src": "149:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 6, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "149:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "148:16:0" - }, - "scope": 54, - "src": "91:130:0", - "stateMutability": "pure", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 25, - "nodeType": "Block", - "src": "288:39:0", - "statements": [ - { - "expression": { - "expression": { - "id": 22, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "305:5:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } + "scope": 79, + "src": "131:124:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" }, - "id": 23, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "src": "305:15:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 21, - "id": 24, - "nodeType": "Return", - "src": "298:22:0" - } - ] - }, - "functionSelector": "188ec356", - "id": 26, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getTimestamp", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 18, - "nodeType": "ParameterList", - "parameters": [], - "src": "248:2:0" - }, - "returnParameters": { - "id": 21, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 20, - "mutability": "mutable", - "name": "result", - "nodeType": "VariableDeclaration", - "scope": 26, - "src": "272:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 19, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "272:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "271:16:0" - }, - "scope": 54, - "src": "227:100:0", - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 52, - "nodeType": "Block", - "src": "480:123:0", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "id": 44, - "name": "sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28, - "src": "534:6:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 45, - "name": "receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 30, - "src": "542:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 46, - "name": "inputAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 32, - "src": "552:11:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 47, - "name": "hashLock", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "565:8:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 48, - "name": "expiration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 36, - "src": "575:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 42, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "517:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 43, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "src": "517:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } + { + "body": { + "id": 25, + "nodeType": "Block", + "src": "322:39:0", + "statements": [ + { + "expression": { + "expression": { + "id": 22, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967292, + "src": "339:5:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 23, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "345:9:0", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "339:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 21, + "id": 24, + "nodeType": "Return", + "src": "332:22:0" + } + ] }, - "id": 49, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "517:69:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 41, - "name": "sha256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -22, - "src": "497:6:0", - "typeDescriptions": { - "typeIdentifier": "t_function_sha256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 50, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "497:99:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 40, - "id": 51, - "nodeType": "Return", - "src": "490:106:0" - } - ] - }, - "functionSelector": "da9a187a", - "id": 53, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getTxId", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 37, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 28, - "mutability": "mutable", - "name": "sender", - "nodeType": "VariableDeclaration", - "scope": 53, - "src": "350:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 27, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "350:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 30, - "mutability": "mutable", - "name": "receiver", - "nodeType": "VariableDeclaration", - "scope": 53, - "src": "366:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 29, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "366:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 32, - "mutability": "mutable", - "name": "inputAmount", - "nodeType": "VariableDeclaration", - "scope": 53, - "src": "384:19:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "384:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 34, - "mutability": "mutable", - "name": "hashLock", - "nodeType": "VariableDeclaration", - "scope": 53, - "src": "405:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 33, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "405:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 36, - "mutability": "mutable", - "name": "expiration", - "nodeType": "VariableDeclaration", - "scope": 53, - "src": "423:18:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 35, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "423:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "349:93:0" - }, - "returnParameters": { - "id": 40, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 39, - "mutability": "mutable", - "name": "result", - "nodeType": "VariableDeclaration", - "scope": 53, - "src": "464:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 38, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "464:7:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "463:16:0" - }, - "scope": 54, - "src": "333:270:0", - "stateMutability": "pure", - "virtual": false, - "visibility": "public" - } - ], - "scope": 55, - "src": "59:547:0" - } - ], - "src": "0:607:0" - }, - "legacyAST": { - "attributes": { - "absolutePath": "/Users/jordigironamezcua/Workspace/src/github.com/fork/cactus/extensions/cactus-plugin-htlc-eth-besu/src/main/contracts/contracts/DemoHelpers.sol", - "exportedSymbols": { - "DemoHelpers": [ - 54 - ] - } - }, - "children": [ - { - "attributes": { - "literals": [ - "solidity", - "^", - "0.7", - ".3" - ] - }, - "id": 1, - "name": "PragmaDirective", - "src": "0:23:0" - }, - { - "attributes": { - "literals": [ - "experimental", - "ABIEncoderV2" - ] - }, - "id": 2, - "name": "PragmaDirective", - "src": "24:33:0" - }, - { - "attributes": { - "abstract": false, - "baseContracts": [ - null - ], - "contractDependencies": [ - null - ], - "contractKind": "contract", - "fullyImplemented": true, - "linearizedBaseContracts": [ - 54 - ], - "name": "DemoHelpers", - "scope": 55 - }, - "children": [ - { - "attributes": { - "functionSelector": "5b6beeb9", - "implemented": true, - "isConstructor": false, - "kind": "function", - "modifiers": [ - null - ], - "name": "getHash", - "scope": 54, - "stateMutability": "pure", - "virtual": false, - "visibility": "public" - }, - "children": [ - { - "children": [ - { - "attributes": { - "constant": false, - "mutability": "mutable", - "name": "_key", - "scope": 17, - "stateVariable": false, - "storageLocation": "memory", - "type": "string", - "visibility": "internal" - }, - "children": [ - { - "attributes": { - "name": "string", - "type": "string" + "functionSelector": "188ec356", + "id": 26, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getTimestamp", + "nameLocation": "270:12:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 18, + "nodeType": "ParameterList", + "parameters": [], + "src": "282:2:0" }, - "id": 3, - "name": "ElementaryTypeName", - "src": "108:6:0" - } - ], - "id": 4, - "name": "VariableDeclaration", - "src": "108:18:0" - } - ], - "id": 5, - "name": "ParameterList", - "src": "107:20:0" - }, - { - "children": [ - { - "attributes": { - "constant": false, - "mutability": "mutable", - "name": "result", - "scope": 17, - "stateVariable": false, - "storageLocation": "default", - "type": "bytes32", - "visibility": "internal" - }, - "children": [ - { - "attributes": { - "name": "bytes32", - "type": "bytes32" + "returnParameters": { + "id": 21, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20, + "mutability": "mutable", + "name": "result", + "nameLocation": "314:6:0", + "nodeType": "VariableDeclaration", + "scope": 26, + "src": "306:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 19, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "306:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "305:16:0" }, - "id": 6, - "name": "ElementaryTypeName", - "src": "149:7:0" - } - ], - "id": 7, - "name": "VariableDeclaration", - "src": "149:14:0" - } - ], - "id": 8, - "name": "ParameterList", - "src": "148:16:0" - }, - { - "children": [ - { - "attributes": { - "functionReturnParameters": 8 + "scope": 79, + "src": "261:100:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" }, - "children": [ - { - "attributes": { - "isConstant": false, - "isLValue": false, - "isPure": false, - "isStructConstructorCall": false, - "lValueRequested": false, - "names": [ - null - ], - "tryCall": false, - "type": "bytes32", - "type_conversion": false - }, - "children": [ - { - "attributes": { - "argumentTypes": [ + { + "body": { + "id": 50, + "nodeType": "Block", + "src": "525:87:0", + "statements": [ { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" + "expression": { + "arguments": [ + { + "id": 43, + "name": "sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28, + "src": "553:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 44, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30, + "src": "561:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 45, + "name": "inputAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32, + "src": "571:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 46, + "name": "hashLock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34, + "src": "584:8:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 47, + "name": "expiration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 36, + "src": "594:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 41, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "542:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 42, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "546:6:0", + "memberName": "encode", + "nodeType": "MemberAccess", + "src": "542:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 48, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "542:63:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 40, + "id": 49, + "nodeType": "Return", + "src": "535:70:0" } - ], - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": -8, - "type": "function (bytes memory) pure returns (bytes32)", - "value": "keccak256" - }, - "id": 9, - "name": "Identifier", - "src": "181:9:0" - }, - { - "attributes": { - "isConstant": false, - "isLValue": false, - "isPure": false, - "isStructConstructorCall": false, - "lValueRequested": false, - "names": [ - null - ], - "tryCall": false, - "type": "bytes memory", - "type_conversion": false - }, - "children": [ - { - "attributes": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "member_name": "encodePacked", - "type": "function () pure returns (bytes memory)" + ] + }, + "functionSelector": "eeafc5e6", + "id": 51, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getTxIdNoHash", + "nameLocation": "376:13:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 37, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28, + "mutability": "mutable", + "name": "sender", + "nameLocation": "398:6:0", + "nodeType": "VariableDeclaration", + "scope": 51, + "src": "390:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 27, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "390:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 30, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "414:8:0", + "nodeType": "VariableDeclaration", + "scope": 51, + "src": "406:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 29, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "406:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" }, - "children": [ - { - "attributes": { - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": -1, - "type": "abi", - "value": "abi" + { + "constant": false, + "id": 32, + "mutability": "mutable", + "name": "inputAmount", + "nameLocation": "432:11:0", + "nodeType": "VariableDeclaration", + "scope": 51, + "src": "424:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 31, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "424:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - "id": 10, - "name": "Identifier", - "src": "191:3:0" - } - ], - "id": 11, - "name": "MemberAccess", - "src": "191:16:0" - }, - { - "attributes": { - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 4, - "type": "string memory", - "value": "_key" + "visibility": "internal" }, - "id": 12, - "name": "Identifier", - "src": "208:4:0" - } + { + "constant": false, + "id": 34, + "mutability": "mutable", + "name": "hashLock", + "nameLocation": "453:8:0", + "nodeType": "VariableDeclaration", + "scope": 51, + "src": "445:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 33, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "445:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 36, + "mutability": "mutable", + "name": "expiration", + "nameLocation": "471:10:0", + "nodeType": "VariableDeclaration", + "scope": 51, + "src": "463:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 35, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "463:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } ], - "id": 13, - "name": "FunctionCall", - "src": "191:22:0" - } - ], - "id": 14, - "name": "FunctionCall", - "src": "181:33:0" - } - ], - "id": 15, - "name": "Return", - "src": "174:40:0" - } - ], - "id": 16, - "name": "Block", - "src": "165:56:0" - } - ], - "id": 17, - "name": "FunctionDefinition", - "src": "91:130:0" - }, - { - "attributes": { - "functionSelector": "188ec356", - "implemented": true, - "isConstructor": false, - "kind": "function", - "modifiers": [ - null - ], - "name": "getTimestamp", - "scope": 54, - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - "children": [ - { - "attributes": { - "parameters": [ - null - ] - }, - "children": [], - "id": 18, - "name": "ParameterList", - "src": "248:2:0" - }, - { - "children": [ - { - "attributes": { - "constant": false, - "mutability": "mutable", - "name": "result", - "scope": 26, - "stateVariable": false, - "storageLocation": "default", - "type": "uint256", - "visibility": "internal" - }, - "children": [ - { - "attributes": { - "name": "uint256", - "type": "uint256" - }, - "id": 19, - "name": "ElementaryTypeName", - "src": "272:7:0" - } - ], - "id": 20, - "name": "VariableDeclaration", - "src": "272:14:0" - } - ], - "id": 21, - "name": "ParameterList", - "src": "271:16:0" - }, - { - "children": [ - { - "attributes": { - "functionReturnParameters": 21 - }, - "children": [ - { - "attributes": { - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "member_name": "timestamp", - "type": "uint256" + "src": "389:93:0" }, - "children": [ - { - "attributes": { - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": -4, - "type": "block", - "value": "block" - }, - "id": 22, - "name": "Identifier", - "src": "305:5:0" - } - ], - "id": 23, - "name": "MemberAccess", - "src": "305:15:0" - } - ], - "id": 24, - "name": "Return", - "src": "298:22:0" - } - ], - "id": 25, - "name": "Block", - "src": "288:39:0" - } - ], - "id": 26, - "name": "FunctionDefinition", - "src": "227:100:0" - }, - { - "attributes": { - "functionSelector": "da9a187a", - "implemented": true, - "isConstructor": false, - "kind": "function", - "modifiers": [ - null - ], - "name": "getTxId", - "scope": 54, - "stateMutability": "pure", - "virtual": false, - "visibility": "public" - }, - "children": [ - { - "children": [ - { - "attributes": { - "constant": false, - "mutability": "mutable", - "name": "sender", - "scope": 53, - "stateVariable": false, - "storageLocation": "default", - "type": "address", - "visibility": "internal" - }, - "children": [ - { - "attributes": { - "name": "address", - "stateMutability": "nonpayable", - "type": "address" - }, - "id": 27, - "name": "ElementaryTypeName", - "src": "350:7:0" - } - ], - "id": 28, - "name": "VariableDeclaration", - "src": "350:14:0" - }, - { - "attributes": { - "constant": false, - "mutability": "mutable", - "name": "receiver", - "scope": 53, - "stateVariable": false, - "storageLocation": "default", - "type": "address", - "visibility": "internal" - }, - "children": [ - { - "attributes": { - "name": "address", - "stateMutability": "nonpayable", - "type": "address" - }, - "id": 29, - "name": "ElementaryTypeName", - "src": "366:7:0" - } - ], - "id": 30, - "name": "VariableDeclaration", - "src": "366:16:0" - }, - { - "attributes": { - "constant": false, - "mutability": "mutable", - "name": "inputAmount", - "scope": 53, - "stateVariable": false, - "storageLocation": "default", - "type": "uint256", - "visibility": "internal" - }, - "children": [ - { - "attributes": { - "name": "uint256", - "type": "uint256" - }, - "id": 31, - "name": "ElementaryTypeName", - "src": "384:7:0" - } - ], - "id": 32, - "name": "VariableDeclaration", - "src": "384:19:0" - }, - { - "attributes": { - "constant": false, - "mutability": "mutable", - "name": "hashLock", - "scope": 53, - "stateVariable": false, - "storageLocation": "default", - "type": "bytes32", - "visibility": "internal" - }, - "children": [ - { - "attributes": { - "name": "bytes32", - "type": "bytes32" - }, - "id": 33, - "name": "ElementaryTypeName", - "src": "405:7:0" - } - ], - "id": 34, - "name": "VariableDeclaration", - "src": "405:16:0" - }, - { - "attributes": { - "constant": false, - "mutability": "mutable", - "name": "expiration", - "scope": 53, - "stateVariable": false, - "storageLocation": "default", - "type": "uint256", - "visibility": "internal" - }, - "children": [ - { - "attributes": { - "name": "uint256", - "type": "uint256" - }, - "id": 35, - "name": "ElementaryTypeName", - "src": "423:7:0" - } - ], - "id": 36, - "name": "VariableDeclaration", - "src": "423:18:0" - } - ], - "id": 37, - "name": "ParameterList", - "src": "349:93:0" - }, - { - "children": [ - { - "attributes": { - "constant": false, - "mutability": "mutable", - "name": "result", - "scope": 53, - "stateVariable": false, - "storageLocation": "default", - "type": "bytes32", - "visibility": "internal" - }, - "children": [ - { - "attributes": { - "name": "bytes32", - "type": "bytes32" + "returnParameters": { + "id": 40, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 39, + "mutability": "mutable", + "name": "result", + "nameLocation": "517:6:0", + "nodeType": "VariableDeclaration", + "scope": 51, + "src": "504:19:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 38, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "504:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "503:21:0" }, - "id": 38, - "name": "ElementaryTypeName", - "src": "464:7:0" - } - ], - "id": 39, - "name": "VariableDeclaration", - "src": "464:14:0" - } - ], - "id": 40, - "name": "ParameterList", - "src": "463:16:0" - }, - { - "children": [ - { - "attributes": { - "functionReturnParameters": 40 + "scope": 79, + "src": "367:245:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" }, - "children": [ - { - "attributes": { - "isConstant": false, - "isLValue": false, - "isPure": false, - "isStructConstructorCall": false, - "lValueRequested": false, - "names": [ - null - ], - "tryCall": false, - "type": "bytes32", - "type_conversion": false - }, - "children": [ - { - "attributes": { - "argumentTypes": [ + { + "body": { + "id": 77, + "nodeType": "Block", + "src": "765:120:0", + "statements": [ { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 69, + "name": "sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 53, + "src": "816:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 70, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 55, + "src": "824:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 71, + "name": "inputAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 57, + "src": "834:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 72, + "name": "hashLock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 59, + "src": "847:8:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 73, + "name": "expiration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 61, + "src": "857:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 67, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "805:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 68, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "809:6:0", + "memberName": "encode", + "nodeType": "MemberAccess", + "src": "805:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 74, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "805:63:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 66, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967288, + "src": "782:9:0", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 75, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "782:96:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 65, + "id": 76, + "nodeType": "Return", + "src": "775:103:0" } - ], - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": -22, - "type": "function (bytes memory) pure returns (bytes32)", - "value": "sha256" - }, - "id": 41, - "name": "Identifier", - "src": "497:6:0" - }, - { - "attributes": { - "isConstant": false, - "isLValue": false, - "isPure": false, - "isStructConstructorCall": false, - "lValueRequested": false, - "names": [ - null - ], - "tryCall": false, - "type": "bytes memory", - "type_conversion": false - }, - "children": [ - { - "attributes": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" + ] + }, + "functionSelector": "da9a187a", + "id": 78, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getTxId", + "nameLocation": "627:7:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 62, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 53, + "mutability": "mutable", + "name": "sender", + "nameLocation": "643:6:0", + "nodeType": "VariableDeclaration", + "scope": 78, + "src": "635:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" }, - { - "typeIdentifier": "t_address", - "typeString": "address" + "typeName": { + "id": 52, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "635:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "visibility": "internal" + }, + { + "constant": false, + "id": 55, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "659:8:0", + "nodeType": "VariableDeclaration", + "scope": 78, + "src": "651:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeName": { + "id": 54, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "651:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "member_name": "encodePacked", - "type": "function () pure returns (bytes memory)" + "visibility": "internal" }, - "children": [ - { - "attributes": { - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": -1, - "type": "abi", - "value": "abi" + { + "constant": false, + "id": 57, + "mutability": "mutable", + "name": "inputAmount", + "nameLocation": "677:11:0", + "nodeType": "VariableDeclaration", + "scope": 78, + "src": "669:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, - "id": 42, - "name": "Identifier", - "src": "517:3:0" - } - ], - "id": 43, - "name": "MemberAccess", - "src": "517:16:0" - }, - { - "attributes": { - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 28, - "type": "address", - "value": "sender" - }, - "id": 44, - "name": "Identifier", - "src": "534:6:0" - }, - { - "attributes": { - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 30, - "type": "address", - "value": "receiver" - }, - "id": 45, - "name": "Identifier", - "src": "542:8:0" - }, - { - "attributes": { - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 32, - "type": "uint256", - "value": "inputAmount" - }, - "id": 46, - "name": "Identifier", - "src": "552:11:0" - }, - { - "attributes": { - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 34, - "type": "bytes32", - "value": "hashLock" + "typeName": { + "id": 56, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "669:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" }, - "id": 47, - "name": "Identifier", - "src": "565:8:0" - }, - { - "attributes": { - "overloadedDeclarations": [ - null - ], - "referencedDeclaration": 36, - "type": "uint256", - "value": "expiration" + { + "constant": false, + "id": 59, + "mutability": "mutable", + "name": "hashLock", + "nameLocation": "698:8:0", + "nodeType": "VariableDeclaration", + "scope": 78, + "src": "690:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 58, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "690:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" }, - "id": 48, - "name": "Identifier", - "src": "575:10:0" - } + { + "constant": false, + "id": 61, + "mutability": "mutable", + "name": "expiration", + "nameLocation": "716:10:0", + "nodeType": "VariableDeclaration", + "scope": 78, + "src": "708:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 60, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "708:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } ], - "id": 49, - "name": "FunctionCall", - "src": "517:69:0" - } - ], - "id": 50, - "name": "FunctionCall", - "src": "497:99:0" - } - ], - "id": 51, - "name": "Return", - "src": "490:106:0" - } + "src": "634:93:0" + }, + "returnParameters": { + "id": 65, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 64, + "mutability": "mutable", + "name": "result", + "nameLocation": "757:6:0", + "nodeType": "VariableDeclaration", + "scope": 78, + "src": "749:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 63, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "749:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "748:16:0" + }, + "scope": 79, + "src": "618:267:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + } ], - "id": 52, - "name": "Block", - "src": "480:123:0" - } - ], - "id": 53, - "name": "FunctionDefinition", - "src": "333:270:0" - } + "scope": 80, + "src": "99:789:0", + "usedErrors": [] + } ], - "id": 54, - "name": "ContractDefinition", - "src": "59:547:0" - } - ], - "id": 55, - "name": "SourceUnit", - "src": "0:607:0" - }, - "compiler": { - "name": "solc", - "version": "0.7.3+commit.9bfce1f6.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.3.3", - "updatedAt": "2021-05-28T07:20:06.055Z", - "devdoc": { - "kind": "dev", - "methods": {}, - "version": 1 - }, - "userdoc": { - "kind": "user", - "methods": {}, - "version": 1 - } + "src": "40:849:0" + }, + "functionHashes": { + "getHash(string)": "5b6beeb9", + "getTimestamp()": "188ec356", + "getTxId(address,address,uint256,bytes32,uint256)": "da9a187a", + "getTxIdNoHash(address,address,uint256,bytes32,uint256)": "eeafc5e6" + }, + "gasEstimates": { + "creation": { + "codeDepositCost": "163400", + "executionCost": "208", + "totalCost": "163608" + }, + "external": { + "getHash(string)": "infinite", + "getTimestamp()": "147", + "getTxId(address,address,uint256,bytes32,uint256)": "infinite", + "getTxIdNoHash(address,address,uint256,bytes32,uint256)": "infinite" + } + } } \ No newline at end of file diff --git a/packages/cactus-test-plugin-htlc-eth-besu/src/test/solidity/contracts/DemoHelpers.sol b/packages/cactus-test-plugin-htlc-eth-besu/src/test/solidity/contracts/DemoHelpers.sol index b794cd1e514..69f93250b25 100644 --- a/packages/cactus-test-plugin-htlc-eth-besu/src/test/solidity/contracts/DemoHelpers.sol +++ b/packages/cactus-test-plugin-htlc-eth-besu/src/test/solidity/contracts/DemoHelpers.sol @@ -1,20 +1,26 @@ -pragma solidity ^0.7.3; +// SPDX-License-Identifier: Apache-2.0 + +pragma solidity 0.8.19; pragma experimental ABIEncoderV2; contract DemoHelpers { function getHash(string memory _key) public pure returns (bytes32 result) { - return keccak256(abi.encodePacked(_key)); + return keccak256(abi.encode(_key)); } function getTimestamp() public view returns (uint256 result) { return block.timestamp; } + function getTxIdNoHash(address sender, address receiver, uint256 inputAmount, bytes32 hashLock, uint256 expiration) public pure returns (bytes memory result) { + return abi.encode(sender, receiver, inputAmount, hashLock, expiration); + } + function getTxId(address sender, address receiver, uint256 inputAmount, bytes32 hashLock, uint256 expiration) public pure returns (bytes32 result) { - return sha256( - abi.encodePacked(sender, receiver, inputAmount, hashLock, expiration) + return keccak256( + abi.encode(sender, receiver, inputAmount, hashLock, expiration) ); } diff --git a/packages/cactus-test-plugin-htlc-eth-besu/src/test/typescript/integration/plugin-htlc-eth-besu/refund-endpoint.test.ts b/packages/cactus-test-plugin-htlc-eth-besu/src/test/typescript/integration/plugin-htlc-eth-besu/refund-endpoint.test.ts index c85e916aa63..657f33567b3 100644 --- a/packages/cactus-test-plugin-htlc-eth-besu/src/test/typescript/integration/plugin-htlc-eth-besu/refund-endpoint.test.ts +++ b/packages/cactus-test-plugin-htlc-eth-besu/src/test/typescript/integration/plugin-htlc-eth-besu/refund-endpoint.test.ts @@ -41,6 +41,9 @@ const connectorId = uuidv4(); const logLevel: LogLevelDesc = "INFO"; const testCase = "Test refund"; +const FORTY_TWO_AS_HEX_STRING = + "0x0000000000000000000000000000000000000000000000000000000000003432"; + describe(testCase, () => { const besuTestLedger = new BesuTestLedger({ logLevel }); const expressApp = express(); @@ -191,7 +194,7 @@ describe(testCase, () => { inputAmount: 10, outputAmount: 0x04, expiration: timestamp, - hashLock: DataTest.hashLock, + hashLock: FORTY_TWO_AS_HEX_STRING, receiver: DataTest.receiver, outputNetwork: "BTC", outputAddress: "1AcVYm7M3kkJQH28FXAvyBFQzFRL6xPKu8", @@ -204,26 +207,24 @@ describe(testCase, () => { expect(resp).toBeTruthy(); expect(resp.status).toEqual(200); - const responseTxId = await connector.invokeContract({ - contractName: DemoHelperJSON.contractName, - keychainId, - signingCredential: web3SigningCredential, - invocationType: EthContractInvocationType.Call, - methodName: "getTxId", - params: [ - firstHighNetWorthAccount, - DataTest.receiver, - 10, - DataTest.hashLock, - timestamp, - ], - }); - expect(responseTxId.callOutput).toBeTruthy(); - const id = responseTxId.callOutput as string; + const id = web3.utils.soliditySha3( + web3.eth.abi.encodeParameters( + ["address", "address", "uint256", "bytes32", "uint256"], + [ + firstHighNetWorthAccount, + DataTest.receiver, + 10, + FORTY_TWO_AS_HEX_STRING, + timestamp, + ], + ), + ); + expect(id).toBeTruthy(); + expect(id).toBeString(); await timeout(6000); const refundRequest: RefundReq = { - id, + id: id as string, web3SigningCredential, connectorId, keychainId, @@ -236,7 +237,7 @@ describe(testCase, () => { const balance2 = await web3.eth.getBalance(firstHighNetWorthAccount); expect(balance1).toEqual(balance2); const res = await api.getSingleStatusV1({ - id, + id: id as string, web3SigningCredential, connectorId, keychainId, diff --git a/yarn.lock b/yarn.lock index 0971ae85a3c..b8f9128e52e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6135,12 +6135,16 @@ __metadata: axios: 0.21.4 body-parser: 1.19.0 express: 4.17.3 + fast-safe-stringify: 2.1.1 joi: 14.3.1 openapi-types: 7.0.1 prom-client: 13.1.0 + run-time-error: 1.4.0 socket.io: 4.5.4 socket.io-client: 4.5.4 typescript-optional: 2.0.1 + web3-eth-abi: 4.0.3 + web3-utils: 4.0.3 languageName: unknown linkType: soft @@ -6864,6 +6868,8 @@ __metadata: "@types/express": 4.17.13 axios: 0.21.4 express: 4.17.1 + web3-eth-abi: 4.0.3 + web3-utils: 4.0.3 languageName: unknown linkType: soft @@ -8503,6 +8509,15 @@ __metadata: languageName: node linkType: hard +"@noble/curves@npm:1.1.0, @noble/curves@npm:~1.1.0": + version: 1.1.0 + resolution: "@noble/curves@npm:1.1.0" + dependencies: + "@noble/hashes": 1.3.1 + checksum: 2658cdd3f84f71079b4e3516c47559d22cf4b55c23ac8ee9d2b1f8e5b72916d9689e59820e0f9d9cb4a46a8423af5b56dc6bb7782405c88be06a015180508db5 + languageName: node + linkType: hard + "@noble/hashes@npm:1.1.2": version: 1.1.2 resolution: "@noble/hashes@npm:1.1.2" @@ -8517,6 +8532,13 @@ __metadata: languageName: node linkType: hard +"@noble/hashes@npm:1.3.1, @noble/hashes@npm:~1.3.0, @noble/hashes@npm:~1.3.1": + version: 1.3.1 + resolution: "@noble/hashes@npm:1.3.1" + checksum: 7fdefc0f7a0c1ec27acc6ff88841793e3f93ec4ce6b8a6a12bfc0dd70ae6b7c4c82fe305fdfeda1735d5ad4a9eebe761e6693b3d355689c559e91242f4bc95b1 + languageName: node + linkType: hard + "@noble/secp256k1@npm:1.7.1, @noble/secp256k1@npm:~1.7.0": version: 1.7.1 resolution: "@noble/secp256k1@npm:1.7.1" @@ -9414,6 +9436,17 @@ __metadata: languageName: node linkType: hard +"@scure/bip32@npm:1.3.1": + version: 1.3.1 + resolution: "@scure/bip32@npm:1.3.1" + dependencies: + "@noble/curves": ~1.1.0 + "@noble/hashes": ~1.3.1 + "@scure/base": ~1.1.0 + checksum: 394d65f77a40651eba21a5096da0f4233c3b50d422864751d373fcf142eeedb94a1149f9ab1dbb078086dab2d0bc27e2b1afec8321bf22d4403c7df2fea5bfe2 + languageName: node + linkType: hard + "@scure/bip39@npm:1.1.1": version: 1.1.1 resolution: "@scure/bip39@npm:1.1.1" @@ -9424,6 +9457,16 @@ __metadata: languageName: node linkType: hard +"@scure/bip39@npm:1.2.1": + version: 1.2.1 + resolution: "@scure/bip39@npm:1.2.1" + dependencies: + "@noble/hashes": ~1.3.0 + "@scure/base": ~1.1.0 + checksum: c5bd6f1328fdbeae2dcdd891825b1610225310e5e62a4942714db51066866e4f7bef242c7b06a1b9dcc8043a4a13412cf5c5df76d3b10aa9e36b82e9b6e3eeaa + languageName: node + linkType: hard + "@sentry/core@npm:5.30.0": version: 5.30.0 resolution: "@sentry/core@npm:5.30.0" @@ -20351,6 +20394,18 @@ __metadata: languageName: node linkType: hard +"ethereum-cryptography@npm:^2.0.0": + version: 2.1.2 + resolution: "ethereum-cryptography@npm:2.1.2" + dependencies: + "@noble/curves": 1.1.0 + "@noble/hashes": 1.3.1 + "@scure/bip32": 1.3.1 + "@scure/bip39": 1.2.1 + checksum: 2e8f7b8cc90232ae838ab6a8167708e8362621404d26e79b5d9e762c7b53d699f7520aff358d9254de658fcd54d2d0af168ff909943259ed27dc4cef2736410c + languageName: node + linkType: hard + "ethereumjs-abi@npm:^0.6.8": version: 0.6.8 resolution: "ethereumjs-abi@npm:0.6.8" @@ -22546,6 +22601,24 @@ __metadata: languageName: node linkType: hard +"generate-function@npm:^2.0.0": + version: 2.3.1 + resolution: "generate-function@npm:2.3.1" + dependencies: + is-property: ^1.0.2 + checksum: 652f083de206ead2bae4caf9c7eeb465e8d98c0b8ed2a29c6afc538cef0785b5c6eea10548f1e13cc586d3afd796c13c830c2cb3dc612ec2457b2aadda5f57c9 + languageName: node + linkType: hard + +"generate-object-property@npm:^1.1.0": + version: 1.2.0 + resolution: "generate-object-property@npm:1.2.0" + dependencies: + is-property: ^1.0.0 + checksum: 5141ca5fd545f0aabd24fd13f9f3ecf9cfea2255db00d46e282d65141d691d560c70b6361c3c0c4982f86f600361925bfd4773e0350c66d0210e6129ae553a09 + languageName: node + linkType: hard + "generic-names@npm:^1.0.2": version: 1.0.3 resolution: "generic-names@npm:1.0.3" @@ -25479,6 +25552,26 @@ gluegun@latest: languageName: node linkType: hard +"is-my-ip-valid@npm:^1.0.0": + version: 1.0.1 + resolution: "is-my-ip-valid@npm:1.0.1" + checksum: 0a50180a9c0842503a2199ca0ba03888069e7c093f71236c65632e9b0f496ea57536856e1ad3d1635010cb5959c551496ea84cfc56088a8e7879fe30b9d71943 + languageName: node + linkType: hard + +"is-my-json-valid@npm:^2.20.6": + version: 2.20.6 + resolution: "is-my-json-valid@npm:2.20.6" + dependencies: + generate-function: ^2.0.0 + generate-object-property: ^1.1.0 + is-my-ip-valid: ^1.0.0 + jsonpointer: ^5.0.0 + xtend: ^4.0.0 + checksum: d3519e18e6a0f4c777d5a2027b5c80d05abd0949179b94795bd2aa6c54e8f44c23b8789cb7d44332015b86cfd73dca57331e7fa53202b28e40aa4620e7f61166 + languageName: node + linkType: hard + "is-nan@npm:^1.2.1": version: 1.3.2 resolution: "is-nan@npm:1.3.2" @@ -25674,6 +25767,13 @@ gluegun@latest: languageName: node linkType: hard +"is-property@npm:^1.0.0, is-property@npm:^1.0.2": + version: 1.0.2 + resolution: "is-property@npm:1.0.2" + checksum: 33b661a3690bcc88f7e47bb0a21b9e3187e76a317541ea7ec5e8096d954f441b77a46d8930c785f7fbf4ef8dfd624c25495221e026e50f74c9048fe501773be5 + languageName: node + linkType: hard + "is-redirect@npm:^1.0.0": version: 1.0.0 resolution: "is-redirect@npm:1.0.0" @@ -28258,6 +28358,13 @@ gluegun@latest: languageName: node linkType: hard +"jsonpointer@npm:^5.0.0": + version: 5.0.1 + resolution: "jsonpointer@npm:5.0.1" + checksum: 0b40f712900ad0c846681ea2db23b6684b9d5eedf55807b4708c656f5894b63507d0e28ae10aa1bddbea551241035afe62b6df0800fc94c2e2806a7f3adecd7c + languageName: node + linkType: hard + "jsonwebtoken@npm:8.5.1, jsonwebtoken@npm:^8.5.1": version: 8.5.1 resolution: "jsonwebtoken@npm:8.5.1" @@ -42830,6 +42937,15 @@ gluegun@latest: languageName: node linkType: hard +"web3-errors@npm:^1.0.2": + version: 1.0.2 + resolution: "web3-errors@npm:1.0.2" + dependencies: + web3-types: ^1.0.2 + checksum: d557c90baf757f2fa647a62d8c65301752b14c056c0731e435b1c7babdb569da3d1c55df6d1b5d2076407322e87a452083f4974e3a22e78ab7aacce749bdceae + languageName: node + linkType: hard + "web3-eth-abi@npm:1.10.0": version: 1.10.0 resolution: "web3-eth-abi@npm:1.10.0" @@ -42890,6 +43006,19 @@ gluegun@latest: languageName: node linkType: hard +"web3-eth-abi@npm:4.0.3": + version: 4.0.3 + resolution: "web3-eth-abi@npm:4.0.3" + dependencies: + "@ethersproject/abi": ^5.7.0 + "@ethersproject/bignumber": ^5.7.0 + web3-errors: ^1.0.2 + web3-types: ^1.0.2 + web3-utils: ^4.0.3 + checksum: a0cac43873ebfce19e1fdf17c25ea81cffbaec1119abdf4f4e0196958fb880887211630d4a2653701c481454b5e9f3ea1996f720e6d9a2d79b7859a5b567f644 + languageName: node + linkType: hard + "web3-eth-accounts@npm:1.10.0": version: 1.10.0 resolution: "web3-eth-accounts@npm:1.10.0" @@ -43787,6 +43916,13 @@ gluegun@latest: languageName: node linkType: hard +"web3-types@npm:^1.0.2": + version: 1.0.2 + resolution: "web3-types@npm:1.0.2" + checksum: 2f558330db188bca47299f0607d4bbece6339e4003dcddeba7c704acfaf7126c35ad1bba710a815fad312f3976db5a04db376f1994286472c4ead166131baaf3 + languageName: node + linkType: hard + "web3-utils@npm:1.10.0, web3-utils@npm:^1.0.0-beta.31": version: 1.10.0 resolution: "web3-utils@npm:1.10.0" @@ -43877,6 +44013,31 @@ gluegun@latest: languageName: node linkType: hard +"web3-utils@npm:4.0.3, web3-utils@npm:^4.0.3": + version: 4.0.3 + resolution: "web3-utils@npm:4.0.3" + dependencies: + ethereum-cryptography: ^2.0.0 + web3-errors: ^1.0.2 + web3-types: ^1.0.2 + web3-validator: ^1.0.2 + checksum: a6e4e669a6106eafc481f6b9eb057e0418a6996b961287cbff8a7e0b300316a8739680201841b48333c7c30d6c8e89ad4c3fb9d373f3659098398c8ec29478ff + languageName: node + linkType: hard + +"web3-validator@npm:^1.0.2": + version: 1.0.2 + resolution: "web3-validator@npm:1.0.2" + dependencies: + ethereum-cryptography: ^2.0.0 + is-my-json-valid: ^2.20.6 + util: ^0.12.5 + web3-errors: ^1.0.2 + web3-types: ^1.0.2 + checksum: 9b9d3a8bd90ce903252f5826897d2b4aeff1e4327ecb59bde9dc6e1caf0f5436edc880b62ee466b959b04b888a7a77fdee8bac2e8005759ac980d4751a89210d + languageName: node + linkType: hard + "web3@npm:1.10.0": version: 1.10.0 resolution: "web3@npm:1.10.0"