From 0f962afeb3a3f24333416f6ec29f16163943bdb6 Mon Sep 17 00:00:00 2001 From: Xiangyi Zheng Date: Thu, 20 Feb 2025 13:26:37 -0800 Subject: [PATCH] all --- ...nSignaturesModule#ChainSignatures.dbg.json | 4 + ...ChainSignaturesModule#ChainSignatures.json | 579 + .../b5dd3732a20d3928dd4fddfe2f170580.json | 26974 ++++++++++++++++ .../chain-1/deployed_addresses.json | 3 + .../deployments/chain-1/journal.jsonl | 7 + .../ignition/modules/chainSignatures.js | 2 +- .../contract-eth/ignition/params.json | 2 +- .../contract-eth/scripts/requestSign.js | 7 +- 8 files changed, 27574 insertions(+), 4 deletions(-) create mode 100644 chain-signatures/contract-eth/ignition/deployments/chain-1/artifacts/ChainSignaturesModule#ChainSignatures.dbg.json create mode 100644 chain-signatures/contract-eth/ignition/deployments/chain-1/artifacts/ChainSignaturesModule#ChainSignatures.json create mode 100644 chain-signatures/contract-eth/ignition/deployments/chain-1/build-info/b5dd3732a20d3928dd4fddfe2f170580.json create mode 100644 chain-signatures/contract-eth/ignition/deployments/chain-1/deployed_addresses.json create mode 100644 chain-signatures/contract-eth/ignition/deployments/chain-1/journal.jsonl diff --git a/chain-signatures/contract-eth/ignition/deployments/chain-1/artifacts/ChainSignaturesModule#ChainSignatures.dbg.json b/chain-signatures/contract-eth/ignition/deployments/chain-1/artifacts/ChainSignaturesModule#ChainSignatures.dbg.json new file mode 100644 index 000000000..f3d1d0ecb --- /dev/null +++ b/chain-signatures/contract-eth/ignition/deployments/chain-1/artifacts/ChainSignaturesModule#ChainSignatures.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../build-info/b5dd3732a20d3928dd4fddfe2f170580.json" +} \ No newline at end of file diff --git a/chain-signatures/contract-eth/ignition/deployments/chain-1/artifacts/ChainSignaturesModule#ChainSignatures.json b/chain-signatures/contract-eth/ignition/deployments/chain-1/artifacts/ChainSignaturesModule#ChainSignatures.json new file mode 100644 index 000000000..f0754c250 --- /dev/null +++ b/chain-signatures/contract-eth/ignition/deployments/chain-1/artifacts/ChainSignaturesModule#ChainSignatures.json @@ -0,0 +1,579 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "ChainSignatures", + "sourceName": "contracts/ChainSignatures.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_mpc_network", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_signatureDeposit", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "AccessControlBadConfirmation", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "neededRole", + "type": "bytes32" + } + ], + "name": "AccessControlUnauthorizedAccount", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "requestId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "address", + "name": "responder", + "type": "address" + }, + { + "indexed": false, + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "SignatureError", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "payload", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint32", + "name": "keyVersion", + "type": "uint32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "deposit", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "chainId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "path", + "type": "string" + }, + { + "indexed": false, + "internalType": "string", + "name": "algo", + "type": "string" + }, + { + "indexed": false, + "internalType": "string", + "name": "dest", + "type": "string" + }, + { + "indexed": false, + "internalType": "string", + "name": "params", + "type": "string" + } + ], + "name": "SignatureRequested", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "requestId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "address", + "name": "responder", + "type": "address" + }, + { + "components": [ + { + "components": [ + { + "internalType": "uint256", + "name": "x", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "y", + "type": "uint256" + } + ], + "internalType": "struct ChainSignatures.AffinePoint", + "name": "bigR", + "type": "tuple" + }, + { + "internalType": "uint256", + "name": "s", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "recoveryId", + "type": "uint8" + } + ], + "indexed": false, + "internalType": "struct ChainSignatures.Signature", + "name": "signature", + "type": "tuple" + } + ], + "name": "SignatureResponded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "Withdraw", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getSignatureDeposit", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "callerConfirmation", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "bytes32", + "name": "requestId", + "type": "bytes32" + }, + { + "components": [ + { + "components": [ + { + "internalType": "uint256", + "name": "x", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "y", + "type": "uint256" + } + ], + "internalType": "struct ChainSignatures.AffinePoint", + "name": "bigR", + "type": "tuple" + }, + { + "internalType": "uint256", + "name": "s", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "recoveryId", + "type": "uint8" + } + ], + "internalType": "struct ChainSignatures.Signature", + "name": "signature", + "type": "tuple" + } + ], + "internalType": "struct ChainSignatures.Response[]", + "name": "_responses", + "type": "tuple[]" + } + ], + "name": "respond", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "bytes32", + "name": "requestId", + "type": "bytes32" + }, + { + "internalType": "string", + "name": "errorMessage", + "type": "string" + } + ], + "internalType": "struct ChainSignatures.ErrorResponse[]", + "name": "_errors", + "type": "tuple[]" + } + ], + "name": "respondError", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "setSignatureDeposit", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "bytes32", + "name": "payload", + "type": "bytes32" + }, + { + "internalType": "string", + "name": "path", + "type": "string" + }, + { + "internalType": "uint32", + "name": "keyVersion", + "type": "uint32" + }, + { + "internalType": "string", + "name": "algo", + "type": "string" + }, + { + "internalType": "string", + "name": "dest", + "type": "string" + }, + { + "internalType": "string", + "name": "params", + "type": "string" + } + ], + "internalType": "struct ChainSignatures.SignRequest", + "name": "_request", + "type": "tuple" + } + ], + "name": "sign", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_receiver", + "type": "address" + } + ], + "name": "withdraw", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b50604051611b42380380611b428339818101604052810190610032919061025c565b6100456000801b8361005460201b60201c565b5080600181905550505061029c565b6000610066838361015160201b60201c565b61014657600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506100e36101bb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001905061014b565b600090505b92915050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600033905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006101f3826101c8565b9050919050565b610203816101e8565b811461020e57600080fd5b50565b600081519050610220816101fa565b92915050565b6000819050919050565b61023981610226565b811461024457600080fd5b50565b60008151905061025681610230565b92915050565b60008060408385031215610273576102726101c3565b5b600061028185828601610211565b925050602061029285828601610247565b9150509250929050565b611897806102ab6000396000f3fe6080604052600436106100c15760003560e01c80635f45af881161007f578063a217fddf11610059578063a217fddf14610266578063ae650b9514610291578063d547741f146102bc578063fb0dc126146102e5576100c1565b80635f45af88146101e457806391d148541461020d578063a03b5c3b1461024a576100c1565b8062f714ce146100c657806301ffc9a7146100ef578063248a9ca31461012c5780632f2ff15d1461016957806336568abe1461019257806343ec0d4c146101bb575b600080fd5b3480156100d257600080fd5b506100ed60048036038101906100e89190610c08565b61030e565b005b3480156100fb57600080fd5b5061011660048036038101906101119190610ca0565b6104cd565b6040516101239190610ce8565b60405180910390f35b34801561013857600080fd5b50610153600480360381019061014e9190610d39565b610547565b6040516101609190610d75565b60405180910390f35b34801561017557600080fd5b50610190600480360381019061018b9190610d90565b610566565b005b34801561019e57600080fd5b506101b960048036038101906101b49190610d90565b610588565b005b3480156101c757600080fd5b506101e260048036038101906101dd9190610e35565b610603565b005b3480156101f057600080fd5b5061020b60048036038101906102069190610e82565b6106b9565b005b34801561021957600080fd5b50610234600480360381019061022f9190610d90565b6106d1565b6040516102419190610ce8565b60405180910390f35b610264600480360381019061025f9190611146565b61073b565b005b34801561027257600080fd5b5061027b6107e2565b6040516102889190610d75565b60405180910390f35b34801561029d57600080fd5b506102a66107e9565b6040516102b3919061119e565b60405180910390f35b3480156102c857600080fd5b506102e360048036038101906102de9190610d90565b6107f3565b005b3480156102f157600080fd5b5061030c6004803603810190610307919061120f565b610815565b005b6000801b61031b816108a6565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361038a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610381906112b9565b60405180910390fd5b478311156103cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c49061134b565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16846040516103f39061139c565b60006040518083038185875af1925050503d8060008114610430576040519150601f19603f3d011682016040523d82523d6000602084013e610435565b606091505b5050905080610479576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610470906113fd565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff167f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364856040516104bf919061119e565b60405180910390a250505050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610540575061053f826108ba565b5b9050919050565b6000806000838152602001908152602001600020600101549050919050565b61056f82610547565b610578816108a6565b6105828383610924565b50505050565b610590610a15565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146105f4576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6105fe8282610a1d565b505050565b60005b828290508110156106b4578282828181106106245761062361141d565b5b9050602002810190610636919061145b565b600001357f3a8c98eb820de2bc0f92e6c44a3bc0245111e8d203e7aa5e8f2cb783b61ca1243385858581811061066f5761066e61141d565b5b9050602002810190610681919061145b565b80602001906106909190611483565b60405161069f93929190611522565b60405180910390a28080600101915050610606565b505050565b6000801b6106c6816108a6565b816001819055505050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600154341015610780576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610777906115a0565b60405180910390fd5b7f6c77c4e5e031dca0c4944909e0d4d343c9c5b16eda4ef1d4be0762693e026722338260000151836040015134468660200151876060015188608001518960a001516040516107d79998979695949392919061163d565b60405180910390a150565b6000801b81565b6000600154905090565b6107fc82610547565b610805816108a6565b61080f8383610a1d565b50505050565b60005b828290508110156108a1578282828181106108365761083561141d565b5b905060a00201600001357f8fefda2f6c146df62efa1de95f8ff0b9c29ae07b9846e61fbce6e618897397ff338585858181106108755761087461141d565b5b905060a0020160200160405161088c92919061180f565b60405180910390a28080600101915050610818565b505050565b6108b7816108b2610a15565b610b0f565b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600061093083836106d1565b610a0a57600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506109a7610a15565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050610a0f565b600090505b92915050565b600033905090565b6000610a2983836106d1565b15610b0457600080600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610aa1610a15565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050610b09565b600090505b92915050565b610b1982826106d1565b610b5c5780826040517fe2517d3f000000000000000000000000000000000000000000000000000000008152600401610b53929190611838565b60405180910390fd5b5050565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b610b8781610b74565b8114610b9257600080fd5b50565b600081359050610ba481610b7e565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bd582610baa565b9050919050565b610be581610bca565b8114610bf057600080fd5b50565b600081359050610c0281610bdc565b92915050565b60008060408385031215610c1f57610c1e610b6a565b5b6000610c2d85828601610b95565b9250506020610c3e85828601610bf3565b9150509250929050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610c7d81610c48565b8114610c8857600080fd5b50565b600081359050610c9a81610c74565b92915050565b600060208284031215610cb657610cb5610b6a565b5b6000610cc484828501610c8b565b91505092915050565b60008115159050919050565b610ce281610ccd565b82525050565b6000602082019050610cfd6000830184610cd9565b92915050565b6000819050919050565b610d1681610d03565b8114610d2157600080fd5b50565b600081359050610d3381610d0d565b92915050565b600060208284031215610d4f57610d4e610b6a565b5b6000610d5d84828501610d24565b91505092915050565b610d6f81610d03565b82525050565b6000602082019050610d8a6000830184610d66565b92915050565b60008060408385031215610da757610da6610b6a565b5b6000610db585828601610d24565b9250506020610dc685828601610bf3565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f840112610df557610df4610dd0565b5b8235905067ffffffffffffffff811115610e1257610e11610dd5565b5b602083019150836020820283011115610e2e57610e2d610dda565b5b9250929050565b60008060208385031215610e4c57610e4b610b6a565b5b600083013567ffffffffffffffff811115610e6a57610e69610b6f565b5b610e7685828601610ddf565b92509250509250929050565b600060208284031215610e9857610e97610b6a565b5b6000610ea684828501610b95565b91505092915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610efd82610eb4565b810181811067ffffffffffffffff82111715610f1c57610f1b610ec5565b5b80604052505050565b6000610f2f610b60565b9050610f3b8282610ef4565b919050565b600080fd5b600080fd5b600067ffffffffffffffff821115610f6557610f64610ec5565b5b610f6e82610eb4565b9050602081019050919050565b82818337600083830152505050565b6000610f9d610f9884610f4a565b610f25565b905082815260208101848484011115610fb957610fb8610f45565b5b610fc4848285610f7b565b509392505050565b600082601f830112610fe157610fe0610dd0565b5b8135610ff1848260208601610f8a565b91505092915050565b600063ffffffff82169050919050565b61101381610ffa565b811461101e57600080fd5b50565b6000813590506110308161100a565b92915050565b600060c0828403121561104c5761104b610eaf565b5b61105660c0610f25565b9050600061106684828501610d24565b600083015250602082013567ffffffffffffffff81111561108a57611089610f40565b5b61109684828501610fcc565b60208301525060406110aa84828501611021565b604083015250606082013567ffffffffffffffff8111156110ce576110cd610f40565b5b6110da84828501610fcc565b606083015250608082013567ffffffffffffffff8111156110fe576110fd610f40565b5b61110a84828501610fcc565b60808301525060a082013567ffffffffffffffff81111561112e5761112d610f40565b5b61113a84828501610fcc565b60a08301525092915050565b60006020828403121561115c5761115b610b6a565b5b600082013567ffffffffffffffff81111561117a57611179610b6f565b5b61118684828501611036565b91505092915050565b61119881610b74565b82525050565b60006020820190506111b3600083018461118f565b92915050565b60008083601f8401126111cf576111ce610dd0565b5b8235905067ffffffffffffffff8111156111ec576111eb610dd5565b5b6020830191508360a082028301111561120857611207610dda565b5b9250929050565b6000806020838503121561122657611225610b6a565b5b600083013567ffffffffffffffff81111561124457611243610b6f565b5b611250858286016111b9565b92509250509250929050565b600082825260208201905092915050565b7f496e76616c696420726563656976657220616464726573730000000000000000600082015250565b60006112a360188361125c565b91506112ae8261126d565b602082019050919050565b600060208201905081810360008301526112d281611296565b9050919050565b7f576974686472617720616d6f756e74206d75737420626520736d616c6c65722060008201527f7468616e20746f74616c2062616c616e636520696e20636f6e74726163740000602082015250565b6000611335603e8361125c565b9150611340826112d9565b604082019050919050565b6000602082019050818103600083015261136481611328565b9050919050565b600081905092915050565b50565b600061138660008361136b565b915061139182611376565b600082019050919050565b60006113a782611379565b9150819050919050565b7f5472616e73666572206661696c65640000000000000000000000000000000000600082015250565b60006113e7600f8361125c565b91506113f2826113b1565b602082019050919050565b60006020820190508181036000830152611416816113da565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b600080fd5b600080fd5b6000823560016040038336030381126114775761147661144c565b5b80830191505092915050565b600080833560016020038436030381126114a05761149f61144c565b5b80840192508235915067ffffffffffffffff8211156114c2576114c1611451565b5b6020830192506001820236038313156114de576114dd611456565b5b509250929050565b6114ef81610bca565b82525050565b6000611501838561125c565b935061150e838584610f7b565b61151783610eb4565b840190509392505050565b600060408201905061153760008301866114e6565b818103602083015261154a8184866114f5565b9050949350505050565b7f496e73756666696369656e74206465706f736974000000000000000000000000600082015250565b600061158a60148361125c565b915061159582611554565b602082019050919050565b600060208201905081810360008301526115b98161157d565b9050919050565b6115c981610ffa565b82525050565b600081519050919050565b60005b838110156115f85780820151818401526020810190506115dd565b60008484015250505050565b600061160f826115cf565b611619818561125c565b93506116298185602086016115da565b61163281610eb4565b840191505092915050565b600061012082019050611653600083018c6114e6565b611660602083018b610d66565b61166d604083018a6115c0565b61167a606083018961118f565b611687608083018861118f565b81810360a08301526116998187611604565b905081810360c08301526116ad8186611604565b905081810360e08301526116c18185611604565b90508181036101008301526116d68184611604565b90509a9950505050505050505050565b600082905092915050565b60006117006020840184610b95565b905092915050565b61171181610b74565b82525050565b6040820161172860008301836116f1565b6117356000850182611708565b5061174360208301836116f1565b6117506020850182611708565b50505050565b600060ff82169050919050565b61176c81611756565b811461177757600080fd5b50565b60008135905061178981611763565b92915050565b600061179e602084018461177a565b905092915050565b6117af81611756565b82525050565b608082016117c660008301836116e6565b6117d36000850182611717565b506117e160408301836116f1565b6117ee6040850182611708565b506117fc606083018361178f565b61180960608501826117a6565b50505050565b600060a08201905061182460008301856114e6565b61183160208301846117b5565b9392505050565b600060408201905061184d60008301856114e6565b61185a6020830184610d66565b939250505056fea26469706673582212202eea9aaacf9dd7810b1f570cb63d664bd79569b59fd396dcd9da436007fb4cf364736f6c634300081b0033", + "deployedBytecode": "0x6080604052600436106100c15760003560e01c80635f45af881161007f578063a217fddf11610059578063a217fddf14610266578063ae650b9514610291578063d547741f146102bc578063fb0dc126146102e5576100c1565b80635f45af88146101e457806391d148541461020d578063a03b5c3b1461024a576100c1565b8062f714ce146100c657806301ffc9a7146100ef578063248a9ca31461012c5780632f2ff15d1461016957806336568abe1461019257806343ec0d4c146101bb575b600080fd5b3480156100d257600080fd5b506100ed60048036038101906100e89190610c08565b61030e565b005b3480156100fb57600080fd5b5061011660048036038101906101119190610ca0565b6104cd565b6040516101239190610ce8565b60405180910390f35b34801561013857600080fd5b50610153600480360381019061014e9190610d39565b610547565b6040516101609190610d75565b60405180910390f35b34801561017557600080fd5b50610190600480360381019061018b9190610d90565b610566565b005b34801561019e57600080fd5b506101b960048036038101906101b49190610d90565b610588565b005b3480156101c757600080fd5b506101e260048036038101906101dd9190610e35565b610603565b005b3480156101f057600080fd5b5061020b60048036038101906102069190610e82565b6106b9565b005b34801561021957600080fd5b50610234600480360381019061022f9190610d90565b6106d1565b6040516102419190610ce8565b60405180910390f35b610264600480360381019061025f9190611146565b61073b565b005b34801561027257600080fd5b5061027b6107e2565b6040516102889190610d75565b60405180910390f35b34801561029d57600080fd5b506102a66107e9565b6040516102b3919061119e565b60405180910390f35b3480156102c857600080fd5b506102e360048036038101906102de9190610d90565b6107f3565b005b3480156102f157600080fd5b5061030c6004803603810190610307919061120f565b610815565b005b6000801b61031b816108a6565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361038a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610381906112b9565b60405180910390fd5b478311156103cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c49061134b565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16846040516103f39061139c565b60006040518083038185875af1925050503d8060008114610430576040519150601f19603f3d011682016040523d82523d6000602084013e610435565b606091505b5050905080610479576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610470906113fd565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff167f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364856040516104bf919061119e565b60405180910390a250505050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610540575061053f826108ba565b5b9050919050565b6000806000838152602001908152602001600020600101549050919050565b61056f82610547565b610578816108a6565b6105828383610924565b50505050565b610590610a15565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146105f4576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6105fe8282610a1d565b505050565b60005b828290508110156106b4578282828181106106245761062361141d565b5b9050602002810190610636919061145b565b600001357f3a8c98eb820de2bc0f92e6c44a3bc0245111e8d203e7aa5e8f2cb783b61ca1243385858581811061066f5761066e61141d565b5b9050602002810190610681919061145b565b80602001906106909190611483565b60405161069f93929190611522565b60405180910390a28080600101915050610606565b505050565b6000801b6106c6816108a6565b816001819055505050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600154341015610780576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610777906115a0565b60405180910390fd5b7f6c77c4e5e031dca0c4944909e0d4d343c9c5b16eda4ef1d4be0762693e026722338260000151836040015134468660200151876060015188608001518960a001516040516107d79998979695949392919061163d565b60405180910390a150565b6000801b81565b6000600154905090565b6107fc82610547565b610805816108a6565b61080f8383610a1d565b50505050565b60005b828290508110156108a1578282828181106108365761083561141d565b5b905060a00201600001357f8fefda2f6c146df62efa1de95f8ff0b9c29ae07b9846e61fbce6e618897397ff338585858181106108755761087461141d565b5b905060a0020160200160405161088c92919061180f565b60405180910390a28080600101915050610818565b505050565b6108b7816108b2610a15565b610b0f565b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600061093083836106d1565b610a0a57600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506109a7610a15565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050610a0f565b600090505b92915050565b600033905090565b6000610a2983836106d1565b15610b0457600080600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610aa1610a15565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050610b09565b600090505b92915050565b610b1982826106d1565b610b5c5780826040517fe2517d3f000000000000000000000000000000000000000000000000000000008152600401610b53929190611838565b60405180910390fd5b5050565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b610b8781610b74565b8114610b9257600080fd5b50565b600081359050610ba481610b7e565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bd582610baa565b9050919050565b610be581610bca565b8114610bf057600080fd5b50565b600081359050610c0281610bdc565b92915050565b60008060408385031215610c1f57610c1e610b6a565b5b6000610c2d85828601610b95565b9250506020610c3e85828601610bf3565b9150509250929050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610c7d81610c48565b8114610c8857600080fd5b50565b600081359050610c9a81610c74565b92915050565b600060208284031215610cb657610cb5610b6a565b5b6000610cc484828501610c8b565b91505092915050565b60008115159050919050565b610ce281610ccd565b82525050565b6000602082019050610cfd6000830184610cd9565b92915050565b6000819050919050565b610d1681610d03565b8114610d2157600080fd5b50565b600081359050610d3381610d0d565b92915050565b600060208284031215610d4f57610d4e610b6a565b5b6000610d5d84828501610d24565b91505092915050565b610d6f81610d03565b82525050565b6000602082019050610d8a6000830184610d66565b92915050565b60008060408385031215610da757610da6610b6a565b5b6000610db585828601610d24565b9250506020610dc685828601610bf3565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f840112610df557610df4610dd0565b5b8235905067ffffffffffffffff811115610e1257610e11610dd5565b5b602083019150836020820283011115610e2e57610e2d610dda565b5b9250929050565b60008060208385031215610e4c57610e4b610b6a565b5b600083013567ffffffffffffffff811115610e6a57610e69610b6f565b5b610e7685828601610ddf565b92509250509250929050565b600060208284031215610e9857610e97610b6a565b5b6000610ea684828501610b95565b91505092915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610efd82610eb4565b810181811067ffffffffffffffff82111715610f1c57610f1b610ec5565b5b80604052505050565b6000610f2f610b60565b9050610f3b8282610ef4565b919050565b600080fd5b600080fd5b600067ffffffffffffffff821115610f6557610f64610ec5565b5b610f6e82610eb4565b9050602081019050919050565b82818337600083830152505050565b6000610f9d610f9884610f4a565b610f25565b905082815260208101848484011115610fb957610fb8610f45565b5b610fc4848285610f7b565b509392505050565b600082601f830112610fe157610fe0610dd0565b5b8135610ff1848260208601610f8a565b91505092915050565b600063ffffffff82169050919050565b61101381610ffa565b811461101e57600080fd5b50565b6000813590506110308161100a565b92915050565b600060c0828403121561104c5761104b610eaf565b5b61105660c0610f25565b9050600061106684828501610d24565b600083015250602082013567ffffffffffffffff81111561108a57611089610f40565b5b61109684828501610fcc565b60208301525060406110aa84828501611021565b604083015250606082013567ffffffffffffffff8111156110ce576110cd610f40565b5b6110da84828501610fcc565b606083015250608082013567ffffffffffffffff8111156110fe576110fd610f40565b5b61110a84828501610fcc565b60808301525060a082013567ffffffffffffffff81111561112e5761112d610f40565b5b61113a84828501610fcc565b60a08301525092915050565b60006020828403121561115c5761115b610b6a565b5b600082013567ffffffffffffffff81111561117a57611179610b6f565b5b61118684828501611036565b91505092915050565b61119881610b74565b82525050565b60006020820190506111b3600083018461118f565b92915050565b60008083601f8401126111cf576111ce610dd0565b5b8235905067ffffffffffffffff8111156111ec576111eb610dd5565b5b6020830191508360a082028301111561120857611207610dda565b5b9250929050565b6000806020838503121561122657611225610b6a565b5b600083013567ffffffffffffffff81111561124457611243610b6f565b5b611250858286016111b9565b92509250509250929050565b600082825260208201905092915050565b7f496e76616c696420726563656976657220616464726573730000000000000000600082015250565b60006112a360188361125c565b91506112ae8261126d565b602082019050919050565b600060208201905081810360008301526112d281611296565b9050919050565b7f576974686472617720616d6f756e74206d75737420626520736d616c6c65722060008201527f7468616e20746f74616c2062616c616e636520696e20636f6e74726163740000602082015250565b6000611335603e8361125c565b9150611340826112d9565b604082019050919050565b6000602082019050818103600083015261136481611328565b9050919050565b600081905092915050565b50565b600061138660008361136b565b915061139182611376565b600082019050919050565b60006113a782611379565b9150819050919050565b7f5472616e73666572206661696c65640000000000000000000000000000000000600082015250565b60006113e7600f8361125c565b91506113f2826113b1565b602082019050919050565b60006020820190508181036000830152611416816113da565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b600080fd5b600080fd5b6000823560016040038336030381126114775761147661144c565b5b80830191505092915050565b600080833560016020038436030381126114a05761149f61144c565b5b80840192508235915067ffffffffffffffff8211156114c2576114c1611451565b5b6020830192506001820236038313156114de576114dd611456565b5b509250929050565b6114ef81610bca565b82525050565b6000611501838561125c565b935061150e838584610f7b565b61151783610eb4565b840190509392505050565b600060408201905061153760008301866114e6565b818103602083015261154a8184866114f5565b9050949350505050565b7f496e73756666696369656e74206465706f736974000000000000000000000000600082015250565b600061158a60148361125c565b915061159582611554565b602082019050919050565b600060208201905081810360008301526115b98161157d565b9050919050565b6115c981610ffa565b82525050565b600081519050919050565b60005b838110156115f85780820151818401526020810190506115dd565b60008484015250505050565b600061160f826115cf565b611619818561125c565b93506116298185602086016115da565b61163281610eb4565b840191505092915050565b600061012082019050611653600083018c6114e6565b611660602083018b610d66565b61166d604083018a6115c0565b61167a606083018961118f565b611687608083018861118f565b81810360a08301526116998187611604565b905081810360c08301526116ad8186611604565b905081810360e08301526116c18185611604565b90508181036101008301526116d68184611604565b90509a9950505050505050505050565b600082905092915050565b60006117006020840184610b95565b905092915050565b61171181610b74565b82525050565b6040820161172860008301836116f1565b6117356000850182611708565b5061174360208301836116f1565b6117506020850182611708565b50505050565b600060ff82169050919050565b61176c81611756565b811461177757600080fd5b50565b60008135905061178981611763565b92915050565b600061179e602084018461177a565b905092915050565b6117af81611756565b82525050565b608082016117c660008301836116e6565b6117d36000850182611717565b506117e160408301836116f1565b6117ee6040850182611708565b506117fc606083018361178f565b61180960608501826117a6565b50505050565b600060a08201905061182460008301856114e6565b61183160208301846117b5565b9392505050565b600060408201905061184d60008301856114e6565b61185a6020830184610d66565b939250505056fea26469706673582212202eea9aaacf9dd7810b1f570cb63d664bd79569b59fd396dcd9da436007fb4cf364736f6c634300081b0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} \ No newline at end of file diff --git a/chain-signatures/contract-eth/ignition/deployments/chain-1/build-info/b5dd3732a20d3928dd4fddfe2f170580.json b/chain-signatures/contract-eth/ignition/deployments/chain-1/build-info/b5dd3732a20d3928dd4fddfe2f170580.json new file mode 100644 index 000000000..b3a3d7848 --- /dev/null +++ b/chain-signatures/contract-eth/ignition/deployments/chain-1/build-info/b5dd3732a20d3928dd4fddfe2f170580.json @@ -0,0 +1,26974 @@ +{ + "id": "b5dd3732a20d3928dd4fddfe2f170580", + "_format": "hh-sol-build-info-1", + "solcVersion": "0.8.27", + "solcLongVersion": "0.8.27+commit.40a35a09", + "input": { + "language": "Solidity", + "sources": { + "@openzeppelin/contracts/access/AccessControl.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (access/AccessControl.sol)\n\npragma solidity ^0.8.20;\n\nimport {IAccessControl} from \"./IAccessControl.sol\";\nimport {Context} from \"../utils/Context.sol\";\nimport {ERC165} from \"../utils/introspection/ERC165.sol\";\n\n/**\n * @dev Contract module that allows children to implement role-based access\n * control mechanisms. This is a lightweight version that doesn't allow enumerating role\n * members except through off-chain means by accessing the contract event logs. Some\n * applications may benefit from on-chain enumerability, for those cases see\n * {AccessControlEnumerable}.\n *\n * Roles are referred to by their `bytes32` identifier. These should be exposed\n * in the external API and be unique. The best way to achieve this is by\n * using `public constant` hash digests:\n *\n * ```solidity\n * bytes32 public constant MY_ROLE = keccak256(\"MY_ROLE\");\n * ```\n *\n * Roles can be used to represent a set of permissions. To restrict access to a\n * function call, use {hasRole}:\n *\n * ```solidity\n * function foo() public {\n * require(hasRole(MY_ROLE, msg.sender));\n * ...\n * }\n * ```\n *\n * Roles can be granted and revoked dynamically via the {grantRole} and\n * {revokeRole} functions. Each role has an associated admin role, and only\n * accounts that have a role's admin role can call {grantRole} and {revokeRole}.\n *\n * By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means\n * that only accounts with this role will be able to grant or revoke other\n * roles. More complex role relationships can be created by using\n * {_setRoleAdmin}.\n *\n * WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to\n * grant and revoke this role. Extra precautions should be taken to secure\n * accounts that have been granted it. We recommend using {AccessControlDefaultAdminRules}\n * to enforce additional security measures for this role.\n */\nabstract contract AccessControl is Context, IAccessControl, ERC165 {\n struct RoleData {\n mapping(address account => bool) hasRole;\n bytes32 adminRole;\n }\n\n mapping(bytes32 role => RoleData) private _roles;\n\n bytes32 public constant DEFAULT_ADMIN_ROLE = 0x00;\n\n /**\n * @dev Modifier that checks that an account has a specific role. Reverts\n * with an {AccessControlUnauthorizedAccount} error including the required role.\n */\n modifier onlyRole(bytes32 role) {\n _checkRole(role);\n _;\n }\n\n /**\n * @dev See {IERC165-supportsInterface}.\n */\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return interfaceId == type(IAccessControl).interfaceId || super.supportsInterface(interfaceId);\n }\n\n /**\n * @dev Returns `true` if `account` has been granted `role`.\n */\n function hasRole(bytes32 role, address account) public view virtual returns (bool) {\n return _roles[role].hasRole[account];\n }\n\n /**\n * @dev Reverts with an {AccessControlUnauthorizedAccount} error if `_msgSender()`\n * is missing `role`. Overriding this function changes the behavior of the {onlyRole} modifier.\n */\n function _checkRole(bytes32 role) internal view virtual {\n _checkRole(role, _msgSender());\n }\n\n /**\n * @dev Reverts with an {AccessControlUnauthorizedAccount} error if `account`\n * is missing `role`.\n */\n function _checkRole(bytes32 role, address account) internal view virtual {\n if (!hasRole(role, account)) {\n revert AccessControlUnauthorizedAccount(account, role);\n }\n }\n\n /**\n * @dev Returns the admin role that controls `role`. See {grantRole} and\n * {revokeRole}.\n *\n * To change a role's admin, use {_setRoleAdmin}.\n */\n function getRoleAdmin(bytes32 role) public view virtual returns (bytes32) {\n return _roles[role].adminRole;\n }\n\n /**\n * @dev Grants `role` to `account`.\n *\n * If `account` had not been already granted `role`, emits a {RoleGranted}\n * event.\n *\n * Requirements:\n *\n * - the caller must have ``role``'s admin role.\n *\n * May emit a {RoleGranted} event.\n */\n function grantRole(bytes32 role, address account) public virtual onlyRole(getRoleAdmin(role)) {\n _grantRole(role, account);\n }\n\n /**\n * @dev Revokes `role` from `account`.\n *\n * If `account` had been granted `role`, emits a {RoleRevoked} event.\n *\n * Requirements:\n *\n * - the caller must have ``role``'s admin role.\n *\n * May emit a {RoleRevoked} event.\n */\n function revokeRole(bytes32 role, address account) public virtual onlyRole(getRoleAdmin(role)) {\n _revokeRole(role, account);\n }\n\n /**\n * @dev Revokes `role` from the calling account.\n *\n * Roles are often managed via {grantRole} and {revokeRole}: this function's\n * purpose is to provide a mechanism for accounts to lose their privileges\n * if they are compromised (such as when a trusted device is misplaced).\n *\n * If the calling account had been revoked `role`, emits a {RoleRevoked}\n * event.\n *\n * Requirements:\n *\n * - the caller must be `callerConfirmation`.\n *\n * May emit a {RoleRevoked} event.\n */\n function renounceRole(bytes32 role, address callerConfirmation) public virtual {\n if (callerConfirmation != _msgSender()) {\n revert AccessControlBadConfirmation();\n }\n\n _revokeRole(role, callerConfirmation);\n }\n\n /**\n * @dev Sets `adminRole` as ``role``'s admin role.\n *\n * Emits a {RoleAdminChanged} event.\n */\n function _setRoleAdmin(bytes32 role, bytes32 adminRole) internal virtual {\n bytes32 previousAdminRole = getRoleAdmin(role);\n _roles[role].adminRole = adminRole;\n emit RoleAdminChanged(role, previousAdminRole, adminRole);\n }\n\n /**\n * @dev Attempts to grant `role` to `account` and returns a boolean indicating if `role` was granted.\n *\n * Internal function without access restriction.\n *\n * May emit a {RoleGranted} event.\n */\n function _grantRole(bytes32 role, address account) internal virtual returns (bool) {\n if (!hasRole(role, account)) {\n _roles[role].hasRole[account] = true;\n emit RoleGranted(role, account, _msgSender());\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * @dev Attempts to revoke `role` to `account` and returns a boolean indicating if `role` was revoked.\n *\n * Internal function without access restriction.\n *\n * May emit a {RoleRevoked} event.\n */\n function _revokeRole(bytes32 role, address account) internal virtual returns (bool) {\n if (hasRole(role, account)) {\n _roles[role].hasRole[account] = false;\n emit RoleRevoked(role, account, _msgSender());\n return true;\n } else {\n return false;\n }\n }\n}\n" + }, + "@openzeppelin/contracts/access/IAccessControl.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (access/IAccessControl.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev External interface of AccessControl declared to support ERC-165 detection.\n */\ninterface IAccessControl {\n /**\n * @dev The `account` is missing a role.\n */\n error AccessControlUnauthorizedAccount(address account, bytes32 neededRole);\n\n /**\n * @dev The caller of a function is not the expected one.\n *\n * NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\n */\n error AccessControlBadConfirmation();\n\n /**\n * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\n *\n * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\n * {RoleAdminChanged} not being emitted signaling this.\n */\n event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole);\n\n /**\n * @dev Emitted when `account` is granted `role`.\n *\n * `sender` is the account that originated the contract call. This account bears the admin role (for the granted role).\n * Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\n */\n event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);\n\n /**\n * @dev Emitted when `account` is revoked `role`.\n *\n * `sender` is the account that originated the contract call:\n * - if using `revokeRole`, it is the admin role bearer\n * - if using `renounceRole`, it is the role bearer (i.e. `account`)\n */\n event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);\n\n /**\n * @dev Returns `true` if `account` has been granted `role`.\n */\n function hasRole(bytes32 role, address account) external view returns (bool);\n\n /**\n * @dev Returns the admin role that controls `role`. See {grantRole} and\n * {revokeRole}.\n *\n * To change a role's admin, use {AccessControl-_setRoleAdmin}.\n */\n function getRoleAdmin(bytes32 role) external view returns (bytes32);\n\n /**\n * @dev Grants `role` to `account`.\n *\n * If `account` had not been already granted `role`, emits a {RoleGranted}\n * event.\n *\n * Requirements:\n *\n * - the caller must have ``role``'s admin role.\n */\n function grantRole(bytes32 role, address account) external;\n\n /**\n * @dev Revokes `role` from `account`.\n *\n * If `account` had been granted `role`, emits a {RoleRevoked} event.\n *\n * Requirements:\n *\n * - the caller must have ``role``'s admin role.\n */\n function revokeRole(bytes32 role, address account) external;\n\n /**\n * @dev Revokes `role` from the calling account.\n *\n * Roles are often managed via {grantRole} and {revokeRole}: this function's\n * purpose is to provide a mechanism for accounts to lose their privileges\n * if they are compromised (such as when a trusted device is misplaced).\n *\n * If the calling account had been granted `role`, emits a {RoleRevoked}\n * event.\n *\n * Requirements:\n *\n * - the caller must be `callerConfirmation`.\n */\n function renounceRole(bytes32 role, address callerConfirmation) external;\n}\n" + }, + "@openzeppelin/contracts/utils/Context.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n function _msgSender() internal view virtual returns (address) {\n return msg.sender;\n }\n\n function _msgData() internal view virtual returns (bytes calldata) {\n return msg.data;\n }\n\n function _contextSuffixLength() internal view virtual returns (uint256) {\n return 0;\n }\n}\n" + }, + "@openzeppelin/contracts/utils/introspection/ERC165.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (utils/introspection/ERC165.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC165} from \"./IERC165.sol\";\n\n/**\n * @dev Implementation of the {IERC165} interface.\n *\n * Contracts that want to implement ERC-165 should inherit from this contract and override {supportsInterface} to check\n * for the additional interface id that will be supported. For example:\n *\n * ```solidity\n * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n * return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n * }\n * ```\n */\nabstract contract ERC165 is IERC165 {\n /**\n * @dev See {IERC165-supportsInterface}.\n */\n function supportsInterface(bytes4 interfaceId) public view virtual returns (bool) {\n return interfaceId == type(IERC165).interfaceId;\n }\n}\n" + }, + "@openzeppelin/contracts/utils/introspection/IERC165.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (utils/introspection/IERC165.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Interface of the ERC-165 standard, as defined in the\n * https://eips.ethereum.org/EIPS/eip-165[ERC].\n *\n * Implementers can declare support of contract interfaces, which can then be\n * queried by others ({ERC165Checker}).\n *\n * For an implementation, see {ERC165}.\n */\ninterface IERC165 {\n /**\n * @dev Returns true if this contract implements the interface defined by\n * `interfaceId`. See the corresponding\n * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section]\n * to learn more about how these ids are created.\n *\n * This function call must use less than 30 000 gas.\n */\n function supportsInterface(bytes4 interfaceId) external view returns (bool);\n}\n" + }, + "contracts/ChainSignatures.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.17;\n\nimport \"@openzeppelin/contracts/access/AccessControl.sol\";\n\n/**\n * @title Sig.Network signing contract\n * @dev Contract for accepting signature requests and providing responses from the Sig.Network.\n */\ncontract ChainSignatures is AccessControl {\n struct SignRequest {\n bytes32 payload;\n string path;\n uint32 keyVersion;\n string algo;\n string dest;\n string params;\n }\n\n struct AffinePoint {\n uint256 x;\n uint256 y;\n }\n\n struct Signature {\n AffinePoint bigR;\n uint256 s;\n uint8 recoveryId;\n }\n\n struct Response {\n bytes32 requestId;\n Signature signature;\n }\n\n struct ErrorResponse {\n bytes32 requestId;\n string errorMessage;\n }\n\n uint256 signatureDeposit;\n\n /**\n * @dev Emitted when a signature is requested.\n * @param sender The address of the sender.\n * @param payload The payload to be signed.\n * @param keyVersion The version of the key used for signing.\n * @param deposit The deposit amount.\n * @param chainId The ID of the blockchain.\n * @param path The derivation path for the user account.\n * @param algo The algorithm used for signing.\n * @param dest The response destination.\n * @param params Additional parameters.\n */\n event SignatureRequested(\n address sender,\n bytes32 payload,\n uint32 keyVersion,\n uint256 deposit,\n uint256 chainId,\n string path,\n string algo,\n string dest,\n string params\n );\n\n /**\n * @dev Emitted when a signature response is received.\n * @param requestId The ID of the request. Must be calculated off-chain.\n * @param responder The address of the responder.\n * @param signature The signature response.\n */\n event SignatureResponded(\n bytes32 indexed requestId,\n address responder,\n Signature signature\n );\n\n /**\n * @dev Emitted when a signature error is received.\n * @param requestId The ID of the request. Must be calculated off-chain.\n * @param responder The address of the responder.\n * @param error The error message.\n */\n event SignatureError(\n bytes32 indexed requestId,\n address responder,\n string error\n );\n\n /**\n * @dev Emitted when a withdrawal is made.\n * @param owner The address of the owner.\n * @param amount The amount withdrawn.\n */\n event Withdraw(address indexed owner, uint amount);\n\n /**\n * @dev Constructor for the ChainSignatures contract.\n * @param _mpc_network The address of the account controlled by the MPC network.\n * @param _signatureDeposit The deposit required for signature requests.\n */\n constructor(address _mpc_network, uint256 _signatureDeposit) {\n _grantRole(DEFAULT_ADMIN_ROLE, _mpc_network);\n signatureDeposit = _signatureDeposit;\n }\n\n /**\n * @dev Function to request a signature.\n * @param _request The signature request details.\n */\n function sign(SignRequest memory _request) external payable {\n require(msg.value >= signatureDeposit, \"Insufficient deposit\");\n\n emit SignatureRequested(\n msg.sender,\n _request.payload,\n _request.keyVersion,\n msg.value,\n block.chainid,\n _request.path,\n _request.algo,\n _request.dest,\n _request.params\n );\n }\n\n /**\n * @dev Function to respond to signature requests.\n * @param _responses The array of signature responses.\n */\n function respond(Response[] calldata _responses) external {\n for (uint256 i = 0; i < _responses.length; i++) {\n emit SignatureResponded(\n _responses[i].requestId,\n msg.sender,\n _responses[i].signature\n );\n }\n }\n\n /**\n * @dev Function to emit signature generation errors.\n * @param _errors The array of signature generation errors.\n */\n function respondError(ErrorResponse[] calldata _errors) external {\n for (uint256 i = 0; i < _errors.length; i++) {\n emit SignatureError(\n _errors[i].requestId,\n msg.sender,\n _errors[i].errorMessage\n );\n }\n }\n\n /**\n * @dev Function to get the current signature deposit amount.\n * @return The current signature deposit amount.\n */\n function getSignatureDeposit() external view returns (uint256) {\n return signatureDeposit;\n }\n\n /**\n * @dev Function to set the signature deposit amount.\n * @param _amount The new deposit amount.\n */\n function setSignatureDeposit(\n uint256 _amount\n ) external onlyRole(DEFAULT_ADMIN_ROLE) {\n signatureDeposit = _amount;\n }\n\n /**\n * @dev Function to withdraw funds from the contract.\n * @param _amount The amount to withdraw.\n * @param _receiver The address to receive the withdrawn funds.\n */\n function withdraw(\n uint256 _amount,\n address _receiver\n ) external onlyRole(DEFAULT_ADMIN_ROLE) {\n require(_receiver != address(0), \"Invalid receiver address\");\n require(\n _amount <= address(this).balance,\n \"Withdraw amount must be smaller than total balance in contract\"\n );\n\n (bool success, ) = payable(_receiver).call{value: _amount}(\"\");\n require(success, \"Transfer failed\");\n\n emit Withdraw(_receiver, _amount);\n }\n}\n" + } + }, + "settings": { + "evmVersion": "paris", + "optimizer": { + "enabled": false, + "runs": 200 + }, + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata", + "storageLayout" + ], + "": [ + "ast" + ] + } + } + } + }, + "output": { + "sources": { + "@openzeppelin/contracts/access/AccessControl.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/access/AccessControl.sol", + "exportedSymbols": { + "AccessControl": [ + 295 + ], + "Context": [ + 408 + ], + "ERC165": [ + 432 + ], + "IAccessControl": [ + 378 + ] + }, + "id": 296, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "108:24:0" + }, + { + "absolutePath": "@openzeppelin/contracts/access/IAccessControl.sol", + "file": "./IAccessControl.sol", + "id": 3, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 296, + "sourceUnit": 379, + "src": "134:52:0", + "symbolAliases": [ + { + "foreign": { + "id": 2, + "name": "IAccessControl", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 378, + "src": "142:14:0", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Context.sol", + "file": "../utils/Context.sol", + "id": 5, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 296, + "sourceUnit": 409, + "src": "187:45:0", + "symbolAliases": [ + { + "foreign": { + "id": 4, + "name": "Context", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 408, + "src": "195:7:0", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/introspection/ERC165.sol", + "file": "../utils/introspection/ERC165.sol", + "id": 7, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 296, + "sourceUnit": 433, + "src": "233:57:0", + "symbolAliases": [ + { + "foreign": { + "id": 6, + "name": "ERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 432, + "src": "241:6:0", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 9, + "name": "Context", + "nameLocations": [ + "1988:7:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 408, + "src": "1988:7:0" + }, + "id": 10, + "nodeType": "InheritanceSpecifier", + "src": "1988:7:0" + }, + { + "baseName": { + "id": 11, + "name": "IAccessControl", + "nameLocations": [ + "1997:14:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 378, + "src": "1997:14:0" + }, + "id": 12, + "nodeType": "InheritanceSpecifier", + "src": "1997:14:0" + }, + { + "baseName": { + "id": 13, + "name": "ERC165", + "nameLocations": [ + "2013:6:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 432, + "src": "2013:6:0" + }, + "id": 14, + "nodeType": "InheritanceSpecifier", + "src": "2013:6:0" + } + ], + "canonicalName": "AccessControl", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 8, + "nodeType": "StructuredDocumentation", + "src": "292:1660:0", + "text": " @dev Contract module that allows children to implement role-based access\n control mechanisms. This is a lightweight version that doesn't allow enumerating role\n members except through off-chain means by accessing the contract event logs. Some\n applications may benefit from on-chain enumerability, for those cases see\n {AccessControlEnumerable}.\n Roles are referred to by their `bytes32` identifier. These should be exposed\n in the external API and be unique. The best way to achieve this is by\n using `public constant` hash digests:\n ```solidity\n bytes32 public constant MY_ROLE = keccak256(\"MY_ROLE\");\n ```\n Roles can be used to represent a set of permissions. To restrict access to a\n function call, use {hasRole}:\n ```solidity\n function foo() public {\n require(hasRole(MY_ROLE, msg.sender));\n ...\n }\n ```\n Roles can be granted and revoked dynamically via the {grantRole} and\n {revokeRole} functions. Each role has an associated admin role, and only\n accounts that have a role's admin role can call {grantRole} and {revokeRole}.\n By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means\n that only accounts with this role will be able to grant or revoke other\n roles. More complex role relationships can be created by using\n {_setRoleAdmin}.\n WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to\n grant and revoke this role. Extra precautions should be taken to secure\n accounts that have been granted it. We recommend using {AccessControlDefaultAdminRules}\n to enforce additional security measures for this role." + }, + "fullyImplemented": true, + "id": 295, + "linearizedBaseContracts": [ + 295, + 432, + 444, + 378, + 408 + ], + "name": "AccessControl", + "nameLocation": "1971:13:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "AccessControl.RoleData", + "id": 21, + "members": [ + { + "constant": false, + "id": 18, + "mutability": "mutable", + "name": "hasRole", + "nameLocation": "2085:7:0", + "nodeType": "VariableDeclaration", + "scope": 21, + "src": "2052:40:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "typeName": { + "id": 17, + "keyName": "account", + "keyNameLocation": "2068:7:0", + "keyType": { + "id": 15, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2060:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "2052:32:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 16, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2079:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 20, + "mutability": "mutable", + "name": "adminRole", + "nameLocation": "2110:9:0", + "nodeType": "VariableDeclaration", + "scope": 21, + "src": "2102:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 19, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2102:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "name": "RoleData", + "nameLocation": "2033:8:0", + "nodeType": "StructDefinition", + "scope": 295, + "src": "2026:100:0", + "visibility": "public" + }, + { + "constant": false, + "id": 26, + "mutability": "mutable", + "name": "_roles", + "nameLocation": "2174:6:0", + "nodeType": "VariableDeclaration", + "scope": 295, + "src": "2132:48:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$21_storage_$", + "typeString": "mapping(bytes32 => struct AccessControl.RoleData)" + }, + "typeName": { + "id": 25, + "keyName": "role", + "keyNameLocation": "2148:4:0", + "keyType": { + "id": 22, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2140:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "2132:33:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$21_storage_$", + "typeString": "mapping(bytes32 => struct AccessControl.RoleData)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 24, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 23, + "name": "RoleData", + "nameLocations": [ + "2156:8:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 21, + "src": "2156:8:0" + }, + "referencedDeclaration": 21, + "src": "2156:8:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RoleData_$21_storage_ptr", + "typeString": "struct AccessControl.RoleData" + } + } + }, + "visibility": "private" + }, + { + "constant": true, + "functionSelector": "a217fddf", + "id": 29, + "mutability": "constant", + "name": "DEFAULT_ADMIN_ROLE", + "nameLocation": "2211:18:0", + "nodeType": "VariableDeclaration", + "scope": 295, + "src": "2187:49:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 27, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2187:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "hexValue": "30783030", + "id": 28, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2232:4:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0x00" + }, + "visibility": "public" + }, + { + "body": { + "id": 39, + "nodeType": "Block", + "src": "2454:44:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 35, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 32, + "src": "2475:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 34, + "name": "_checkRole", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 93, + 114 + ], + "referencedDeclaration": 93, + "src": "2464:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$__$", + "typeString": "function (bytes32) view" + } + }, + "id": 36, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2464:16:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 37, + "nodeType": "ExpressionStatement", + "src": "2464:16:0" + }, + { + "id": 38, + "nodeType": "PlaceholderStatement", + "src": "2490:1:0" + } + ] + }, + "documentation": { + "id": 30, + "nodeType": "StructuredDocumentation", + "src": "2243:174:0", + "text": " @dev Modifier that checks that an account has a specific role. Reverts\n with an {AccessControlUnauthorizedAccount} error including the required role." + }, + "id": 40, + "name": "onlyRole", + "nameLocation": "2431:8:0", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 33, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 32, + "mutability": "mutable", + "name": "role", + "nameLocation": "2448:4:0", + "nodeType": "VariableDeclaration", + "scope": 40, + "src": "2440:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 31, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2440:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "2439:14:0" + }, + "src": "2422:76:0", + "virtual": false, + "visibility": "internal" + }, + { + "baseFunctions": [ + 431 + ], + "body": { + "id": 61, + "nodeType": "Block", + "src": "2656:111:0", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 59, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 54, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 49, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 43, + "src": "2673:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 51, + "name": "IAccessControl", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 378, + "src": "2693:14:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IAccessControl_$378_$", + "typeString": "type(contract IAccessControl)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_contract$_IAccessControl_$378_$", + "typeString": "type(contract IAccessControl)" + } + ], + "id": 50, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "2688:4:0", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 52, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2688:20:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_contract$_IAccessControl_$378", + "typeString": "type(contract IAccessControl)" + } + }, + "id": 53, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "2709:11:0", + "memberName": "interfaceId", + "nodeType": "MemberAccess", + "src": "2688:32:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "2673:47:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 57, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 43, + "src": "2748:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "expression": { + "id": 55, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "2724:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_AccessControl_$295_$", + "typeString": "type(contract super AccessControl)" + } + }, + "id": 56, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2730:17:0", + "memberName": "supportsInterface", + "nodeType": "MemberAccess", + "referencedDeclaration": 431, + "src": "2724:23:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$", + "typeString": "function (bytes4) view returns (bool)" + } + }, + "id": 58, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2724:36:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "2673:87:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 48, + "id": 60, + "nodeType": "Return", + "src": "2666:94:0" + } + ] + }, + "documentation": { + "id": 41, + "nodeType": "StructuredDocumentation", + "src": "2504:56:0", + "text": " @dev See {IERC165-supportsInterface}." + }, + "functionSelector": "01ffc9a7", + "id": 62, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nameLocation": "2574:17:0", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 45, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2632:8:0" + }, + "parameters": { + "id": 44, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 43, + "mutability": "mutable", + "name": "interfaceId", + "nameLocation": "2599:11:0", + "nodeType": "VariableDeclaration", + "scope": 62, + "src": "2592:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 42, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "2592:6:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "2591:20:0" + }, + "returnParameters": { + "id": 48, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 47, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 62, + "src": "2650:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 46, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2650:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2649:6:0" + }, + "scope": 295, + "src": "2565:202:0", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 345 + ], + "body": { + "id": 79, + "nodeType": "Block", + "src": "2937:53:0", + "statements": [ + { + "expression": { + "baseExpression": { + "expression": { + "baseExpression": { + "id": 72, + "name": "_roles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26, + "src": "2954:6:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$21_storage_$", + "typeString": "mapping(bytes32 => struct AccessControl.RoleData storage ref)" + } + }, + "id": 74, + "indexExpression": { + "id": 73, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 65, + "src": "2961:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2954:12:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RoleData_$21_storage", + "typeString": "struct AccessControl.RoleData storage ref" + } + }, + "id": 75, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2967:7:0", + "memberName": "hasRole", + "nodeType": "MemberAccess", + "referencedDeclaration": 18, + "src": "2954:20:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 77, + "indexExpression": { + "id": 76, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 67, + "src": "2975:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2954:29:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 71, + "id": 78, + "nodeType": "Return", + "src": "2947:36:0" + } + ] + }, + "documentation": { + "id": 63, + "nodeType": "StructuredDocumentation", + "src": "2773:76:0", + "text": " @dev Returns `true` if `account` has been granted `role`." + }, + "functionSelector": "91d14854", + "id": 80, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "hasRole", + "nameLocation": "2863:7:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 68, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 65, + "mutability": "mutable", + "name": "role", + "nameLocation": "2879:4:0", + "nodeType": "VariableDeclaration", + "scope": 80, + "src": "2871:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 64, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2871:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 67, + "mutability": "mutable", + "name": "account", + "nameLocation": "2893:7:0", + "nodeType": "VariableDeclaration", + "scope": 80, + "src": "2885:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 66, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2885:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2870:31:0" + }, + "returnParameters": { + "id": 71, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 70, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 80, + "src": "2931:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 69, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2931:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2930:6:0" + }, + "scope": 295, + "src": "2854:136:0", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 92, + "nodeType": "Block", + "src": "3255:47:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 87, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 83, + "src": "3276:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 88, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 390, + "src": "3282:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 89, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3282:12:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 86, + "name": "_checkRole", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 93, + 114 + ], + "referencedDeclaration": 114, + "src": "3265:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$__$", + "typeString": "function (bytes32,address) view" + } + }, + "id": 90, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3265:30:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 91, + "nodeType": "ExpressionStatement", + "src": "3265:30:0" + } + ] + }, + "documentation": { + "id": 81, + "nodeType": "StructuredDocumentation", + "src": "2996:198:0", + "text": " @dev Reverts with an {AccessControlUnauthorizedAccount} error if `_msgSender()`\n is missing `role`. Overriding this function changes the behavior of the {onlyRole} modifier." + }, + "id": 93, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkRole", + "nameLocation": "3208:10:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 84, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 83, + "mutability": "mutable", + "name": "role", + "nameLocation": "3227:4:0", + "nodeType": "VariableDeclaration", + "scope": 93, + "src": "3219:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 82, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3219:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "3218:14:0" + }, + "returnParameters": { + "id": 85, + "nodeType": "ParameterList", + "parameters": [], + "src": "3255:0:0" + }, + "scope": 295, + "src": "3199:103:0", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 113, + "nodeType": "Block", + "src": "3505:124:0", + "statements": [ + { + "condition": { + "id": 105, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "3519:23:0", + "subExpression": { + "arguments": [ + { + "id": 102, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 96, + "src": "3528:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 103, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 98, + "src": "3534:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 101, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 80, + "src": "3520:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 104, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3520:22:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 112, + "nodeType": "IfStatement", + "src": "3515:108:0", + "trueBody": { + "id": 111, + "nodeType": "Block", + "src": "3544:79:0", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 107, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 98, + "src": "3598:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 108, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 96, + "src": "3607:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 106, + "name": "AccessControlUnauthorizedAccount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 305, + "src": "3565:32:0", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$_t_bytes32_$returns$_t_error_$", + "typeString": "function (address,bytes32) pure returns (error)" + } + }, + "id": 109, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3565:47:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 110, + "nodeType": "RevertStatement", + "src": "3558:54:0" + } + ] + } + } + ] + }, + "documentation": { + "id": 94, + "nodeType": "StructuredDocumentation", + "src": "3308:119:0", + "text": " @dev Reverts with an {AccessControlUnauthorizedAccount} error if `account`\n is missing `role`." + }, + "id": 114, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkRole", + "nameLocation": "3441:10:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 99, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 96, + "mutability": "mutable", + "name": "role", + "nameLocation": "3460:4:0", + "nodeType": "VariableDeclaration", + "scope": 114, + "src": "3452:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 95, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3452:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 98, + "mutability": "mutable", + "name": "account", + "nameLocation": "3474:7:0", + "nodeType": "VariableDeclaration", + "scope": 114, + "src": "3466:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 97, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3466:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3451:31:0" + }, + "returnParameters": { + "id": 100, + "nodeType": "ParameterList", + "parameters": [], + "src": "3505:0:0" + }, + "scope": 295, + "src": "3432:197:0", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "baseFunctions": [ + 353 + ], + "body": { + "id": 127, + "nodeType": "Block", + "src": "3884:46:0", + "statements": [ + { + "expression": { + "expression": { + "baseExpression": { + "id": 122, + "name": "_roles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26, + "src": "3901:6:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$21_storage_$", + "typeString": "mapping(bytes32 => struct AccessControl.RoleData storage ref)" + } + }, + "id": 124, + "indexExpression": { + "id": 123, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 117, + "src": "3908:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3901:12:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RoleData_$21_storage", + "typeString": "struct AccessControl.RoleData storage ref" + } + }, + "id": 125, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3914:9:0", + "memberName": "adminRole", + "nodeType": "MemberAccess", + "referencedDeclaration": 20, + "src": "3901:22:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 121, + "id": 126, + "nodeType": "Return", + "src": "3894:29:0" + } + ] + }, + "documentation": { + "id": 115, + "nodeType": "StructuredDocumentation", + "src": "3635:170:0", + "text": " @dev Returns the admin role that controls `role`. See {grantRole} and\n {revokeRole}.\n To change a role's admin, use {_setRoleAdmin}." + }, + "functionSelector": "248a9ca3", + "id": 128, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getRoleAdmin", + "nameLocation": "3819:12:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 118, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 117, + "mutability": "mutable", + "name": "role", + "nameLocation": "3840:4:0", + "nodeType": "VariableDeclaration", + "scope": 128, + "src": "3832:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 116, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3832:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "3831:14:0" + }, + "returnParameters": { + "id": 121, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 120, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 128, + "src": "3875:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 119, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3875:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "3874:9:0" + }, + "scope": 295, + "src": "3810:120:0", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 361 + ], + "body": { + "id": 146, + "nodeType": "Block", + "src": "4320:42:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 142, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 131, + "src": "4341:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 143, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 133, + "src": "4347:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 141, + "name": "_grantRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 256, + "src": "4330:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) returns (bool)" + } + }, + "id": 144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4330:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 145, + "nodeType": "ExpressionStatement", + "src": "4330:25:0" + } + ] + }, + "documentation": { + "id": 129, + "nodeType": "StructuredDocumentation", + "src": "3936:285:0", + "text": " @dev Grants `role` to `account`.\n If `account` had not been already granted `role`, emits a {RoleGranted}\n event.\n Requirements:\n - the caller must have ``role``'s admin role.\n May emit a {RoleGranted} event." + }, + "functionSelector": "2f2ff15d", + "id": 147, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 137, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 131, + "src": "4313:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 136, + "name": "getRoleAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 128, + "src": "4300:12:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$", + "typeString": "function (bytes32) view returns (bytes32)" + } + }, + "id": 138, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4300:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 139, + "kind": "modifierInvocation", + "modifierName": { + "id": 135, + "name": "onlyRole", + "nameLocations": [ + "4291:8:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 40, + "src": "4291:8:0" + }, + "nodeType": "ModifierInvocation", + "src": "4291:28:0" + } + ], + "name": "grantRole", + "nameLocation": "4235:9:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 134, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 131, + "mutability": "mutable", + "name": "role", + "nameLocation": "4253:4:0", + "nodeType": "VariableDeclaration", + "scope": 147, + "src": "4245:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 130, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4245:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 133, + "mutability": "mutable", + "name": "account", + "nameLocation": "4267:7:0", + "nodeType": "VariableDeclaration", + "scope": 147, + "src": "4259:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 132, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4259:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4244:31:0" + }, + "returnParameters": { + "id": 140, + "nodeType": "ParameterList", + "parameters": [], + "src": "4320:0:0" + }, + "scope": 295, + "src": "4226:136:0", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 369 + ], + "body": { + "id": 165, + "nodeType": "Block", + "src": "4737:43:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 161, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 150, + "src": "4759:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 162, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 152, + "src": "4765:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 160, + "name": "_revokeRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 294, + "src": "4747:11:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) returns (bool)" + } + }, + "id": 163, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4747:26:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 164, + "nodeType": "ExpressionStatement", + "src": "4747:26:0" + } + ] + }, + "documentation": { + "id": 148, + "nodeType": "StructuredDocumentation", + "src": "4368:269:0", + "text": " @dev Revokes `role` from `account`.\n If `account` had been granted `role`, emits a {RoleRevoked} event.\n Requirements:\n - the caller must have ``role``'s admin role.\n May emit a {RoleRevoked} event." + }, + "functionSelector": "d547741f", + "id": 166, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 156, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 150, + "src": "4730:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 155, + "name": "getRoleAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 128, + "src": "4717:12:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$", + "typeString": "function (bytes32) view returns (bytes32)" + } + }, + "id": 157, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4717:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 158, + "kind": "modifierInvocation", + "modifierName": { + "id": 154, + "name": "onlyRole", + "nameLocations": [ + "4708:8:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 40, + "src": "4708:8:0" + }, + "nodeType": "ModifierInvocation", + "src": "4708:28:0" + } + ], + "name": "revokeRole", + "nameLocation": "4651:10:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 153, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 150, + "mutability": "mutable", + "name": "role", + "nameLocation": "4670:4:0", + "nodeType": "VariableDeclaration", + "scope": 166, + "src": "4662:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 149, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4662:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 152, + "mutability": "mutable", + "name": "account", + "nameLocation": "4684:7:0", + "nodeType": "VariableDeclaration", + "scope": 166, + "src": "4676:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 151, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4676:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4661:31:0" + }, + "returnParameters": { + "id": 159, + "nodeType": "ParameterList", + "parameters": [], + "src": "4737:0:0" + }, + "scope": 295, + "src": "4642:138:0", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 377 + ], + "body": { + "id": 188, + "nodeType": "Block", + "src": "5407:166:0", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 174, + "name": "callerConfirmation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 171, + "src": "5421:18:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 175, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 390, + "src": "5443:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5443:12:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5421:34:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 182, + "nodeType": "IfStatement", + "src": "5417:102:0", + "trueBody": { + "id": 181, + "nodeType": "Block", + "src": "5457:62:0", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 178, + "name": "AccessControlBadConfirmation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 308, + "src": "5478:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 179, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5478:30:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 180, + "nodeType": "RevertStatement", + "src": "5471:37:0" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 184, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 169, + "src": "5541:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 185, + "name": "callerConfirmation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 171, + "src": "5547:18:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 183, + "name": "_revokeRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 294, + "src": "5529:11:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) returns (bool)" + } + }, + "id": 186, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5529:37:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 187, + "nodeType": "ExpressionStatement", + "src": "5529:37:0" + } + ] + }, + "documentation": { + "id": 167, + "nodeType": "StructuredDocumentation", + "src": "4786:537:0", + "text": " @dev Revokes `role` from the calling account.\n Roles are often managed via {grantRole} and {revokeRole}: this function's\n purpose is to provide a mechanism for accounts to lose their privileges\n if they are compromised (such as when a trusted device is misplaced).\n If the calling account had been revoked `role`, emits a {RoleRevoked}\n event.\n Requirements:\n - the caller must be `callerConfirmation`.\n May emit a {RoleRevoked} event." + }, + "functionSelector": "36568abe", + "id": 189, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "renounceRole", + "nameLocation": "5337:12:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 172, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 169, + "mutability": "mutable", + "name": "role", + "nameLocation": "5358:4:0", + "nodeType": "VariableDeclaration", + "scope": 189, + "src": "5350:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 168, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5350:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 171, + "mutability": "mutable", + "name": "callerConfirmation", + "nameLocation": "5372:18:0", + "nodeType": "VariableDeclaration", + "scope": 189, + "src": "5364:26:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 170, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5364:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5349:42:0" + }, + "returnParameters": { + "id": 173, + "nodeType": "ParameterList", + "parameters": [], + "src": "5407:0:0" + }, + "scope": 295, + "src": "5328:245:0", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 216, + "nodeType": "Block", + "src": "5771:174:0", + "statements": [ + { + "assignments": [ + 198 + ], + "declarations": [ + { + "constant": false, + "id": 198, + "mutability": "mutable", + "name": "previousAdminRole", + "nameLocation": "5789:17:0", + "nodeType": "VariableDeclaration", + "scope": 216, + "src": "5781:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 197, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5781:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 202, + "initialValue": { + "arguments": [ + { + "id": 200, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 192, + "src": "5822:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 199, + "name": "getRoleAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 128, + "src": "5809:12:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$", + "typeString": "function (bytes32) view returns (bytes32)" + } + }, + "id": 201, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5809:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5781:46:0" + }, + { + "expression": { + "id": 208, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "baseExpression": { + "id": 203, + "name": "_roles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26, + "src": "5837:6:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$21_storage_$", + "typeString": "mapping(bytes32 => struct AccessControl.RoleData storage ref)" + } + }, + "id": 205, + "indexExpression": { + "id": 204, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 192, + "src": "5844:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5837:12:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RoleData_$21_storage", + "typeString": "struct AccessControl.RoleData storage ref" + } + }, + "id": 206, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "5850:9:0", + "memberName": "adminRole", + "nodeType": "MemberAccess", + "referencedDeclaration": 20, + "src": "5837:22:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 207, + "name": "adminRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 194, + "src": "5862:9:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "5837:34:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 209, + "nodeType": "ExpressionStatement", + "src": "5837:34:0" + }, + { + "eventCall": { + "arguments": [ + { + "id": 211, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 192, + "src": "5903:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 212, + "name": "previousAdminRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 198, + "src": "5909:17:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 213, + "name": "adminRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 194, + "src": "5928:9:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 210, + "name": "RoleAdminChanged", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 317, + "src": "5886:16:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$__$", + "typeString": "function (bytes32,bytes32,bytes32)" + } + }, + "id": 214, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5886:52:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 215, + "nodeType": "EmitStatement", + "src": "5881:57:0" + } + ] + }, + "documentation": { + "id": 190, + "nodeType": "StructuredDocumentation", + "src": "5579:114:0", + "text": " @dev Sets `adminRole` as ``role``'s admin role.\n Emits a {RoleAdminChanged} event." + }, + "id": 217, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setRoleAdmin", + "nameLocation": "5707:13:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 195, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 192, + "mutability": "mutable", + "name": "role", + "nameLocation": "5729:4:0", + "nodeType": "VariableDeclaration", + "scope": 217, + "src": "5721:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 191, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5721:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 194, + "mutability": "mutable", + "name": "adminRole", + "nameLocation": "5743:9:0", + "nodeType": "VariableDeclaration", + "scope": 217, + "src": "5735:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 193, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5735:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "5720:33:0" + }, + "returnParameters": { + "id": 196, + "nodeType": "ParameterList", + "parameters": [], + "src": "5771:0:0" + }, + "scope": 295, + "src": "5698:247:0", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 255, + "nodeType": "Block", + "src": "6262:233:0", + "statements": [ + { + "condition": { + "id": 231, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "6276:23:0", + "subExpression": { + "arguments": [ + { + "id": 228, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 220, + "src": "6285:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 229, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 222, + "src": "6291:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 227, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 80, + "src": "6277:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 230, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6277:22:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 253, + "nodeType": "Block", + "src": "6452:37:0", + "statements": [ + { + "expression": { + "hexValue": "66616c7365", + "id": 251, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6473:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 226, + "id": 252, + "nodeType": "Return", + "src": "6466:12:0" + } + ] + }, + "id": 254, + "nodeType": "IfStatement", + "src": "6272:217:0", + "trueBody": { + "id": 250, + "nodeType": "Block", + "src": "6301:145:0", + "statements": [ + { + "expression": { + "id": 239, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "baseExpression": { + "id": 232, + "name": "_roles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26, + "src": "6315:6:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$21_storage_$", + "typeString": "mapping(bytes32 => struct AccessControl.RoleData storage ref)" + } + }, + "id": 234, + "indexExpression": { + "id": 233, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 220, + "src": "6322:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6315:12:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RoleData_$21_storage", + "typeString": "struct AccessControl.RoleData storage ref" + } + }, + "id": 235, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6328:7:0", + "memberName": "hasRole", + "nodeType": "MemberAccess", + "referencedDeclaration": 18, + "src": "6315:20:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 237, + "indexExpression": { + "id": 236, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 222, + "src": "6336:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6315:29:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 238, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6347:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "6315:36:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 240, + "nodeType": "ExpressionStatement", + "src": "6315:36:0" + }, + { + "eventCall": { + "arguments": [ + { + "id": 242, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 220, + "src": "6382:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 243, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 222, + "src": "6388:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 244, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 390, + "src": "6397:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 245, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6397:12:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 241, + "name": "RoleGranted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 326, + "src": "6370:11:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$returns$__$", + "typeString": "function (bytes32,address,address)" + } + }, + "id": 246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6370:40:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 247, + "nodeType": "EmitStatement", + "src": "6365:45:0" + }, + { + "expression": { + "hexValue": "74727565", + "id": 248, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6431:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 226, + "id": 249, + "nodeType": "Return", + "src": "6424:11:0" + } + ] + } + } + ] + }, + "documentation": { + "id": 218, + "nodeType": "StructuredDocumentation", + "src": "5951:223:0", + "text": " @dev Attempts to grant `role` to `account` and returns a boolean indicating if `role` was granted.\n Internal function without access restriction.\n May emit a {RoleGranted} event." + }, + "id": 256, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_grantRole", + "nameLocation": "6188:10:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 223, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 220, + "mutability": "mutable", + "name": "role", + "nameLocation": "6207:4:0", + "nodeType": "VariableDeclaration", + "scope": 256, + "src": "6199:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 219, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6199:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 222, + "mutability": "mutable", + "name": "account", + "nameLocation": "6221:7:0", + "nodeType": "VariableDeclaration", + "scope": 256, + "src": "6213:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 221, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6213:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "6198:31:0" + }, + "returnParameters": { + "id": 226, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 225, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 256, + "src": "6256:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 224, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6256:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "6255:6:0" + }, + "scope": 295, + "src": "6179:316:0", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 293, + "nodeType": "Block", + "src": "6814:233:0", + "statements": [ + { + "condition": { + "arguments": [ + { + "id": 267, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 259, + "src": "6836:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 268, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 261, + "src": "6842:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 266, + "name": "hasRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 80, + "src": "6828:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) view returns (bool)" + } + }, + "id": 269, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6828:22:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 291, + "nodeType": "Block", + "src": "7004:37:0", + "statements": [ + { + "expression": { + "hexValue": "66616c7365", + "id": 289, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7025:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 265, + "id": 290, + "nodeType": "Return", + "src": "7018:12:0" + } + ] + }, + "id": 292, + "nodeType": "IfStatement", + "src": "6824:217:0", + "trueBody": { + "id": 288, + "nodeType": "Block", + "src": "6852:146:0", + "statements": [ + { + "expression": { + "id": 277, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "baseExpression": { + "id": 270, + "name": "_roles", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 26, + "src": "6866:6:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_RoleData_$21_storage_$", + "typeString": "mapping(bytes32 => struct AccessControl.RoleData storage ref)" + } + }, + "id": 272, + "indexExpression": { + "id": 271, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 259, + "src": "6873:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6866:12:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RoleData_$21_storage", + "typeString": "struct AccessControl.RoleData storage ref" + } + }, + "id": 273, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6879:7:0", + "memberName": "hasRole", + "nodeType": "MemberAccess", + "referencedDeclaration": 18, + "src": "6866:20:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 275, + "indexExpression": { + "id": 274, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 261, + "src": "6887:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6866:29:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "66616c7365", + "id": 276, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6898:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "6866:37:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 278, + "nodeType": "ExpressionStatement", + "src": "6866:37:0" + }, + { + "eventCall": { + "arguments": [ + { + "id": 280, + "name": "role", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 259, + "src": "6934:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 281, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 261, + "src": "6940:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 282, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 390, + "src": "6949:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6949:12:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 279, + "name": "RoleRevoked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 335, + "src": "6922:11:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$returns$__$", + "typeString": "function (bytes32,address,address)" + } + }, + "id": 284, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6922:40:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 285, + "nodeType": "EmitStatement", + "src": "6917:45:0" + }, + { + "expression": { + "hexValue": "74727565", + "id": 286, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6983:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 265, + "id": 287, + "nodeType": "Return", + "src": "6976:11:0" + } + ] + } + } + ] + }, + "documentation": { + "id": 257, + "nodeType": "StructuredDocumentation", + "src": "6501:224:0", + "text": " @dev Attempts to revoke `role` to `account` and returns a boolean indicating if `role` was revoked.\n Internal function without access restriction.\n May emit a {RoleRevoked} event." + }, + "id": 294, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_revokeRole", + "nameLocation": "6739:11:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 262, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 259, + "mutability": "mutable", + "name": "role", + "nameLocation": "6759:4:0", + "nodeType": "VariableDeclaration", + "scope": 294, + "src": "6751:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 258, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6751:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 261, + "mutability": "mutable", + "name": "account", + "nameLocation": "6773:7:0", + "nodeType": "VariableDeclaration", + "scope": 294, + "src": "6765:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 260, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6765:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "6750:31:0" + }, + "returnParameters": { + "id": 265, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 264, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 294, + "src": "6808:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 263, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6808:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "6807:6:0" + }, + "scope": 295, + "src": "6730:317:0", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 296, + "src": "1953:5096:0", + "usedErrors": [ + 305, + 308 + ], + "usedEvents": [ + 317, + 326, + 335 + ] + } + ], + "src": "108:6942:0" + }, + "id": 0 + }, + "@openzeppelin/contracts/access/IAccessControl.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/access/IAccessControl.sol", + "exportedSymbols": { + "IAccessControl": [ + 378 + ] + }, + "id": 379, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 297, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "109:24:1" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IAccessControl", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 298, + "nodeType": "StructuredDocumentation", + "src": "135:90:1", + "text": " @dev External interface of AccessControl declared to support ERC-165 detection." + }, + "fullyImplemented": false, + "id": 378, + "linearizedBaseContracts": [ + 378 + ], + "name": "IAccessControl", + "nameLocation": "236:14:1", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 299, + "nodeType": "StructuredDocumentation", + "src": "257:56:1", + "text": " @dev The `account` is missing a role." + }, + "errorSelector": "e2517d3f", + "id": 305, + "name": "AccessControlUnauthorizedAccount", + "nameLocation": "324:32:1", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 304, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 301, + "mutability": "mutable", + "name": "account", + "nameLocation": "365:7:1", + "nodeType": "VariableDeclaration", + "scope": 305, + "src": "357:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 300, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "357:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 303, + "mutability": "mutable", + "name": "neededRole", + "nameLocation": "382:10:1", + "nodeType": "VariableDeclaration", + "scope": 305, + "src": "374:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 302, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "374:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "356:37:1" + }, + "src": "318:76:1" + }, + { + "documentation": { + "id": 306, + "nodeType": "StructuredDocumentation", + "src": "400:148:1", + "text": " @dev The caller of a function is not the expected one.\n NOTE: Don't confuse with {AccessControlUnauthorizedAccount}." + }, + "errorSelector": "6697b232", + "id": 308, + "name": "AccessControlBadConfirmation", + "nameLocation": "559:28:1", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 307, + "nodeType": "ParameterList", + "parameters": [], + "src": "587:2:1" + }, + "src": "553:37:1" + }, + { + "anonymous": false, + "documentation": { + "id": 309, + "nodeType": "StructuredDocumentation", + "src": "596:254:1", + "text": " @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole`\n `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite\n {RoleAdminChanged} not being emitted signaling this." + }, + "eventSelector": "bd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff", + "id": 317, + "name": "RoleAdminChanged", + "nameLocation": "861:16:1", + "nodeType": "EventDefinition", + "parameters": { + "id": 316, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 311, + "indexed": true, + "mutability": "mutable", + "name": "role", + "nameLocation": "894:4:1", + "nodeType": "VariableDeclaration", + "scope": 317, + "src": "878:20:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 310, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "878:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 313, + "indexed": true, + "mutability": "mutable", + "name": "previousAdminRole", + "nameLocation": "916:17:1", + "nodeType": "VariableDeclaration", + "scope": 317, + "src": "900:33:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 312, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "900:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 315, + "indexed": true, + "mutability": "mutable", + "name": "newAdminRole", + "nameLocation": "951:12:1", + "nodeType": "VariableDeclaration", + "scope": 317, + "src": "935:28:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 314, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "935:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "877:87:1" + }, + "src": "855:110:1" + }, + { + "anonymous": false, + "documentation": { + "id": 318, + "nodeType": "StructuredDocumentation", + "src": "971:295:1", + "text": " @dev Emitted when `account` is granted `role`.\n `sender` is the account that originated the contract call. This account bears the admin role (for the granted role).\n Expected in cases where the role was granted using the internal {AccessControl-_grantRole}." + }, + "eventSelector": "2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d", + "id": 326, + "name": "RoleGranted", + "nameLocation": "1277:11:1", + "nodeType": "EventDefinition", + "parameters": { + "id": 325, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 320, + "indexed": true, + "mutability": "mutable", + "name": "role", + "nameLocation": "1305:4:1", + "nodeType": "VariableDeclaration", + "scope": 326, + "src": "1289:20:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 319, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1289:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 322, + "indexed": true, + "mutability": "mutable", + "name": "account", + "nameLocation": "1327:7:1", + "nodeType": "VariableDeclaration", + "scope": 326, + "src": "1311:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 321, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1311:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 324, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nameLocation": "1352:6:1", + "nodeType": "VariableDeclaration", + "scope": 326, + "src": "1336:22:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 323, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1336:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1288:71:1" + }, + "src": "1271:89:1" + }, + { + "anonymous": false, + "documentation": { + "id": 327, + "nodeType": "StructuredDocumentation", + "src": "1366:275:1", + "text": " @dev Emitted when `account` is revoked `role`.\n `sender` is the account that originated the contract call:\n - if using `revokeRole`, it is the admin role bearer\n - if using `renounceRole`, it is the role bearer (i.e. `account`)" + }, + "eventSelector": "f6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b", + "id": 335, + "name": "RoleRevoked", + "nameLocation": "1652:11:1", + "nodeType": "EventDefinition", + "parameters": { + "id": 334, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 329, + "indexed": true, + "mutability": "mutable", + "name": "role", + "nameLocation": "1680:4:1", + "nodeType": "VariableDeclaration", + "scope": 335, + "src": "1664:20:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 328, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1664:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 331, + "indexed": true, + "mutability": "mutable", + "name": "account", + "nameLocation": "1702:7:1", + "nodeType": "VariableDeclaration", + "scope": 335, + "src": "1686:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 330, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1686:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 333, + "indexed": true, + "mutability": "mutable", + "name": "sender", + "nameLocation": "1727:6:1", + "nodeType": "VariableDeclaration", + "scope": 335, + "src": "1711:22:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 332, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1711:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1663:71:1" + }, + "src": "1646:89:1" + }, + { + "documentation": { + "id": 336, + "nodeType": "StructuredDocumentation", + "src": "1741:76:1", + "text": " @dev Returns `true` if `account` has been granted `role`." + }, + "functionSelector": "91d14854", + "id": 345, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "hasRole", + "nameLocation": "1831:7:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 341, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 338, + "mutability": "mutable", + "name": "role", + "nameLocation": "1847:4:1", + "nodeType": "VariableDeclaration", + "scope": 345, + "src": "1839:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 337, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1839:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 340, + "mutability": "mutable", + "name": "account", + "nameLocation": "1861:7:1", + "nodeType": "VariableDeclaration", + "scope": 345, + "src": "1853:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 339, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1853:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1838:31:1" + }, + "returnParameters": { + "id": 344, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 343, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 345, + "src": "1893:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 342, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1893:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1892:6:1" + }, + "scope": 378, + "src": "1822:77:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 346, + "nodeType": "StructuredDocumentation", + "src": "1905:184:1", + "text": " @dev Returns the admin role that controls `role`. See {grantRole} and\n {revokeRole}.\n To change a role's admin, use {AccessControl-_setRoleAdmin}." + }, + "functionSelector": "248a9ca3", + "id": 353, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getRoleAdmin", + "nameLocation": "2103:12:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 349, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 348, + "mutability": "mutable", + "name": "role", + "nameLocation": "2124:4:1", + "nodeType": "VariableDeclaration", + "scope": 353, + "src": "2116:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 347, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2116:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "2115:14:1" + }, + "returnParameters": { + "id": 352, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 351, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 353, + "src": "2153:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 350, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2153:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "2152:9:1" + }, + "scope": 378, + "src": "2094:68:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 354, + "nodeType": "StructuredDocumentation", + "src": "2168:239:1", + "text": " @dev Grants `role` to `account`.\n If `account` had not been already granted `role`, emits a {RoleGranted}\n event.\n Requirements:\n - the caller must have ``role``'s admin role." + }, + "functionSelector": "2f2ff15d", + "id": 361, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "grantRole", + "nameLocation": "2421:9:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 359, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 356, + "mutability": "mutable", + "name": "role", + "nameLocation": "2439:4:1", + "nodeType": "VariableDeclaration", + "scope": 361, + "src": "2431:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 355, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2431:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 358, + "mutability": "mutable", + "name": "account", + "nameLocation": "2453:7:1", + "nodeType": "VariableDeclaration", + "scope": 361, + "src": "2445:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 357, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2445:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2430:31:1" + }, + "returnParameters": { + "id": 360, + "nodeType": "ParameterList", + "parameters": [], + "src": "2470:0:1" + }, + "scope": 378, + "src": "2412:59:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 362, + "nodeType": "StructuredDocumentation", + "src": "2477:223:1", + "text": " @dev Revokes `role` from `account`.\n If `account` had been granted `role`, emits a {RoleRevoked} event.\n Requirements:\n - the caller must have ``role``'s admin role." + }, + "functionSelector": "d547741f", + "id": 369, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "revokeRole", + "nameLocation": "2714:10:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 367, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 364, + "mutability": "mutable", + "name": "role", + "nameLocation": "2733:4:1", + "nodeType": "VariableDeclaration", + "scope": 369, + "src": "2725:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 363, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2725:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 366, + "mutability": "mutable", + "name": "account", + "nameLocation": "2747:7:1", + "nodeType": "VariableDeclaration", + "scope": 369, + "src": "2739:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 365, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2739:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2724:31:1" + }, + "returnParameters": { + "id": 368, + "nodeType": "ParameterList", + "parameters": [], + "src": "2764:0:1" + }, + "scope": 378, + "src": "2705:60:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 370, + "nodeType": "StructuredDocumentation", + "src": "2771:491:1", + "text": " @dev Revokes `role` from the calling account.\n Roles are often managed via {grantRole} and {revokeRole}: this function's\n purpose is to provide a mechanism for accounts to lose their privileges\n if they are compromised (such as when a trusted device is misplaced).\n If the calling account had been granted `role`, emits a {RoleRevoked}\n event.\n Requirements:\n - the caller must be `callerConfirmation`." + }, + "functionSelector": "36568abe", + "id": 377, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "renounceRole", + "nameLocation": "3276:12:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 375, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 372, + "mutability": "mutable", + "name": "role", + "nameLocation": "3297:4:1", + "nodeType": "VariableDeclaration", + "scope": 377, + "src": "3289:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 371, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3289:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 374, + "mutability": "mutable", + "name": "callerConfirmation", + "nameLocation": "3311:18:1", + "nodeType": "VariableDeclaration", + "scope": 377, + "src": "3303:26:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 373, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3303:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3288:42:1" + }, + "returnParameters": { + "id": 376, + "nodeType": "ParameterList", + "parameters": [], + "src": "3339:0:1" + }, + "scope": 378, + "src": "3267:73:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 379, + "src": "226:3116:1", + "usedErrors": [ + 305, + 308 + ], + "usedEvents": [ + 317, + 326, + 335 + ] + } + ], + "src": "109:3234:1" + }, + "id": 1 + }, + "@openzeppelin/contracts/utils/Context.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/Context.sol", + "exportedSymbols": { + "Context": [ + 408 + ] + }, + "id": 409, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 380, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "101:24:2" + }, + { + "abstract": true, + "baseContracts": [], + "canonicalName": "Context", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 381, + "nodeType": "StructuredDocumentation", + "src": "127:496:2", + "text": " @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts." + }, + "fullyImplemented": true, + "id": 408, + "linearizedBaseContracts": [ + 408 + ], + "name": "Context", + "nameLocation": "642:7:2", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 389, + "nodeType": "Block", + "src": "718:34:2", + "statements": [ + { + "expression": { + "expression": { + "id": 386, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "735:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 387, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "739:6:2", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "735:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 385, + "id": 388, + "nodeType": "Return", + "src": "728:17:2" + } + ] + }, + "id": 390, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgSender", + "nameLocation": "665:10:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 382, + "nodeType": "ParameterList", + "parameters": [], + "src": "675:2:2" + }, + "returnParameters": { + "id": 385, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 384, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 390, + "src": "709:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 383, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "709:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "708:9:2" + }, + "scope": 408, + "src": "656:96:2", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 398, + "nodeType": "Block", + "src": "825:32:2", + "statements": [ + { + "expression": { + "expression": { + "id": 395, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "842:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "846:4:2", + "memberName": "data", + "nodeType": "MemberAccess", + "src": "842:8:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "functionReturnParameters": 394, + "id": 397, + "nodeType": "Return", + "src": "835:15:2" + } + ] + }, + "id": 399, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgData", + "nameLocation": "767:8:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 391, + "nodeType": "ParameterList", + "parameters": [], + "src": "775:2:2" + }, + "returnParameters": { + "id": 394, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 393, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 399, + "src": "809:14:2", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 392, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "809:5:2", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "808:16:2" + }, + "scope": 408, + "src": "758:99:2", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 406, + "nodeType": "Block", + "src": "935:25:2", + "statements": [ + { + "expression": { + "hexValue": "30", + "id": 404, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "952:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 403, + "id": 405, + "nodeType": "Return", + "src": "945:8:2" + } + ] + }, + "id": 407, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_contextSuffixLength", + "nameLocation": "872:20:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 400, + "nodeType": "ParameterList", + "parameters": [], + "src": "892:2:2" + }, + "returnParameters": { + "id": 403, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 402, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 407, + "src": "926:7:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 401, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "926:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "925:9:2" + }, + "scope": 408, + "src": "863:97:2", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 409, + "src": "624:338:2", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "101:862:2" + }, + "id": 2 + }, + "@openzeppelin/contracts/utils/introspection/ERC165.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/introspection/ERC165.sol", + "exportedSymbols": { + "ERC165": [ + 432 + ], + "IERC165": [ + 444 + ] + }, + "id": 433, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 410, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "114:24:3" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/introspection/IERC165.sol", + "file": "./IERC165.sol", + "id": 412, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 433, + "sourceUnit": 445, + "src": "140:38:3", + "symbolAliases": [ + { + "foreign": { + "id": 411, + "name": "IERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 444, + "src": "148:7:3", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 414, + "name": "IERC165", + "nameLocations": [ + "688:7:3" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 444, + "src": "688:7:3" + }, + "id": 415, + "nodeType": "InheritanceSpecifier", + "src": "688:7:3" + } + ], + "canonicalName": "ERC165", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 413, + "nodeType": "StructuredDocumentation", + "src": "180:479:3", + "text": " @dev Implementation of the {IERC165} interface.\n Contracts that want to implement ERC-165 should inherit from this contract and override {supportsInterface} to check\n for the additional interface id that will be supported. For example:\n ```solidity\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n }\n ```" + }, + "fullyImplemented": true, + "id": 432, + "linearizedBaseContracts": [ + 432, + 444 + ], + "name": "ERC165", + "nameLocation": "678:6:3", + "nodeType": "ContractDefinition", + "nodes": [ + { + "baseFunctions": [ + 443 + ], + "body": { + "id": 430, + "nodeType": "Block", + "src": "845:64:3", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 428, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 423, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 418, + "src": "862:11:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 425, + "name": "IERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 444, + "src": "882:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC165_$444_$", + "typeString": "type(contract IERC165)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_contract$_IERC165_$444_$", + "typeString": "type(contract IERC165)" + } + ], + "id": 424, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "877:4:3", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 426, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "877:13:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_contract$_IERC165_$444", + "typeString": "type(contract IERC165)" + } + }, + "id": 427, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "891:11:3", + "memberName": "interfaceId", + "nodeType": "MemberAccess", + "src": "877:25:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "862:40:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 422, + "id": 429, + "nodeType": "Return", + "src": "855:47:3" + } + ] + }, + "documentation": { + "id": 416, + "nodeType": "StructuredDocumentation", + "src": "702:56:3", + "text": " @dev See {IERC165-supportsInterface}." + }, + "functionSelector": "01ffc9a7", + "id": 431, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nameLocation": "772:17:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 419, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 418, + "mutability": "mutable", + "name": "interfaceId", + "nameLocation": "797:11:3", + "nodeType": "VariableDeclaration", + "scope": 431, + "src": "790:18:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 417, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "790:6:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "789:20:3" + }, + "returnParameters": { + "id": 422, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 421, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 431, + "src": "839:4:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 420, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "839:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "838:6:3" + }, + "scope": 432, + "src": "763:146:3", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + } + ], + "scope": 433, + "src": "660:251:3", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "114:798:3" + }, + "id": 3 + }, + "@openzeppelin/contracts/utils/introspection/IERC165.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/introspection/IERC165.sol", + "exportedSymbols": { + "IERC165": [ + 444 + ] + }, + "id": 445, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 434, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "115:24:4" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC165", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 435, + "nodeType": "StructuredDocumentation", + "src": "141:280:4", + "text": " @dev Interface of the ERC-165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[ERC].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}." + }, + "fullyImplemented": false, + "id": 444, + "linearizedBaseContracts": [ + 444 + ], + "name": "IERC165", + "nameLocation": "432:7:4", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 436, + "nodeType": "StructuredDocumentation", + "src": "446:340:4", + "text": " @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas." + }, + "functionSelector": "01ffc9a7", + "id": 443, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nameLocation": "800:17:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 439, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 438, + "mutability": "mutable", + "name": "interfaceId", + "nameLocation": "825:11:4", + "nodeType": "VariableDeclaration", + "scope": 443, + "src": "818:18:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 437, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "818:6:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "817:20:4" + }, + "returnParameters": { + "id": 442, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 441, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 443, + "src": "861:4:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 440, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "861:4:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "860:6:4" + }, + "scope": 444, + "src": "791:76:4", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 445, + "src": "422:447:4", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "115:755:4" + }, + "id": 4 + }, + "contracts/ChainSignatures.sol": { + "ast": { + "absolutePath": "contracts/ChainSignatures.sol", + "exportedSymbols": { + "AccessControl": [ + 295 + ], + "ChainSignatures": [ + 740 + ], + "Context": [ + 408 + ], + "ERC165": [ + 432 + ], + "IAccessControl": [ + 378 + ] + }, + "id": 741, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 446, + "literals": [ + "solidity", + "^", + "0.8", + ".17" + ], + "nodeType": "PragmaDirective", + "src": "32:24:5" + }, + { + "absolutePath": "@openzeppelin/contracts/access/AccessControl.sol", + "file": "@openzeppelin/contracts/access/AccessControl.sol", + "id": 447, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 741, + "sourceUnit": 296, + "src": "58:58:5", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 449, + "name": "AccessControl", + "nameLocations": [ + "289:13:5" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 295, + "src": "289:13:5" + }, + "id": 450, + "nodeType": "InheritanceSpecifier", + "src": "289:13:5" + } + ], + "canonicalName": "ChainSignatures", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 448, + "nodeType": "StructuredDocumentation", + "src": "118:142:5", + "text": " @title Sig.Network signing contract\n @dev Contract for accepting signature requests and providing responses from the Sig.Network." + }, + "fullyImplemented": true, + "id": 740, + "linearizedBaseContracts": [ + 740, + 295, + 432, + 444, + 378, + 408 + ], + "name": "ChainSignatures", + "nameLocation": "270:15:5", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "ChainSignatures.SignRequest", + "id": 463, + "members": [ + { + "constant": false, + "id": 452, + "mutability": "mutable", + "name": "payload", + "nameLocation": "346:7:5", + "nodeType": "VariableDeclaration", + "scope": 463, + "src": "338:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 451, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "338:7:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 454, + "mutability": "mutable", + "name": "path", + "nameLocation": "370:4:5", + "nodeType": "VariableDeclaration", + "scope": 463, + "src": "363:11:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 453, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "363:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 456, + "mutability": "mutable", + "name": "keyVersion", + "nameLocation": "391:10:5", + "nodeType": "VariableDeclaration", + "scope": 463, + "src": "384:17:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 455, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "384:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 458, + "mutability": "mutable", + "name": "algo", + "nameLocation": "418:4:5", + "nodeType": "VariableDeclaration", + "scope": 463, + "src": "411:11:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 457, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "411:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 460, + "mutability": "mutable", + "name": "dest", + "nameLocation": "439:4:5", + "nodeType": "VariableDeclaration", + "scope": 463, + "src": "432:11:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 459, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "432:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 462, + "mutability": "mutable", + "name": "params", + "nameLocation": "460:6:5", + "nodeType": "VariableDeclaration", + "scope": 463, + "src": "453:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 461, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "453:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "name": "SignRequest", + "nameLocation": "316:11:5", + "nodeType": "StructDefinition", + "scope": 740, + "src": "309:164:5", + "visibility": "public" + }, + { + "canonicalName": "ChainSignatures.AffinePoint", + "id": 468, + "members": [ + { + "constant": false, + "id": 465, + "mutability": "mutable", + "name": "x", + "nameLocation": "516:1:5", + "nodeType": "VariableDeclaration", + "scope": 468, + "src": "508:9:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 464, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "508:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 467, + "mutability": "mutable", + "name": "y", + "nameLocation": "535:1:5", + "nodeType": "VariableDeclaration", + "scope": 468, + "src": "527:9:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 466, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "527:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "AffinePoint", + "nameLocation": "486:11:5", + "nodeType": "StructDefinition", + "scope": 740, + "src": "479:64:5", + "visibility": "public" + }, + { + "canonicalName": "ChainSignatures.Signature", + "id": 476, + "members": [ + { + "constant": false, + "id": 471, + "mutability": "mutable", + "name": "bigR", + "nameLocation": "588:4:5", + "nodeType": "VariableDeclaration", + "scope": 476, + "src": "576:16:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AffinePoint_$468_storage_ptr", + "typeString": "struct ChainSignatures.AffinePoint" + }, + "typeName": { + "id": 470, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 469, + "name": "AffinePoint", + "nameLocations": [ + "576:11:5" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 468, + "src": "576:11:5" + }, + "referencedDeclaration": 468, + "src": "576:11:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AffinePoint_$468_storage_ptr", + "typeString": "struct ChainSignatures.AffinePoint" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 473, + "mutability": "mutable", + "name": "s", + "nameLocation": "610:1:5", + "nodeType": "VariableDeclaration", + "scope": 476, + "src": "602:9:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 472, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "602:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 475, + "mutability": "mutable", + "name": "recoveryId", + "nameLocation": "627:10:5", + "nodeType": "VariableDeclaration", + "scope": 476, + "src": "621:16:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 474, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "621:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "name": "Signature", + "nameLocation": "556:9:5", + "nodeType": "StructDefinition", + "scope": 740, + "src": "549:95:5", + "visibility": "public" + }, + { + "canonicalName": "ChainSignatures.Response", + "id": 482, + "members": [ + { + "constant": false, + "id": 478, + "mutability": "mutable", + "name": "requestId", + "nameLocation": "684:9:5", + "nodeType": "VariableDeclaration", + "scope": 482, + "src": "676:17:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 477, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "676:7:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 481, + "mutability": "mutable", + "name": "signature", + "nameLocation": "713:9:5", + "nodeType": "VariableDeclaration", + "scope": 482, + "src": "703:19:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Signature_$476_storage_ptr", + "typeString": "struct ChainSignatures.Signature" + }, + "typeName": { + "id": 480, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 479, + "name": "Signature", + "nameLocations": [ + "703:9:5" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 476, + "src": "703:9:5" + }, + "referencedDeclaration": 476, + "src": "703:9:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Signature_$476_storage_ptr", + "typeString": "struct ChainSignatures.Signature" + } + }, + "visibility": "internal" + } + ], + "name": "Response", + "nameLocation": "657:8:5", + "nodeType": "StructDefinition", + "scope": 740, + "src": "650:79:5", + "visibility": "public" + }, + { + "canonicalName": "ChainSignatures.ErrorResponse", + "id": 487, + "members": [ + { + "constant": false, + "id": 484, + "mutability": "mutable", + "name": "requestId", + "nameLocation": "774:9:5", + "nodeType": "VariableDeclaration", + "scope": 487, + "src": "766:17:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 483, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "766:7:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 486, + "mutability": "mutable", + "name": "errorMessage", + "nameLocation": "800:12:5", + "nodeType": "VariableDeclaration", + "scope": 487, + "src": "793:19:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 485, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "793:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "name": "ErrorResponse", + "nameLocation": "742:13:5", + "nodeType": "StructDefinition", + "scope": 740, + "src": "735:84:5", + "visibility": "public" + }, + { + "constant": false, + "id": 489, + "mutability": "mutable", + "name": "signatureDeposit", + "nameLocation": "833:16:5", + "nodeType": "VariableDeclaration", + "scope": 740, + "src": "825:24:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 488, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "825:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "anonymous": false, + "documentation": { + "id": 490, + "nodeType": "StructuredDocumentation", + "src": "856:515:5", + "text": " @dev Emitted when a signature is requested.\n @param sender The address of the sender.\n @param payload The payload to be signed.\n @param keyVersion The version of the key used for signing.\n @param deposit The deposit amount.\n @param chainId The ID of the blockchain.\n @param path The derivation path for the user account.\n @param algo The algorithm used for signing.\n @param dest The response destination.\n @param params Additional parameters." + }, + "eventSelector": "6c77c4e5e031dca0c4944909e0d4d343c9c5b16eda4ef1d4be0762693e026722", + "id": 510, + "name": "SignatureRequested", + "nameLocation": "1382:18:5", + "nodeType": "EventDefinition", + "parameters": { + "id": 509, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 492, + "indexed": false, + "mutability": "mutable", + "name": "sender", + "nameLocation": "1418:6:5", + "nodeType": "VariableDeclaration", + "scope": 510, + "src": "1410:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 491, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1410:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 494, + "indexed": false, + "mutability": "mutable", + "name": "payload", + "nameLocation": "1442:7:5", + "nodeType": "VariableDeclaration", + "scope": 510, + "src": "1434:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 493, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1434:7:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 496, + "indexed": false, + "mutability": "mutable", + "name": "keyVersion", + "nameLocation": "1466:10:5", + "nodeType": "VariableDeclaration", + "scope": 510, + "src": "1459:17:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 495, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1459:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 498, + "indexed": false, + "mutability": "mutable", + "name": "deposit", + "nameLocation": "1494:7:5", + "nodeType": "VariableDeclaration", + "scope": 510, + "src": "1486:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 497, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1486:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 500, + "indexed": false, + "mutability": "mutable", + "name": "chainId", + "nameLocation": "1519:7:5", + "nodeType": "VariableDeclaration", + "scope": 510, + "src": "1511:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 499, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1511:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 502, + "indexed": false, + "mutability": "mutable", + "name": "path", + "nameLocation": "1543:4:5", + "nodeType": "VariableDeclaration", + "scope": 510, + "src": "1536:11:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 501, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1536:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 504, + "indexed": false, + "mutability": "mutable", + "name": "algo", + "nameLocation": "1564:4:5", + "nodeType": "VariableDeclaration", + "scope": 510, + "src": "1557:11:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 503, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1557:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 506, + "indexed": false, + "mutability": "mutable", + "name": "dest", + "nameLocation": "1585:4:5", + "nodeType": "VariableDeclaration", + "scope": 510, + "src": "1578:11:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 505, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1578:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 508, + "indexed": false, + "mutability": "mutable", + "name": "params", + "nameLocation": "1606:6:5", + "nodeType": "VariableDeclaration", + "scope": 510, + "src": "1599:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 507, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1599:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1400:218:5" + }, + "src": "1376:243:5" + }, + { + "anonymous": false, + "documentation": { + "id": 511, + "nodeType": "StructuredDocumentation", + "src": "1625:249:5", + "text": " @dev Emitted when a signature response is received.\n @param requestId The ID of the request. Must be calculated off-chain.\n @param responder The address of the responder.\n @param signature The signature response." + }, + "eventSelector": "8fefda2f6c146df62efa1de95f8ff0b9c29ae07b9846e61fbce6e618897397ff", + "id": 520, + "name": "SignatureResponded", + "nameLocation": "1885:18:5", + "nodeType": "EventDefinition", + "parameters": { + "id": 519, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 513, + "indexed": true, + "mutability": "mutable", + "name": "requestId", + "nameLocation": "1929:9:5", + "nodeType": "VariableDeclaration", + "scope": 520, + "src": "1913:25:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 512, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1913:7:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 515, + "indexed": false, + "mutability": "mutable", + "name": "responder", + "nameLocation": "1956:9:5", + "nodeType": "VariableDeclaration", + "scope": 520, + "src": "1948:17:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 514, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1948:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 518, + "indexed": false, + "mutability": "mutable", + "name": "signature", + "nameLocation": "1985:9:5", + "nodeType": "VariableDeclaration", + "scope": 520, + "src": "1975:19:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Signature_$476_memory_ptr", + "typeString": "struct ChainSignatures.Signature" + }, + "typeName": { + "id": 517, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 516, + "name": "Signature", + "nameLocations": [ + "1975:9:5" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 476, + "src": "1975:9:5" + }, + "referencedDeclaration": 476, + "src": "1975:9:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Signature_$476_storage_ptr", + "typeString": "struct ChainSignatures.Signature" + } + }, + "visibility": "internal" + } + ], + "src": "1903:97:5" + }, + "src": "1879:122:5" + }, + { + "anonymous": false, + "documentation": { + "id": 521, + "nodeType": "StructuredDocumentation", + "src": "2007:237:5", + "text": " @dev Emitted when a signature error is received.\n @param requestId The ID of the request. Must be calculated off-chain.\n @param responder The address of the responder.\n @param error The error message." + }, + "eventSelector": "3a8c98eb820de2bc0f92e6c44a3bc0245111e8d203e7aa5e8f2cb783b61ca124", + "id": 529, + "name": "SignatureError", + "nameLocation": "2255:14:5", + "nodeType": "EventDefinition", + "parameters": { + "id": 528, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 523, + "indexed": true, + "mutability": "mutable", + "name": "requestId", + "nameLocation": "2295:9:5", + "nodeType": "VariableDeclaration", + "scope": 529, + "src": "2279:25:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 522, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2279:7:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 525, + "indexed": false, + "mutability": "mutable", + "name": "responder", + "nameLocation": "2322:9:5", + "nodeType": "VariableDeclaration", + "scope": 529, + "src": "2314:17:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 524, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2314:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 527, + "indexed": false, + "mutability": "mutable", + "name": "error", + "nameLocation": "2348:5:5", + "nodeType": "VariableDeclaration", + "scope": 529, + "src": "2341:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 526, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2341:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2269:90:5" + }, + "src": "2249:111:5" + }, + { + "anonymous": false, + "documentation": { + "id": 530, + "nodeType": "StructuredDocumentation", + "src": "2366:147:5", + "text": " @dev Emitted when a withdrawal is made.\n @param owner The address of the owner.\n @param amount The amount withdrawn." + }, + "eventSelector": "884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364", + "id": 536, + "name": "Withdraw", + "nameLocation": "2524:8:5", + "nodeType": "EventDefinition", + "parameters": { + "id": 535, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 532, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nameLocation": "2549:5:5", + "nodeType": "VariableDeclaration", + "scope": 536, + "src": "2533:21:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 531, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2533:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 534, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nameLocation": "2561:6:5", + "nodeType": "VariableDeclaration", + "scope": 536, + "src": "2556:11:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 533, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2556:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2532:36:5" + }, + "src": "2518:51:5" + }, + { + "body": { + "id": 553, + "nodeType": "Block", + "src": "2872:107:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 545, + "name": "DEFAULT_ADMIN_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29, + "src": "2893:18:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 546, + "name": "_mpc_network", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 539, + "src": "2913:12:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 544, + "name": "_grantRole", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 256, + "src": "2882:10:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$", + "typeString": "function (bytes32,address) returns (bool)" + } + }, + "id": 547, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2882:44:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 548, + "nodeType": "ExpressionStatement", + "src": "2882:44:5" + }, + { + "expression": { + "id": 551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 549, + "name": "signatureDeposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 489, + "src": "2936:16:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 550, + "name": "_signatureDeposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 541, + "src": "2955:17:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2936:36:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 552, + "nodeType": "ExpressionStatement", + "src": "2936:36:5" + } + ] + }, + "documentation": { + "id": 537, + "nodeType": "StructuredDocumentation", + "src": "2575:231:5", + "text": " @dev Constructor for the ChainSignatures contract.\n @param _mpc_network The address of the account controlled by the MPC network.\n @param _signatureDeposit The deposit required for signature requests." + }, + "id": 554, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 542, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 539, + "mutability": "mutable", + "name": "_mpc_network", + "nameLocation": "2831:12:5", + "nodeType": "VariableDeclaration", + "scope": 554, + "src": "2823:20:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 538, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2823:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 541, + "mutability": "mutable", + "name": "_signatureDeposit", + "nameLocation": "2853:17:5", + "nodeType": "VariableDeclaration", + "scope": 554, + "src": "2845:25:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 540, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2845:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2822:49:5" + }, + "returnParameters": { + "id": 543, + "nodeType": "ParameterList", + "parameters": [], + "src": "2872:0:5" + }, + "scope": 740, + "src": "2811:168:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 590, + "nodeType": "Block", + "src": "3160:370:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 565, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 562, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3178:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 563, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3182:5:5", + "memberName": "value", + "nodeType": "MemberAccess", + "src": "3178:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 564, + "name": "signatureDeposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 489, + "src": "3191:16:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3178:29:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "496e73756666696369656e74206465706f736974", + "id": 566, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3209:22:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_f8fcaef683f0d1614f3145343efc9a3d2cb7c83cead426db44ecb090c666d824", + "typeString": "literal_string \"Insufficient deposit\"" + }, + "value": "Insufficient deposit" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_f8fcaef683f0d1614f3145343efc9a3d2cb7c83cead426db44ecb090c666d824", + "typeString": "literal_string \"Insufficient deposit\"" + } + ], + "id": 561, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3170:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 567, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3170:62:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 568, + "nodeType": "ExpressionStatement", + "src": "3170:62:5" + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "id": 570, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3280:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 571, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3284:6:5", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "3280:10:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 572, + "name": "_request", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 558, + "src": "3304:8:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SignRequest_$463_memory_ptr", + "typeString": "struct ChainSignatures.SignRequest memory" + } + }, + "id": 573, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3313:7:5", + "memberName": "payload", + "nodeType": "MemberAccess", + "referencedDeclaration": 452, + "src": "3304:16:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 574, + "name": "_request", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 558, + "src": "3334:8:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SignRequest_$463_memory_ptr", + "typeString": "struct ChainSignatures.SignRequest memory" + } + }, + "id": 575, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3343:10:5", + "memberName": "keyVersion", + "nodeType": "MemberAccess", + "referencedDeclaration": 456, + "src": "3334:19:5", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "expression": { + "id": 576, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3367:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 577, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3371:5:5", + "memberName": "value", + "nodeType": "MemberAccess", + "src": "3367:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 578, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "3390:5:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 579, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3396:7:5", + "memberName": "chainid", + "nodeType": "MemberAccess", + "src": "3390:13:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 580, + "name": "_request", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 558, + "src": "3417:8:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SignRequest_$463_memory_ptr", + "typeString": "struct ChainSignatures.SignRequest memory" + } + }, + "id": 581, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3426:4:5", + "memberName": "path", + "nodeType": "MemberAccess", + "referencedDeclaration": 454, + "src": "3417:13:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "expression": { + "id": 582, + "name": "_request", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 558, + "src": "3444:8:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SignRequest_$463_memory_ptr", + "typeString": "struct ChainSignatures.SignRequest memory" + } + }, + "id": 583, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3453:4:5", + "memberName": "algo", + "nodeType": "MemberAccess", + "referencedDeclaration": 458, + "src": "3444:13:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "expression": { + "id": 584, + "name": "_request", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 558, + "src": "3471:8:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SignRequest_$463_memory_ptr", + "typeString": "struct ChainSignatures.SignRequest memory" + } + }, + "id": 585, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3480:4:5", + "memberName": "dest", + "nodeType": "MemberAccess", + "referencedDeclaration": 460, + "src": "3471:13:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "expression": { + "id": 586, + "name": "_request", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 558, + "src": "3498:8:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SignRequest_$463_memory_ptr", + "typeString": "struct ChainSignatures.SignRequest memory" + } + }, + "id": 587, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3507:6:5", + "memberName": "params", + "nodeType": "MemberAccess", + "referencedDeclaration": 462, + "src": "3498:15:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 569, + "name": "SignatureRequested", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 510, + "src": "3248:18:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_uint32_$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (address,bytes32,uint32,uint256,uint256,string memory,string memory,string memory,string memory)" + } + }, + "id": 588, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3248:275:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 589, + "nodeType": "EmitStatement", + "src": "3243:280:5" + } + ] + }, + "documentation": { + "id": 555, + "nodeType": "StructuredDocumentation", + "src": "2985:110:5", + "text": " @dev Function to request a signature.\n @param _request The signature request details." + }, + "functionSelector": "a03b5c3b", + "id": 591, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sign", + "nameLocation": "3109:4:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 559, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 558, + "mutability": "mutable", + "name": "_request", + "nameLocation": "3133:8:5", + "nodeType": "VariableDeclaration", + "scope": 591, + "src": "3114:27:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SignRequest_$463_memory_ptr", + "typeString": "struct ChainSignatures.SignRequest" + }, + "typeName": { + "id": 557, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 556, + "name": "SignRequest", + "nameLocations": [ + "3114:11:5" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 463, + "src": "3114:11:5" + }, + "referencedDeclaration": 463, + "src": "3114:11:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SignRequest_$463_storage_ptr", + "typeString": "struct ChainSignatures.SignRequest" + } + }, + "visibility": "internal" + } + ], + "src": "3113:29:5" + }, + "returnParameters": { + "id": 560, + "nodeType": "ParameterList", + "parameters": [], + "src": "3160:0:5" + }, + "scope": 740, + "src": "3100:430:5", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 625, + "nodeType": "Block", + "src": "3724:236:5", + "statements": [ + { + "body": { + "id": 623, + "nodeType": "Block", + "src": "3782:172:5", + "statements": [ + { + "eventCall": { + "arguments": [ + { + "expression": { + "baseExpression": { + "id": 611, + "name": "_responses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 596, + "src": "3837:10:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Response_$482_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct ChainSignatures.Response calldata[] calldata" + } + }, + "id": 613, + "indexExpression": { + "id": 612, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 600, + "src": "3848:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3837:13:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Response_$482_calldata_ptr", + "typeString": "struct ChainSignatures.Response calldata" + } + }, + "id": 614, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3851:9:5", + "memberName": "requestId", + "nodeType": "MemberAccess", + "referencedDeclaration": 478, + "src": "3837:23:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 615, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "3878:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 616, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3882:6:5", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "3878:10:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "baseExpression": { + "id": 617, + "name": "_responses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 596, + "src": "3906:10:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Response_$482_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct ChainSignatures.Response calldata[] calldata" + } + }, + "id": 619, + "indexExpression": { + "id": 618, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 600, + "src": "3917:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3906:13:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Response_$482_calldata_ptr", + "typeString": "struct ChainSignatures.Response calldata" + } + }, + "id": 620, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3920:9:5", + "memberName": "signature", + "nodeType": "MemberAccess", + "referencedDeclaration": 481, + "src": "3906:23:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Signature_$476_calldata_ptr", + "typeString": "struct ChainSignatures.Signature calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_struct$_Signature_$476_calldata_ptr", + "typeString": "struct ChainSignatures.Signature calldata" + } + ], + "id": 610, + "name": "SignatureResponded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 520, + "src": "3801:18:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_struct$_Signature_$476_memory_ptr_$returns$__$", + "typeString": "function (bytes32,address,struct ChainSignatures.Signature memory)" + } + }, + "id": 621, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3801:142:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 622, + "nodeType": "EmitStatement", + "src": "3796:147:5" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 606, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 603, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 600, + "src": "3754:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 604, + "name": "_responses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 596, + "src": "3758:10:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Response_$482_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct ChainSignatures.Response calldata[] calldata" + } + }, + "id": 605, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3769:6:5", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "3758:17:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3754:21:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 624, + "initializationExpression": { + "assignments": [ + 600 + ], + "declarations": [ + { + "constant": false, + "id": 600, + "mutability": "mutable", + "name": "i", + "nameLocation": "3747:1:5", + "nodeType": "VariableDeclaration", + "scope": 624, + "src": "3739:9:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 599, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3739:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 602, + "initialValue": { + "hexValue": "30", + "id": 601, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3751:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "3739:13:5" + }, + "isSimpleCounterLoop": true, + "loopExpression": { + "expression": { + "id": 608, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "3777:3:5", + "subExpression": { + "id": 607, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 600, + "src": "3777:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 609, + "nodeType": "ExpressionStatement", + "src": "3777:3:5" + }, + "nodeType": "ForStatement", + "src": "3734:220:5" + } + ] + }, + "documentation": { + "id": 592, + "nodeType": "StructuredDocumentation", + "src": "3536:125:5", + "text": " @dev Function to respond to signature requests.\n @param _responses The array of signature responses." + }, + "functionSelector": "fb0dc126", + "id": 626, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "respond", + "nameLocation": "3675:7:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 597, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 596, + "mutability": "mutable", + "name": "_responses", + "nameLocation": "3703:10:5", + "nodeType": "VariableDeclaration", + "scope": 626, + "src": "3683:30:5", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Response_$482_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct ChainSignatures.Response[]" + }, + "typeName": { + "baseType": { + "id": 594, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 593, + "name": "Response", + "nameLocations": [ + "3683:8:5" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 482, + "src": "3683:8:5" + }, + "referencedDeclaration": 482, + "src": "3683:8:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Response_$482_storage_ptr", + "typeString": "struct ChainSignatures.Response" + } + }, + "id": 595, + "nodeType": "ArrayTypeName", + "src": "3683:10:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Response_$482_storage_$dyn_storage_ptr", + "typeString": "struct ChainSignatures.Response[]" + } + }, + "visibility": "internal" + } + ], + "src": "3682:32:5" + }, + "returnParameters": { + "id": 598, + "nodeType": "ParameterList", + "parameters": [], + "src": "3724:0:5" + }, + "scope": 740, + "src": "3666:294:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 660, + "nodeType": "Block", + "src": "4169:226:5", + "statements": [ + { + "body": { + "id": 658, + "nodeType": "Block", + "src": "4224:165:5", + "statements": [ + { + "eventCall": { + "arguments": [ + { + "expression": { + "baseExpression": { + "id": 646, + "name": "_errors", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 631, + "src": "4275:7:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ErrorResponse_$487_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct ChainSignatures.ErrorResponse calldata[] calldata" + } + }, + "id": 648, + "indexExpression": { + "id": 647, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 635, + "src": "4283:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4275:10:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ErrorResponse_$487_calldata_ptr", + "typeString": "struct ChainSignatures.ErrorResponse calldata" + } + }, + "id": 649, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4286:9:5", + "memberName": "requestId", + "nodeType": "MemberAccess", + "referencedDeclaration": 484, + "src": "4275:20:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 650, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "4313:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 651, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4317:6:5", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "4313:10:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "baseExpression": { + "id": 652, + "name": "_errors", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 631, + "src": "4341:7:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ErrorResponse_$487_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct ChainSignatures.ErrorResponse calldata[] calldata" + } + }, + "id": 654, + "indexExpression": { + "id": 653, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 635, + "src": "4349:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4341:10:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ErrorResponse_$487_calldata_ptr", + "typeString": "struct ChainSignatures.ErrorResponse calldata" + } + }, + "id": 655, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4352:12:5", + "memberName": "errorMessage", + "nodeType": "MemberAccess", + "referencedDeclaration": 486, + "src": "4341:23:5", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + ], + "id": 645, + "name": "SignatureError", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 529, + "src": "4243:14:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bytes32,address,string memory)" + } + }, + "id": 656, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4243:135:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 657, + "nodeType": "EmitStatement", + "src": "4238:140:5" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 638, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 635, + "src": "4199:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 639, + "name": "_errors", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 631, + "src": "4203:7:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ErrorResponse_$487_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct ChainSignatures.ErrorResponse calldata[] calldata" + } + }, + "id": 640, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4211:6:5", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "4203:14:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4199:18:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 659, + "initializationExpression": { + "assignments": [ + 635 + ], + "declarations": [ + { + "constant": false, + "id": 635, + "mutability": "mutable", + "name": "i", + "nameLocation": "4192:1:5", + "nodeType": "VariableDeclaration", + "scope": 659, + "src": "4184:9:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 634, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4184:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 637, + "initialValue": { + "hexValue": "30", + "id": 636, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4196:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "4184:13:5" + }, + "isSimpleCounterLoop": true, + "loopExpression": { + "expression": { + "id": 643, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "4219:3:5", + "subExpression": { + "id": 642, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 635, + "src": "4219:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 644, + "nodeType": "ExpressionStatement", + "src": "4219:3:5" + }, + "nodeType": "ForStatement", + "src": "4179:210:5" + } + ] + }, + "documentation": { + "id": 627, + "nodeType": "StructuredDocumentation", + "src": "3966:133:5", + "text": " @dev Function to emit signature generation errors.\n @param _errors The array of signature generation errors." + }, + "functionSelector": "43ec0d4c", + "id": 661, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "respondError", + "nameLocation": "4113:12:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 632, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 631, + "mutability": "mutable", + "name": "_errors", + "nameLocation": "4151:7:5", + "nodeType": "VariableDeclaration", + "scope": 661, + "src": "4126:32:5", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ErrorResponse_$487_calldata_ptr_$dyn_calldata_ptr", + "typeString": "struct ChainSignatures.ErrorResponse[]" + }, + "typeName": { + "baseType": { + "id": 629, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 628, + "name": "ErrorResponse", + "nameLocations": [ + "4126:13:5" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 487, + "src": "4126:13:5" + }, + "referencedDeclaration": 487, + "src": "4126:13:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ErrorResponse_$487_storage_ptr", + "typeString": "struct ChainSignatures.ErrorResponse" + } + }, + "id": 630, + "nodeType": "ArrayTypeName", + "src": "4126:15:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ErrorResponse_$487_storage_$dyn_storage_ptr", + "typeString": "struct ChainSignatures.ErrorResponse[]" + } + }, + "visibility": "internal" + } + ], + "src": "4125:34:5" + }, + "returnParameters": { + "id": 633, + "nodeType": "ParameterList", + "parameters": [], + "src": "4169:0:5" + }, + "scope": 740, + "src": "4104:291:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 669, + "nodeType": "Block", + "src": "4599:40:5", + "statements": [ + { + "expression": { + "id": 667, + "name": "signatureDeposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 489, + "src": "4616:16:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 666, + "id": 668, + "nodeType": "Return", + "src": "4609:23:5" + } + ] + }, + "documentation": { + "id": 662, + "nodeType": "StructuredDocumentation", + "src": "4401:130:5", + "text": " @dev Function to get the current signature deposit amount.\n @return The current signature deposit amount." + }, + "functionSelector": "ae650b95", + "id": 670, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getSignatureDeposit", + "nameLocation": "4545:19:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 663, + "nodeType": "ParameterList", + "parameters": [], + "src": "4564:2:5" + }, + "returnParameters": { + "id": 666, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 665, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 670, + "src": "4590:7:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 664, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4590:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4589:9:5" + }, + "scope": 740, + "src": "4536:103:5", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 683, + "nodeType": "Block", + "src": "4863:43:5", + "statements": [ + { + "expression": { + "id": 681, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 679, + "name": "signatureDeposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 489, + "src": "4873:16:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 680, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 673, + "src": "4892:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4873:26:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 682, + "nodeType": "ExpressionStatement", + "src": "4873:26:5" + } + ] + }, + "documentation": { + "id": 671, + "nodeType": "StructuredDocumentation", + "src": "4645:115:5", + "text": " @dev Function to set the signature deposit amount.\n @param _amount The new deposit amount." + }, + "functionSelector": "5f45af88", + "id": 684, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 676, + "name": "DEFAULT_ADMIN_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29, + "src": "4843:18:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 677, + "kind": "modifierInvocation", + "modifierName": { + "id": 675, + "name": "onlyRole", + "nameLocations": [ + "4834:8:5" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 40, + "src": "4834:8:5" + }, + "nodeType": "ModifierInvocation", + "src": "4834:28:5" + } + ], + "name": "setSignatureDeposit", + "nameLocation": "4774:19:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 674, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 673, + "mutability": "mutable", + "name": "_amount", + "nameLocation": "4811:7:5", + "nodeType": "VariableDeclaration", + "scope": 684, + "src": "4803:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 672, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4803:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4793:31:5" + }, + "returnParameters": { + "id": 678, + "nodeType": "ParameterList", + "parameters": [], + "src": "4863:0:5" + }, + "scope": 740, + "src": "4765:141:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 738, + "nodeType": "Block", + "src": "5214:390:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 701, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 696, + "name": "_receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 689, + "src": "5232:9:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 699, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5253:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 698, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5245:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 697, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5245:7:5", + "typeDescriptions": {} + } + }, + "id": 700, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5245:10:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5232:23:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "496e76616c69642072656365697665722061646472657373", + "id": 702, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5257:26:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5cbb24ca678c0bc148b6d1d734942e230f1d3686258ae74c758d5ae27e1715ef", + "typeString": "literal_string \"Invalid receiver address\"" + }, + "value": "Invalid receiver address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5cbb24ca678c0bc148b6d1d734942e230f1d3686258ae74c758d5ae27e1715ef", + "typeString": "literal_string \"Invalid receiver address\"" + } + ], + "id": 695, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5224:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 703, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5224:60:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 704, + "nodeType": "ExpressionStatement", + "src": "5224:60:5" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 712, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 706, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 687, + "src": "5315:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 709, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "5334:4:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ChainSignatures_$740", + "typeString": "contract ChainSignatures" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ChainSignatures_$740", + "typeString": "contract ChainSignatures" + } + ], + "id": 708, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5326:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 707, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5326:7:5", + "typeDescriptions": {} + } + }, + "id": 710, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5326:13:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 711, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5340:7:5", + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "5326:21:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5315:32:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "576974686472617720616d6f756e74206d75737420626520736d616c6c6572207468616e20746f74616c2062616c616e636520696e20636f6e7472616374", + "id": 713, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5361:64:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4f0d1e793d33195774e5dfb612185a73ecb950f1d617bffa7795fc28978dd45a", + "typeString": "literal_string \"Withdraw amount must be smaller than total balance in contract\"" + }, + "value": "Withdraw amount must be smaller than total balance in contract" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_4f0d1e793d33195774e5dfb612185a73ecb950f1d617bffa7795fc28978dd45a", + "typeString": "literal_string \"Withdraw amount must be smaller than total balance in contract\"" + } + ], + "id": 705, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5294:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 714, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5294:141:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 715, + "nodeType": "ExpressionStatement", + "src": "5294:141:5" + }, + { + "assignments": [ + 717, + null + ], + "declarations": [ + { + "constant": false, + "id": 717, + "mutability": "mutable", + "name": "success", + "nameLocation": "5452:7:5", + "nodeType": "VariableDeclaration", + "scope": 738, + "src": "5447:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 716, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5447:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + null + ], + "id": 727, + "initialValue": { + "arguments": [ + { + "hexValue": "", + "id": 725, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5505:2:5", + "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": { + "arguments": [ + { + "id": 720, + "name": "_receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 689, + "src": "5473:9:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 719, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5465:8:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_payable_$", + "typeString": "type(address payable)" + }, + "typeName": { + "id": 718, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5465:8:5", + "stateMutability": "payable", + "typeDescriptions": {} + } + }, + "id": 721, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5465:18:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 722, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5484:4:5", + "memberName": "call", + "nodeType": "MemberAccess", + "src": "5465:23:5", + "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": 724, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "id": 723, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 687, + "src": "5496:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "5465:39:5", + "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": 726, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5465:43:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5446:62:5" + }, + { + "expression": { + "arguments": [ + { + "id": 729, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 717, + "src": "5526:7:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "5472616e73666572206661696c6564", + "id": 730, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5535:17:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_25adaa6d082ce15f901e0d8a3d393e7462ef9edf2e6bc8321fa14d1615b6fc51", + "typeString": "literal_string \"Transfer failed\"" + }, + "value": "Transfer failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_25adaa6d082ce15f901e0d8a3d393e7462ef9edf2e6bc8321fa14d1615b6fc51", + "typeString": "literal_string \"Transfer failed\"" + } + ], + "id": 728, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5518:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 731, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5518:35:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 732, + "nodeType": "ExpressionStatement", + "src": "5518:35:5" + }, + { + "eventCall": { + "arguments": [ + { + "id": 734, + "name": "_receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 689, + "src": "5578:9:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 735, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 687, + "src": "5589:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 733, + "name": "Withdraw", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 536, + "src": "5569:8:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 736, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5569:28:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 737, + "nodeType": "EmitStatement", + "src": "5564:33:5" + } + ] + }, + "documentation": { + "id": 685, + "nodeType": "StructuredDocumentation", + "src": "4912:183:5", + "text": " @dev Function to withdraw funds from the contract.\n @param _amount The amount to withdraw.\n @param _receiver The address to receive the withdrawn funds." + }, + "functionSelector": "00f714ce", + "id": 739, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 692, + "name": "DEFAULT_ADMIN_ROLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29, + "src": "5194:18:5", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 693, + "kind": "modifierInvocation", + "modifierName": { + "id": 691, + "name": "onlyRole", + "nameLocations": [ + "5185:8:5" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 40, + "src": "5185:8:5" + }, + "nodeType": "ModifierInvocation", + "src": "5185:28:5" + } + ], + "name": "withdraw", + "nameLocation": "5109:8:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 690, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 687, + "mutability": "mutable", + "name": "_amount", + "nameLocation": "5135:7:5", + "nodeType": "VariableDeclaration", + "scope": 739, + "src": "5127:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 686, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5127:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 689, + "mutability": "mutable", + "name": "_receiver", + "nameLocation": "5160:9:5", + "nodeType": "VariableDeclaration", + "scope": 739, + "src": "5152:17:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 688, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5152:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5117:58:5" + }, + "returnParameters": { + "id": 694, + "nodeType": "ParameterList", + "parameters": [], + "src": "5214:0:5" + }, + "scope": 740, + "src": "5100:504:5", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 741, + "src": "261:5345:5", + "usedErrors": [ + 305, + 308 + ], + "usedEvents": [ + 317, + 326, + 335, + 510, + 520, + 529, + 536 + ] + } + ], + "src": "32:5575:5" + }, + "id": 5 + } + }, + "contracts": { + "@openzeppelin/contracts/access/AccessControl.sol": { + "AccessControl": { + "abi": [ + { + "inputs": [], + "name": "AccessControlBadConfirmation", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "neededRole", + "type": "bytes32" + } + ], + "name": "AccessControlUnauthorizedAccount", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "callerConfirmation", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "DEFAULT_ADMIN_ROLE()": "a217fddf", + "getRoleAdmin(bytes32)": "248a9ca3", + "grantRole(bytes32,address)": "2f2ff15d", + "hasRole(bytes32,address)": "91d14854", + "renounceRole(bytes32,address)": "36568abe", + "revokeRole(bytes32,address)": "d547741f", + "supportsInterface(bytes4)": "01ffc9a7" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module that allows children to implement role-based access control mechanisms. This is a lightweight version that doesn't allow enumerating role members except through off-chain means by accessing the contract event logs. Some applications may benefit from on-chain enumerability, for those cases see {AccessControlEnumerable}. Roles are referred to by their `bytes32` identifier. These should be exposed in the external API and be unique. The best way to achieve this is by using `public constant` hash digests: ```solidity bytes32 public constant MY_ROLE = keccak256(\\\"MY_ROLE\\\"); ``` Roles can be used to represent a set of permissions. To restrict access to a function call, use {hasRole}: ```solidity function foo() public { require(hasRole(MY_ROLE, msg.sender)); ... } ``` Roles can be granted and revoked dynamically via the {grantRole} and {revokeRole} functions. Each role has an associated admin role, and only accounts that have a role's admin role can call {grantRole} and {revokeRole}. By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means that only accounts with this role will be able to grant or revoke other roles. More complex role relationships can be created by using {_setRoleAdmin}. WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to grant and revoke this role. Extra precautions should be taken to secure accounts that have been granted it. We recommend using {AccessControlDefaultAdminRules} to enforce additional security measures for this role.\",\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}]},\"events\":{\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/AccessControl.sol\":\"AccessControl\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80\",\"dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1\",\"dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]}},\"version\":1}", + "storageLayout": { + "storage": [ + { + "astId": 26, + "contract": "@openzeppelin/contracts/access/AccessControl.sol:AccessControl", + "label": "_roles", + "offset": 0, + "slot": "0", + "type": "t_mapping(t_bytes32,t_struct(RoleData)21_storage)" + } + ], + "types": { + "t_address": { + "encoding": "inplace", + "label": "address", + "numberOfBytes": "20" + }, + "t_bool": { + "encoding": "inplace", + "label": "bool", + "numberOfBytes": "1" + }, + "t_bytes32": { + "encoding": "inplace", + "label": "bytes32", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_bool)": { + "encoding": "mapping", + "key": "t_address", + "label": "mapping(address => bool)", + "numberOfBytes": "32", + "value": "t_bool" + }, + "t_mapping(t_bytes32,t_struct(RoleData)21_storage)": { + "encoding": "mapping", + "key": "t_bytes32", + "label": "mapping(bytes32 => struct AccessControl.RoleData)", + "numberOfBytes": "32", + "value": "t_struct(RoleData)21_storage" + }, + "t_struct(RoleData)21_storage": { + "encoding": "inplace", + "label": "struct AccessControl.RoleData", + "members": [ + { + "astId": 18, + "contract": "@openzeppelin/contracts/access/AccessControl.sol:AccessControl", + "label": "hasRole", + "offset": 0, + "slot": "0", + "type": "t_mapping(t_address,t_bool)" + }, + { + "astId": 20, + "contract": "@openzeppelin/contracts/access/AccessControl.sol:AccessControl", + "label": "adminRole", + "offset": 0, + "slot": "1", + "type": "t_bytes32" + } + ], + "numberOfBytes": "64" + } + } + } + } + }, + "@openzeppelin/contracts/access/IAccessControl.sol": { + "IAccessControl": { + "abi": [ + { + "inputs": [], + "name": "AccessControlBadConfirmation", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "neededRole", + "type": "bytes32" + } + ], + "name": "AccessControlUnauthorizedAccount", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "callerConfirmation", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "getRoleAdmin(bytes32)": "248a9ca3", + "grantRole(bytes32,address)": "2f2ff15d", + "hasRole(bytes32,address)": "91d14854", + "renounceRole(bytes32,address)": "36568abe", + "revokeRole(bytes32,address)": "d547741f" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"External interface of AccessControl declared to support ERC-165 detection.\",\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}]},\"events\":{\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {AccessControl-_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":\"IAccessControl\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1\",\"dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts/utils/Context.sol": { + "Context": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Context.sol\":\"Context\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts/utils/introspection/ERC165.sol": { + "ERC165": { + "abi": [ + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "supportsInterface(bytes4)": "01ffc9a7" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC165} interface. Contracts that want to implement ERC-165 should inherit from this contract and override {supportsInterface} to check for the additional interface id that will be supported. For example: ```solidity function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); } ```\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":\"ERC165\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts/utils/introspection/IERC165.sol": { + "IERC165": { + "abi": [ + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "supportsInterface(bytes4)": "01ffc9a7" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC-165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[ERC]. Implementers can declare support of contract interfaces, which can then be queried by others ({ERC165Checker}). For an implementation, see {ERC165}.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":\"IERC165\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "contracts/ChainSignatures.sol": { + "ChainSignatures": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_mpc_network", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_signatureDeposit", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "AccessControlBadConfirmation", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "neededRole", + "type": "bytes32" + } + ], + "name": "AccessControlUnauthorizedAccount", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "requestId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "address", + "name": "responder", + "type": "address" + }, + { + "indexed": false, + "internalType": "string", + "name": "error", + "type": "string" + } + ], + "name": "SignatureError", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "payload", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint32", + "name": "keyVersion", + "type": "uint32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "deposit", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "chainId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "path", + "type": "string" + }, + { + "indexed": false, + "internalType": "string", + "name": "algo", + "type": "string" + }, + { + "indexed": false, + "internalType": "string", + "name": "dest", + "type": "string" + }, + { + "indexed": false, + "internalType": "string", + "name": "params", + "type": "string" + } + ], + "name": "SignatureRequested", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "requestId", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "address", + "name": "responder", + "type": "address" + }, + { + "components": [ + { + "components": [ + { + "internalType": "uint256", + "name": "x", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "y", + "type": "uint256" + } + ], + "internalType": "struct ChainSignatures.AffinePoint", + "name": "bigR", + "type": "tuple" + }, + { + "internalType": "uint256", + "name": "s", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "recoveryId", + "type": "uint8" + } + ], + "indexed": false, + "internalType": "struct ChainSignatures.Signature", + "name": "signature", + "type": "tuple" + } + ], + "name": "SignatureResponded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "Withdraw", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getSignatureDeposit", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "callerConfirmation", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "bytes32", + "name": "requestId", + "type": "bytes32" + }, + { + "components": [ + { + "components": [ + { + "internalType": "uint256", + "name": "x", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "y", + "type": "uint256" + } + ], + "internalType": "struct ChainSignatures.AffinePoint", + "name": "bigR", + "type": "tuple" + }, + { + "internalType": "uint256", + "name": "s", + "type": "uint256" + }, + { + "internalType": "uint8", + "name": "recoveryId", + "type": "uint8" + } + ], + "internalType": "struct ChainSignatures.Signature", + "name": "signature", + "type": "tuple" + } + ], + "internalType": "struct ChainSignatures.Response[]", + "name": "_responses", + "type": "tuple[]" + } + ], + "name": "respond", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "bytes32", + "name": "requestId", + "type": "bytes32" + }, + { + "internalType": "string", + "name": "errorMessage", + "type": "string" + } + ], + "internalType": "struct ChainSignatures.ErrorResponse[]", + "name": "_errors", + "type": "tuple[]" + } + ], + "name": "respondError", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "setSignatureDeposit", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "bytes32", + "name": "payload", + "type": "bytes32" + }, + { + "internalType": "string", + "name": "path", + "type": "string" + }, + { + "internalType": "uint32", + "name": "keyVersion", + "type": "uint32" + }, + { + "internalType": "string", + "name": "algo", + "type": "string" + }, + { + "internalType": "string", + "name": "dest", + "type": "string" + }, + { + "internalType": "string", + "name": "params", + "type": "string" + } + ], + "internalType": "struct ChainSignatures.SignRequest", + "name": "_request", + "type": "tuple" + } + ], + "name": "sign", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_receiver", + "type": "address" + } + ], + "name": "withdraw", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_554": { + "entryPoint": null, + "id": 554, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_grantRole_256": { + "entryPoint": 84, + "id": 256, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@_msgSender_390": { + "entryPoint": 443, + "id": 390, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@hasRole_80": { + "entryPoint": 337, + "id": 80, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_address_fromMemory": { + "entryPoint": 529, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256_fromMemory": { + "entryPoint": 583, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_uint256_fromMemory": { + "entryPoint": 604, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "allocate_unbounded": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 488, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 456, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 550, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": null, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 451, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "validator_revert_t_address": { + "entryPoint": 506, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 560, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:1715:6", + "nodeType": "YulBlock", + "src": "0:1715:6", + "statements": [ + { + "body": { + "nativeSrc": "47:35:6", + "nodeType": "YulBlock", + "src": "47:35:6", + "statements": [ + { + "nativeSrc": "57:19:6", + "nodeType": "YulAssignment", + "src": "57:19:6", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "73:2:6", + "nodeType": "YulLiteral", + "src": "73:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "67:5:6", + "nodeType": "YulIdentifier", + "src": "67:5:6" + }, + "nativeSrc": "67:9:6", + "nodeType": "YulFunctionCall", + "src": "67:9:6" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "57:6:6", + "nodeType": "YulIdentifier", + "src": "57:6:6" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nativeSrc": "7:75:6", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "40:6:6", + "nodeType": "YulTypedName", + "src": "40:6:6", + "type": "" + } + ], + "src": "7:75:6" + }, + { + "body": { + "nativeSrc": "177:28:6", + "nodeType": "YulBlock", + "src": "177:28:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "194:1:6", + "nodeType": "YulLiteral", + "src": "194:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "197:1:6", + "nodeType": "YulLiteral", + "src": "197:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "187:6:6", + "nodeType": "YulIdentifier", + "src": "187:6:6" + }, + "nativeSrc": "187:12:6", + "nodeType": "YulFunctionCall", + "src": "187:12:6" + }, + "nativeSrc": "187:12:6", + "nodeType": "YulExpressionStatement", + "src": "187:12:6" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "88:117:6", + "nodeType": "YulFunctionDefinition", + "src": "88:117:6" + }, + { + "body": { + "nativeSrc": "300:28:6", + "nodeType": "YulBlock", + "src": "300:28:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "317:1:6", + "nodeType": "YulLiteral", + "src": "317:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "320:1:6", + "nodeType": "YulLiteral", + "src": "320:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "310:6:6", + "nodeType": "YulIdentifier", + "src": "310:6:6" + }, + "nativeSrc": "310:12:6", + "nodeType": "YulFunctionCall", + "src": "310:12:6" + }, + "nativeSrc": "310:12:6", + "nodeType": "YulExpressionStatement", + "src": "310:12:6" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "211:117:6", + "nodeType": "YulFunctionDefinition", + "src": "211:117:6" + }, + { + "body": { + "nativeSrc": "379:81:6", + "nodeType": "YulBlock", + "src": "379:81:6", + "statements": [ + { + "nativeSrc": "389:65:6", + "nodeType": "YulAssignment", + "src": "389:65:6", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "404:5:6", + "nodeType": "YulIdentifier", + "src": "404:5:6" + }, + { + "kind": "number", + "nativeSrc": "411:42:6", + "nodeType": "YulLiteral", + "src": "411:42:6", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "400:3:6", + "nodeType": "YulIdentifier", + "src": "400:3:6" + }, + "nativeSrc": "400:54:6", + "nodeType": "YulFunctionCall", + "src": "400:54:6" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "389:7:6", + "nodeType": "YulIdentifier", + "src": "389:7:6" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nativeSrc": "334:126:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "361:5:6", + "nodeType": "YulTypedName", + "src": "361:5:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "371:7:6", + "nodeType": "YulTypedName", + "src": "371:7:6", + "type": "" + } + ], + "src": "334:126:6" + }, + { + "body": { + "nativeSrc": "511:51:6", + "nodeType": "YulBlock", + "src": "511:51:6", + "statements": [ + { + "nativeSrc": "521:35:6", + "nodeType": "YulAssignment", + "src": "521:35:6", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "550:5:6", + "nodeType": "YulIdentifier", + "src": "550:5:6" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nativeSrc": "532:17:6", + "nodeType": "YulIdentifier", + "src": "532:17:6" + }, + "nativeSrc": "532:24:6", + "nodeType": "YulFunctionCall", + "src": "532:24:6" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "521:7:6", + "nodeType": "YulIdentifier", + "src": "521:7:6" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nativeSrc": "466:96:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "493:5:6", + "nodeType": "YulTypedName", + "src": "493:5:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "503:7:6", + "nodeType": "YulTypedName", + "src": "503:7:6", + "type": "" + } + ], + "src": "466:96:6" + }, + { + "body": { + "nativeSrc": "611:79:6", + "nodeType": "YulBlock", + "src": "611:79:6", + "statements": [ + { + "body": { + "nativeSrc": "668:16:6", + "nodeType": "YulBlock", + "src": "668:16:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "677:1:6", + "nodeType": "YulLiteral", + "src": "677:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "680:1:6", + "nodeType": "YulLiteral", + "src": "680:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "670:6:6", + "nodeType": "YulIdentifier", + "src": "670:6:6" + }, + "nativeSrc": "670:12:6", + "nodeType": "YulFunctionCall", + "src": "670:12:6" + }, + "nativeSrc": "670:12:6", + "nodeType": "YulExpressionStatement", + "src": "670:12:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "634:5:6", + "nodeType": "YulIdentifier", + "src": "634:5:6" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "659:5:6", + "nodeType": "YulIdentifier", + "src": "659:5:6" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "641:17:6", + "nodeType": "YulIdentifier", + "src": "641:17:6" + }, + "nativeSrc": "641:24:6", + "nodeType": "YulFunctionCall", + "src": "641:24:6" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "631:2:6", + "nodeType": "YulIdentifier", + "src": "631:2:6" + }, + "nativeSrc": "631:35:6", + "nodeType": "YulFunctionCall", + "src": "631:35:6" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "624:6:6", + "nodeType": "YulIdentifier", + "src": "624:6:6" + }, + "nativeSrc": "624:43:6", + "nodeType": "YulFunctionCall", + "src": "624:43:6" + }, + "nativeSrc": "621:63:6", + "nodeType": "YulIf", + "src": "621:63:6" + } + ] + }, + "name": "validator_revert_t_address", + "nativeSrc": "568:122:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "604:5:6", + "nodeType": "YulTypedName", + "src": "604:5:6", + "type": "" + } + ], + "src": "568:122:6" + }, + { + "body": { + "nativeSrc": "759:80:6", + "nodeType": "YulBlock", + "src": "759:80:6", + "statements": [ + { + "nativeSrc": "769:22:6", + "nodeType": "YulAssignment", + "src": "769:22:6", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "784:6:6", + "nodeType": "YulIdentifier", + "src": "784:6:6" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "778:5:6", + "nodeType": "YulIdentifier", + "src": "778:5:6" + }, + "nativeSrc": "778:13:6", + "nodeType": "YulFunctionCall", + "src": "778:13:6" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "769:5:6", + "nodeType": "YulIdentifier", + "src": "769:5:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "827:5:6", + "nodeType": "YulIdentifier", + "src": "827:5:6" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nativeSrc": "800:26:6", + "nodeType": "YulIdentifier", + "src": "800:26:6" + }, + "nativeSrc": "800:33:6", + "nodeType": "YulFunctionCall", + "src": "800:33:6" + }, + "nativeSrc": "800:33:6", + "nodeType": "YulExpressionStatement", + "src": "800:33:6" + } + ] + }, + "name": "abi_decode_t_address_fromMemory", + "nativeSrc": "696:143:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "737:6:6", + "nodeType": "YulTypedName", + "src": "737:6:6", + "type": "" + }, + { + "name": "end", + "nativeSrc": "745:3:6", + "nodeType": "YulTypedName", + "src": "745:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "753:5:6", + "nodeType": "YulTypedName", + "src": "753:5:6", + "type": "" + } + ], + "src": "696:143:6" + }, + { + "body": { + "nativeSrc": "890:32:6", + "nodeType": "YulBlock", + "src": "890:32:6", + "statements": [ + { + "nativeSrc": "900:16:6", + "nodeType": "YulAssignment", + "src": "900:16:6", + "value": { + "name": "value", + "nativeSrc": "911:5:6", + "nodeType": "YulIdentifier", + "src": "911:5:6" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "900:7:6", + "nodeType": "YulIdentifier", + "src": "900:7:6" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nativeSrc": "845:77:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "872:5:6", + "nodeType": "YulTypedName", + "src": "872:5:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "882:7:6", + "nodeType": "YulTypedName", + "src": "882:7:6", + "type": "" + } + ], + "src": "845:77:6" + }, + { + "body": { + "nativeSrc": "971:79:6", + "nodeType": "YulBlock", + "src": "971:79:6", + "statements": [ + { + "body": { + "nativeSrc": "1028:16:6", + "nodeType": "YulBlock", + "src": "1028:16:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1037:1:6", + "nodeType": "YulLiteral", + "src": "1037:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1040:1:6", + "nodeType": "YulLiteral", + "src": "1040:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1030:6:6", + "nodeType": "YulIdentifier", + "src": "1030:6:6" + }, + "nativeSrc": "1030:12:6", + "nodeType": "YulFunctionCall", + "src": "1030:12:6" + }, + "nativeSrc": "1030:12:6", + "nodeType": "YulExpressionStatement", + "src": "1030:12:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "994:5:6", + "nodeType": "YulIdentifier", + "src": "994:5:6" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1019:5:6", + "nodeType": "YulIdentifier", + "src": "1019:5:6" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "1001:17:6", + "nodeType": "YulIdentifier", + "src": "1001:17:6" + }, + "nativeSrc": "1001:24:6", + "nodeType": "YulFunctionCall", + "src": "1001:24:6" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "991:2:6", + "nodeType": "YulIdentifier", + "src": "991:2:6" + }, + "nativeSrc": "991:35:6", + "nodeType": "YulFunctionCall", + "src": "991:35:6" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "984:6:6", + "nodeType": "YulIdentifier", + "src": "984:6:6" + }, + "nativeSrc": "984:43:6", + "nodeType": "YulFunctionCall", + "src": "984:43:6" + }, + "nativeSrc": "981:63:6", + "nodeType": "YulIf", + "src": "981:63:6" + } + ] + }, + "name": "validator_revert_t_uint256", + "nativeSrc": "928:122:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "964:5:6", + "nodeType": "YulTypedName", + "src": "964:5:6", + "type": "" + } + ], + "src": "928:122:6" + }, + { + "body": { + "nativeSrc": "1119:80:6", + "nodeType": "YulBlock", + "src": "1119:80:6", + "statements": [ + { + "nativeSrc": "1129:22:6", + "nodeType": "YulAssignment", + "src": "1129:22:6", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "1144:6:6", + "nodeType": "YulIdentifier", + "src": "1144:6:6" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1138:5:6", + "nodeType": "YulIdentifier", + "src": "1138:5:6" + }, + "nativeSrc": "1138:13:6", + "nodeType": "YulFunctionCall", + "src": "1138:13:6" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "1129:5:6", + "nodeType": "YulIdentifier", + "src": "1129:5:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "1187:5:6", + "nodeType": "YulIdentifier", + "src": "1187:5:6" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nativeSrc": "1160:26:6", + "nodeType": "YulIdentifier", + "src": "1160:26:6" + }, + "nativeSrc": "1160:33:6", + "nodeType": "YulFunctionCall", + "src": "1160:33:6" + }, + "nativeSrc": "1160:33:6", + "nodeType": "YulExpressionStatement", + "src": "1160:33:6" + } + ] + }, + "name": "abi_decode_t_uint256_fromMemory", + "nativeSrc": "1056:143:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "1097:6:6", + "nodeType": "YulTypedName", + "src": "1097:6:6", + "type": "" + }, + { + "name": "end", + "nativeSrc": "1105:3:6", + "nodeType": "YulTypedName", + "src": "1105:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "1113:5:6", + "nodeType": "YulTypedName", + "src": "1113:5:6", + "type": "" + } + ], + "src": "1056:143:6" + }, + { + "body": { + "nativeSrc": "1299:413:6", + "nodeType": "YulBlock", + "src": "1299:413:6", + "statements": [ + { + "body": { + "nativeSrc": "1345:83:6", + "nodeType": "YulBlock", + "src": "1345:83:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "1347:77:6", + "nodeType": "YulIdentifier", + "src": "1347:77:6" + }, + "nativeSrc": "1347:79:6", + "nodeType": "YulFunctionCall", + "src": "1347:79:6" + }, + "nativeSrc": "1347:79:6", + "nodeType": "YulExpressionStatement", + "src": "1347:79:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "1320:7:6", + "nodeType": "YulIdentifier", + "src": "1320:7:6" + }, + { + "name": "headStart", + "nativeSrc": "1329:9:6", + "nodeType": "YulIdentifier", + "src": "1329:9:6" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "1316:3:6", + "nodeType": "YulIdentifier", + "src": "1316:3:6" + }, + "nativeSrc": "1316:23:6", + "nodeType": "YulFunctionCall", + "src": "1316:23:6" + }, + { + "kind": "number", + "nativeSrc": "1341:2:6", + "nodeType": "YulLiteral", + "src": "1341:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "1312:3:6", + "nodeType": "YulIdentifier", + "src": "1312:3:6" + }, + "nativeSrc": "1312:32:6", + "nodeType": "YulFunctionCall", + "src": "1312:32:6" + }, + "nativeSrc": "1309:119:6", + "nodeType": "YulIf", + "src": "1309:119:6" + }, + { + "nativeSrc": "1438:128:6", + "nodeType": "YulBlock", + "src": "1438:128:6", + "statements": [ + { + "nativeSrc": "1453:15:6", + "nodeType": "YulVariableDeclaration", + "src": "1453:15:6", + "value": { + "kind": "number", + "nativeSrc": "1467:1:6", + "nodeType": "YulLiteral", + "src": "1467:1:6", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "1457:6:6", + "nodeType": "YulTypedName", + "src": "1457:6:6", + "type": "" + } + ] + }, + { + "nativeSrc": "1482:74:6", + "nodeType": "YulAssignment", + "src": "1482:74:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1528:9:6", + "nodeType": "YulIdentifier", + "src": "1528:9:6" + }, + { + "name": "offset", + "nativeSrc": "1539:6:6", + "nodeType": "YulIdentifier", + "src": "1539:6:6" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1524:3:6", + "nodeType": "YulIdentifier", + "src": "1524:3:6" + }, + "nativeSrc": "1524:22:6", + "nodeType": "YulFunctionCall", + "src": "1524:22:6" + }, + { + "name": "dataEnd", + "nativeSrc": "1548:7:6", + "nodeType": "YulIdentifier", + "src": "1548:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_address_fromMemory", + "nativeSrc": "1492:31:6", + "nodeType": "YulIdentifier", + "src": "1492:31:6" + }, + "nativeSrc": "1492:64:6", + "nodeType": "YulFunctionCall", + "src": "1492:64:6" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "1482:6:6", + "nodeType": "YulIdentifier", + "src": "1482:6:6" + } + ] + } + ] + }, + { + "nativeSrc": "1576:129:6", + "nodeType": "YulBlock", + "src": "1576:129:6", + "statements": [ + { + "nativeSrc": "1591:16:6", + "nodeType": "YulVariableDeclaration", + "src": "1591:16:6", + "value": { + "kind": "number", + "nativeSrc": "1605:2:6", + "nodeType": "YulLiteral", + "src": "1605:2:6", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "1595:6:6", + "nodeType": "YulTypedName", + "src": "1595:6:6", + "type": "" + } + ] + }, + { + "nativeSrc": "1621:74:6", + "nodeType": "YulAssignment", + "src": "1621:74:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1667:9:6", + "nodeType": "YulIdentifier", + "src": "1667:9:6" + }, + { + "name": "offset", + "nativeSrc": "1678:6:6", + "nodeType": "YulIdentifier", + "src": "1678:6:6" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1663:3:6", + "nodeType": "YulIdentifier", + "src": "1663:3:6" + }, + "nativeSrc": "1663:22:6", + "nodeType": "YulFunctionCall", + "src": "1663:22:6" + }, + { + "name": "dataEnd", + "nativeSrc": "1687:7:6", + "nodeType": "YulIdentifier", + "src": "1687:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_uint256_fromMemory", + "nativeSrc": "1631:31:6", + "nodeType": "YulIdentifier", + "src": "1631:31:6" + }, + "nativeSrc": "1631:64:6", + "nodeType": "YulFunctionCall", + "src": "1631:64:6" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "1621:6:6", + "nodeType": "YulIdentifier", + "src": "1621:6:6" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256_fromMemory", + "nativeSrc": "1205:507:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1261:9:6", + "nodeType": "YulTypedName", + "src": "1261:9:6", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "1272:7:6", + "nodeType": "YulTypedName", + "src": "1272:7:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "1284:6:6", + "nodeType": "YulTypedName", + "src": "1284:6:6", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "1292:6:6", + "nodeType": "YulTypedName", + "src": "1292:6:6", + "type": "" + } + ], + "src": "1205:507:6" + } + ] + }, + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\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 abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_addresst_uint256_fromMemory(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n}\n", + "id": 6, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50604051611b42380380611b428339818101604052810190610032919061025c565b6100456000801b8361005460201b60201c565b5080600181905550505061029c565b6000610066838361015160201b60201c565b61014657600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506100e36101bb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001905061014b565b600090505b92915050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600033905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006101f3826101c8565b9050919050565b610203816101e8565b811461020e57600080fd5b50565b600081519050610220816101fa565b92915050565b6000819050919050565b61023981610226565b811461024457600080fd5b50565b60008151905061025681610230565b92915050565b60008060408385031215610273576102726101c3565b5b600061028185828601610211565b925050602061029285828601610247565b9150509250929050565b611897806102ab6000396000f3fe6080604052600436106100c15760003560e01c80635f45af881161007f578063a217fddf11610059578063a217fddf14610266578063ae650b9514610291578063d547741f146102bc578063fb0dc126146102e5576100c1565b80635f45af88146101e457806391d148541461020d578063a03b5c3b1461024a576100c1565b8062f714ce146100c657806301ffc9a7146100ef578063248a9ca31461012c5780632f2ff15d1461016957806336568abe1461019257806343ec0d4c146101bb575b600080fd5b3480156100d257600080fd5b506100ed60048036038101906100e89190610c08565b61030e565b005b3480156100fb57600080fd5b5061011660048036038101906101119190610ca0565b6104cd565b6040516101239190610ce8565b60405180910390f35b34801561013857600080fd5b50610153600480360381019061014e9190610d39565b610547565b6040516101609190610d75565b60405180910390f35b34801561017557600080fd5b50610190600480360381019061018b9190610d90565b610566565b005b34801561019e57600080fd5b506101b960048036038101906101b49190610d90565b610588565b005b3480156101c757600080fd5b506101e260048036038101906101dd9190610e35565b610603565b005b3480156101f057600080fd5b5061020b60048036038101906102069190610e82565b6106b9565b005b34801561021957600080fd5b50610234600480360381019061022f9190610d90565b6106d1565b6040516102419190610ce8565b60405180910390f35b610264600480360381019061025f9190611146565b61073b565b005b34801561027257600080fd5b5061027b6107e2565b6040516102889190610d75565b60405180910390f35b34801561029d57600080fd5b506102a66107e9565b6040516102b3919061119e565b60405180910390f35b3480156102c857600080fd5b506102e360048036038101906102de9190610d90565b6107f3565b005b3480156102f157600080fd5b5061030c6004803603810190610307919061120f565b610815565b005b6000801b61031b816108a6565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361038a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610381906112b9565b60405180910390fd5b478311156103cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c49061134b565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16846040516103f39061139c565b60006040518083038185875af1925050503d8060008114610430576040519150601f19603f3d011682016040523d82523d6000602084013e610435565b606091505b5050905080610479576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610470906113fd565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff167f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364856040516104bf919061119e565b60405180910390a250505050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610540575061053f826108ba565b5b9050919050565b6000806000838152602001908152602001600020600101549050919050565b61056f82610547565b610578816108a6565b6105828383610924565b50505050565b610590610a15565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146105f4576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6105fe8282610a1d565b505050565b60005b828290508110156106b4578282828181106106245761062361141d565b5b9050602002810190610636919061145b565b600001357f3a8c98eb820de2bc0f92e6c44a3bc0245111e8d203e7aa5e8f2cb783b61ca1243385858581811061066f5761066e61141d565b5b9050602002810190610681919061145b565b80602001906106909190611483565b60405161069f93929190611522565b60405180910390a28080600101915050610606565b505050565b6000801b6106c6816108a6565b816001819055505050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600154341015610780576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610777906115a0565b60405180910390fd5b7f6c77c4e5e031dca0c4944909e0d4d343c9c5b16eda4ef1d4be0762693e026722338260000151836040015134468660200151876060015188608001518960a001516040516107d79998979695949392919061163d565b60405180910390a150565b6000801b81565b6000600154905090565b6107fc82610547565b610805816108a6565b61080f8383610a1d565b50505050565b60005b828290508110156108a1578282828181106108365761083561141d565b5b905060a00201600001357f8fefda2f6c146df62efa1de95f8ff0b9c29ae07b9846e61fbce6e618897397ff338585858181106108755761087461141d565b5b905060a0020160200160405161088c92919061180f565b60405180910390a28080600101915050610818565b505050565b6108b7816108b2610a15565b610b0f565b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600061093083836106d1565b610a0a57600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506109a7610a15565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050610a0f565b600090505b92915050565b600033905090565b6000610a2983836106d1565b15610b0457600080600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610aa1610a15565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050610b09565b600090505b92915050565b610b1982826106d1565b610b5c5780826040517fe2517d3f000000000000000000000000000000000000000000000000000000008152600401610b53929190611838565b60405180910390fd5b5050565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b610b8781610b74565b8114610b9257600080fd5b50565b600081359050610ba481610b7e565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bd582610baa565b9050919050565b610be581610bca565b8114610bf057600080fd5b50565b600081359050610c0281610bdc565b92915050565b60008060408385031215610c1f57610c1e610b6a565b5b6000610c2d85828601610b95565b9250506020610c3e85828601610bf3565b9150509250929050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610c7d81610c48565b8114610c8857600080fd5b50565b600081359050610c9a81610c74565b92915050565b600060208284031215610cb657610cb5610b6a565b5b6000610cc484828501610c8b565b91505092915050565b60008115159050919050565b610ce281610ccd565b82525050565b6000602082019050610cfd6000830184610cd9565b92915050565b6000819050919050565b610d1681610d03565b8114610d2157600080fd5b50565b600081359050610d3381610d0d565b92915050565b600060208284031215610d4f57610d4e610b6a565b5b6000610d5d84828501610d24565b91505092915050565b610d6f81610d03565b82525050565b6000602082019050610d8a6000830184610d66565b92915050565b60008060408385031215610da757610da6610b6a565b5b6000610db585828601610d24565b9250506020610dc685828601610bf3565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f840112610df557610df4610dd0565b5b8235905067ffffffffffffffff811115610e1257610e11610dd5565b5b602083019150836020820283011115610e2e57610e2d610dda565b5b9250929050565b60008060208385031215610e4c57610e4b610b6a565b5b600083013567ffffffffffffffff811115610e6a57610e69610b6f565b5b610e7685828601610ddf565b92509250509250929050565b600060208284031215610e9857610e97610b6a565b5b6000610ea684828501610b95565b91505092915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610efd82610eb4565b810181811067ffffffffffffffff82111715610f1c57610f1b610ec5565b5b80604052505050565b6000610f2f610b60565b9050610f3b8282610ef4565b919050565b600080fd5b600080fd5b600067ffffffffffffffff821115610f6557610f64610ec5565b5b610f6e82610eb4565b9050602081019050919050565b82818337600083830152505050565b6000610f9d610f9884610f4a565b610f25565b905082815260208101848484011115610fb957610fb8610f45565b5b610fc4848285610f7b565b509392505050565b600082601f830112610fe157610fe0610dd0565b5b8135610ff1848260208601610f8a565b91505092915050565b600063ffffffff82169050919050565b61101381610ffa565b811461101e57600080fd5b50565b6000813590506110308161100a565b92915050565b600060c0828403121561104c5761104b610eaf565b5b61105660c0610f25565b9050600061106684828501610d24565b600083015250602082013567ffffffffffffffff81111561108a57611089610f40565b5b61109684828501610fcc565b60208301525060406110aa84828501611021565b604083015250606082013567ffffffffffffffff8111156110ce576110cd610f40565b5b6110da84828501610fcc565b606083015250608082013567ffffffffffffffff8111156110fe576110fd610f40565b5b61110a84828501610fcc565b60808301525060a082013567ffffffffffffffff81111561112e5761112d610f40565b5b61113a84828501610fcc565b60a08301525092915050565b60006020828403121561115c5761115b610b6a565b5b600082013567ffffffffffffffff81111561117a57611179610b6f565b5b61118684828501611036565b91505092915050565b61119881610b74565b82525050565b60006020820190506111b3600083018461118f565b92915050565b60008083601f8401126111cf576111ce610dd0565b5b8235905067ffffffffffffffff8111156111ec576111eb610dd5565b5b6020830191508360a082028301111561120857611207610dda565b5b9250929050565b6000806020838503121561122657611225610b6a565b5b600083013567ffffffffffffffff81111561124457611243610b6f565b5b611250858286016111b9565b92509250509250929050565b600082825260208201905092915050565b7f496e76616c696420726563656976657220616464726573730000000000000000600082015250565b60006112a360188361125c565b91506112ae8261126d565b602082019050919050565b600060208201905081810360008301526112d281611296565b9050919050565b7f576974686472617720616d6f756e74206d75737420626520736d616c6c65722060008201527f7468616e20746f74616c2062616c616e636520696e20636f6e74726163740000602082015250565b6000611335603e8361125c565b9150611340826112d9565b604082019050919050565b6000602082019050818103600083015261136481611328565b9050919050565b600081905092915050565b50565b600061138660008361136b565b915061139182611376565b600082019050919050565b60006113a782611379565b9150819050919050565b7f5472616e73666572206661696c65640000000000000000000000000000000000600082015250565b60006113e7600f8361125c565b91506113f2826113b1565b602082019050919050565b60006020820190508181036000830152611416816113da565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b600080fd5b600080fd5b6000823560016040038336030381126114775761147661144c565b5b80830191505092915050565b600080833560016020038436030381126114a05761149f61144c565b5b80840192508235915067ffffffffffffffff8211156114c2576114c1611451565b5b6020830192506001820236038313156114de576114dd611456565b5b509250929050565b6114ef81610bca565b82525050565b6000611501838561125c565b935061150e838584610f7b565b61151783610eb4565b840190509392505050565b600060408201905061153760008301866114e6565b818103602083015261154a8184866114f5565b9050949350505050565b7f496e73756666696369656e74206465706f736974000000000000000000000000600082015250565b600061158a60148361125c565b915061159582611554565b602082019050919050565b600060208201905081810360008301526115b98161157d565b9050919050565b6115c981610ffa565b82525050565b600081519050919050565b60005b838110156115f85780820151818401526020810190506115dd565b60008484015250505050565b600061160f826115cf565b611619818561125c565b93506116298185602086016115da565b61163281610eb4565b840191505092915050565b600061012082019050611653600083018c6114e6565b611660602083018b610d66565b61166d604083018a6115c0565b61167a606083018961118f565b611687608083018861118f565b81810360a08301526116998187611604565b905081810360c08301526116ad8186611604565b905081810360e08301526116c18185611604565b90508181036101008301526116d68184611604565b90509a9950505050505050505050565b600082905092915050565b60006117006020840184610b95565b905092915050565b61171181610b74565b82525050565b6040820161172860008301836116f1565b6117356000850182611708565b5061174360208301836116f1565b6117506020850182611708565b50505050565b600060ff82169050919050565b61176c81611756565b811461177757600080fd5b50565b60008135905061178981611763565b92915050565b600061179e602084018461177a565b905092915050565b6117af81611756565b82525050565b608082016117c660008301836116e6565b6117d36000850182611717565b506117e160408301836116f1565b6117ee6040850182611708565b506117fc606083018361178f565b61180960608501826117a6565b50505050565b600060a08201905061182460008301856114e6565b61183160208301846117b5565b9392505050565b600060408201905061184d60008301856114e6565b61185a6020830184610d66565b939250505056fea26469706673582212202eea9aaacf9dd7810b1f570cb63d664bd79569b59fd396dcd9da436007fb4cf364736f6c634300081b0033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x1B42 CODESIZE SUB DUP1 PUSH2 0x1B42 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH2 0x32 SWAP2 SWAP1 PUSH2 0x25C JUMP JUMPDEST PUSH2 0x45 PUSH1 0x0 DUP1 SHL DUP4 PUSH2 0x54 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP DUP1 PUSH1 0x1 DUP2 SWAP1 SSTORE POP POP POP PUSH2 0x29C JUMP JUMPDEST PUSH1 0x0 PUSH2 0x66 DUP4 DUP4 PUSH2 0x151 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x146 JUMPI PUSH1 0x1 PUSH1 0x0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0xE3 PUSH2 0x1BB PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x1 SWAP1 POP PUSH2 0x14B JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1F3 DUP3 PUSH2 0x1C8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x203 DUP2 PUSH2 0x1E8 JUMP JUMPDEST DUP2 EQ PUSH2 0x20E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x220 DUP2 PUSH2 0x1FA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x239 DUP2 PUSH2 0x226 JUMP JUMPDEST DUP2 EQ PUSH2 0x244 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x256 DUP2 PUSH2 0x230 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x273 JUMPI PUSH2 0x272 PUSH2 0x1C3 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x281 DUP6 DUP3 DUP7 ADD PUSH2 0x211 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x292 DUP6 DUP3 DUP7 ADD PUSH2 0x247 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x1897 DUP1 PUSH2 0x2AB PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xC1 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x5F45AF88 GT PUSH2 0x7F JUMPI DUP1 PUSH4 0xA217FDDF GT PUSH2 0x59 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x266 JUMPI DUP1 PUSH4 0xAE650B95 EQ PUSH2 0x291 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x2BC JUMPI DUP1 PUSH4 0xFB0DC126 EQ PUSH2 0x2E5 JUMPI PUSH2 0xC1 JUMP JUMPDEST DUP1 PUSH4 0x5F45AF88 EQ PUSH2 0x1E4 JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x20D JUMPI DUP1 PUSH4 0xA03B5C3B EQ PUSH2 0x24A JUMPI PUSH2 0xC1 JUMP JUMPDEST DUP1 PUSH3 0xF714CE EQ PUSH2 0xC6 JUMPI DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xEF JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x12C JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x169 JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x192 JUMPI DUP1 PUSH4 0x43EC0D4C EQ PUSH2 0x1BB JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xED PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xE8 SWAP2 SWAP1 PUSH2 0xC08 JUMP JUMPDEST PUSH2 0x30E JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xFB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x116 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x111 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH2 0x4CD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x123 SWAP2 SWAP1 PUSH2 0xCE8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x138 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x153 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x14E SWAP2 SWAP1 PUSH2 0xD39 JUMP JUMPDEST PUSH2 0x547 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x160 SWAP2 SWAP1 PUSH2 0xD75 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x175 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x190 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x18B SWAP2 SWAP1 PUSH2 0xD90 JUMP JUMPDEST PUSH2 0x566 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x19E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1B4 SWAP2 SWAP1 PUSH2 0xD90 JUMP JUMPDEST PUSH2 0x588 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DD SWAP2 SWAP1 PUSH2 0xE35 JUMP JUMPDEST PUSH2 0x603 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x20B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x206 SWAP2 SWAP1 PUSH2 0xE82 JUMP JUMPDEST PUSH2 0x6B9 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x219 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x234 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x22F SWAP2 SWAP1 PUSH2 0xD90 JUMP JUMPDEST PUSH2 0x6D1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x241 SWAP2 SWAP1 PUSH2 0xCE8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x264 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x25F SWAP2 SWAP1 PUSH2 0x1146 JUMP JUMPDEST PUSH2 0x73B JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x272 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27B PUSH2 0x7E2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x288 SWAP2 SWAP1 PUSH2 0xD75 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x29D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A6 PUSH2 0x7E9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B3 SWAP2 SWAP1 PUSH2 0x119E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2DE SWAP2 SWAP1 PUSH2 0xD90 JUMP JUMPDEST PUSH2 0x7F3 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x30C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x307 SWAP2 SWAP1 PUSH2 0x120F JUMP JUMPDEST PUSH2 0x815 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 SHL PUSH2 0x31B DUP2 PUSH2 0x8A6 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x38A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x381 SWAP1 PUSH2 0x12B9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SELFBALANCE DUP4 GT ISZERO PUSH2 0x3CD JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C4 SWAP1 PUSH2 0x134B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH1 0x40 MLOAD PUSH2 0x3F3 SWAP1 PUSH2 0x139C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x430 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x435 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x479 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x470 SWAP1 PUSH2 0x13FD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x884EDAD9CE6FA2440D8A54CC123490EB96D2768479D49FF9C7366125A9424364 DUP6 PUSH1 0x40 MLOAD PUSH2 0x4BF SWAP2 SWAP1 PUSH2 0x119E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x7965DB0B00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x540 JUMPI POP PUSH2 0x53F DUP3 PUSH2 0x8BA JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x56F DUP3 PUSH2 0x547 JUMP JUMPDEST PUSH2 0x578 DUP2 PUSH2 0x8A6 JUMP JUMPDEST PUSH2 0x582 DUP4 DUP4 PUSH2 0x924 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x590 PUSH2 0xA15 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x5F4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x6697B23200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x5FE DUP3 DUP3 PUSH2 0xA1D JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP3 SWAP1 POP DUP2 LT ISZERO PUSH2 0x6B4 JUMPI DUP3 DUP3 DUP3 DUP2 DUP2 LT PUSH2 0x624 JUMPI PUSH2 0x623 PUSH2 0x141D JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x636 SWAP2 SWAP1 PUSH2 0x145B JUMP JUMPDEST PUSH1 0x0 ADD CALLDATALOAD PUSH32 0x3A8C98EB820DE2BC0F92E6C44A3BC0245111E8D203E7AA5E8F2CB783B61CA124 CALLER DUP6 DUP6 DUP6 DUP2 DUP2 LT PUSH2 0x66F JUMPI PUSH2 0x66E PUSH2 0x141D JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x681 SWAP2 SWAP1 PUSH2 0x145B JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x690 SWAP2 SWAP1 PUSH2 0x1483 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x69F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1522 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x606 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL PUSH2 0x6C6 DUP2 PUSH2 0x8A6 JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD CALLVALUE LT ISZERO PUSH2 0x780 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x777 SWAP1 PUSH2 0x15A0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x6C77C4E5E031DCA0C4944909E0D4D343C9C5B16EDA4EF1D4BE0762693E026722 CALLER DUP3 PUSH1 0x0 ADD MLOAD DUP4 PUSH1 0x40 ADD MLOAD CALLVALUE CHAINID DUP7 PUSH1 0x20 ADD MLOAD DUP8 PUSH1 0x60 ADD MLOAD DUP9 PUSH1 0x80 ADD MLOAD DUP10 PUSH1 0xA0 ADD MLOAD PUSH1 0x40 MLOAD PUSH2 0x7D7 SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x163D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x7FC DUP3 PUSH2 0x547 JUMP JUMPDEST PUSH2 0x805 DUP2 PUSH2 0x8A6 JUMP JUMPDEST PUSH2 0x80F DUP4 DUP4 PUSH2 0xA1D JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP3 SWAP1 POP DUP2 LT ISZERO PUSH2 0x8A1 JUMPI DUP3 DUP3 DUP3 DUP2 DUP2 LT PUSH2 0x836 JUMPI PUSH2 0x835 PUSH2 0x141D JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0xA0 MUL ADD PUSH1 0x0 ADD CALLDATALOAD PUSH32 0x8FEFDA2F6C146DF62EFA1DE95F8FF0B9C29AE07B9846E61FBCE6E618897397FF CALLER DUP6 DUP6 DUP6 DUP2 DUP2 LT PUSH2 0x875 JUMPI PUSH2 0x874 PUSH2 0x141D JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0xA0 MUL ADD PUSH1 0x20 ADD PUSH1 0x40 MLOAD PUSH2 0x88C SWAP3 SWAP2 SWAP1 PUSH2 0x180F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x818 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x8B7 DUP2 PUSH2 0x8B2 PUSH2 0xA15 JUMP JUMPDEST PUSH2 0xB0F JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x930 DUP4 DUP4 PUSH2 0x6D1 JUMP JUMPDEST PUSH2 0xA0A JUMPI PUSH1 0x1 PUSH1 0x0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0x9A7 PUSH2 0xA15 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x1 SWAP1 POP PUSH2 0xA0F JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA29 DUP4 DUP4 PUSH2 0x6D1 JUMP JUMPDEST ISZERO PUSH2 0xB04 JUMPI PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0xAA1 PUSH2 0xA15 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x1 SWAP1 POP PUSH2 0xB09 JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xB19 DUP3 DUP3 PUSH2 0x6D1 JUMP JUMPDEST PUSH2 0xB5C JUMPI DUP1 DUP3 PUSH1 0x40 MLOAD PUSH32 0xE2517D3F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB53 SWAP3 SWAP2 SWAP1 PUSH2 0x1838 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB87 DUP2 PUSH2 0xB74 JUMP JUMPDEST DUP2 EQ PUSH2 0xB92 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xBA4 DUP2 PUSH2 0xB7E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBD5 DUP3 PUSH2 0xBAA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBE5 DUP2 PUSH2 0xBCA JUMP JUMPDEST DUP2 EQ PUSH2 0xBF0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC02 DUP2 PUSH2 0xBDC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xC1F JUMPI PUSH2 0xC1E PUSH2 0xB6A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC2D DUP6 DUP3 DUP7 ADD PUSH2 0xB95 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xC3E DUP6 DUP3 DUP7 ADD PUSH2 0xBF3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC7D DUP2 PUSH2 0xC48 JUMP JUMPDEST DUP2 EQ PUSH2 0xC88 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC9A DUP2 PUSH2 0xC74 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xCB6 JUMPI PUSH2 0xCB5 PUSH2 0xB6A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xCC4 DUP5 DUP3 DUP6 ADD PUSH2 0xC8B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xCE2 DUP2 PUSH2 0xCCD JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCFD PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xCD9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD16 DUP2 PUSH2 0xD03 JUMP JUMPDEST DUP2 EQ PUSH2 0xD21 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xD33 DUP2 PUSH2 0xD0D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD4F JUMPI PUSH2 0xD4E PUSH2 0xB6A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD5D DUP5 DUP3 DUP6 ADD PUSH2 0xD24 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xD6F DUP2 PUSH2 0xD03 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD8A PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xD66 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xDA7 JUMPI PUSH2 0xDA6 PUSH2 0xB6A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xDB5 DUP6 DUP3 DUP7 ADD PUSH2 0xD24 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xDC6 DUP6 DUP3 DUP7 ADD PUSH2 0xBF3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xDF5 JUMPI PUSH2 0xDF4 PUSH2 0xDD0 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xE12 JUMPI PUSH2 0xE11 PUSH2 0xDD5 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xE2E JUMPI PUSH2 0xE2D PUSH2 0xDDA JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xE4C JUMPI PUSH2 0xE4B PUSH2 0xB6A JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xE6A JUMPI PUSH2 0xE69 PUSH2 0xB6F JUMP JUMPDEST JUMPDEST PUSH2 0xE76 DUP6 DUP3 DUP7 ADD PUSH2 0xDDF JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xE98 JUMPI PUSH2 0xE97 PUSH2 0xB6A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xEA6 DUP5 DUP3 DUP6 ADD PUSH2 0xB95 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0xEFD DUP3 PUSH2 0xEB4 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0xF1C JUMPI PUSH2 0xF1B PUSH2 0xEC5 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF2F PUSH2 0xB60 JUMP JUMPDEST SWAP1 POP PUSH2 0xF3B DUP3 DUP3 PUSH2 0xEF4 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0xF65 JUMPI PUSH2 0xF64 PUSH2 0xEC5 JUMP JUMPDEST JUMPDEST PUSH2 0xF6E DUP3 PUSH2 0xEB4 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF9D PUSH2 0xF98 DUP5 PUSH2 0xF4A JUMP JUMPDEST PUSH2 0xF25 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0xFB9 JUMPI PUSH2 0xFB8 PUSH2 0xF45 JUMP JUMPDEST JUMPDEST PUSH2 0xFC4 DUP5 DUP3 DUP6 PUSH2 0xF7B JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xFE1 JUMPI PUSH2 0xFE0 PUSH2 0xDD0 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0xFF1 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0xF8A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH4 0xFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1013 DUP2 PUSH2 0xFFA JUMP JUMPDEST DUP2 EQ PUSH2 0x101E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1030 DUP2 PUSH2 0x100A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xC0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x104C JUMPI PUSH2 0x104B PUSH2 0xEAF JUMP JUMPDEST JUMPDEST PUSH2 0x1056 PUSH1 0xC0 PUSH2 0xF25 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1066 DUP5 DUP3 DUP6 ADD PUSH2 0xD24 JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x108A JUMPI PUSH2 0x1089 PUSH2 0xF40 JUMP JUMPDEST JUMPDEST PUSH2 0x1096 DUP5 DUP3 DUP6 ADD PUSH2 0xFCC JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x10AA DUP5 DUP3 DUP6 ADD PUSH2 0x1021 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x10CE JUMPI PUSH2 0x10CD PUSH2 0xF40 JUMP JUMPDEST JUMPDEST PUSH2 0x10DA DUP5 DUP3 DUP6 ADD PUSH2 0xFCC JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x10FE JUMPI PUSH2 0x10FD PUSH2 0xF40 JUMP JUMPDEST JUMPDEST PUSH2 0x110A DUP5 DUP3 DUP6 ADD PUSH2 0xFCC JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x112E JUMPI PUSH2 0x112D PUSH2 0xF40 JUMP JUMPDEST JUMPDEST PUSH2 0x113A DUP5 DUP3 DUP6 ADD PUSH2 0xFCC JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x115C JUMPI PUSH2 0x115B PUSH2 0xB6A JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x117A JUMPI PUSH2 0x1179 PUSH2 0xB6F JUMP JUMPDEST JUMPDEST PUSH2 0x1186 DUP5 DUP3 DUP6 ADD PUSH2 0x1036 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1198 DUP2 PUSH2 0xB74 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x11B3 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x118F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x11CF JUMPI PUSH2 0x11CE PUSH2 0xDD0 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x11EC JUMPI PUSH2 0x11EB PUSH2 0xDD5 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0xA0 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x1208 JUMPI PUSH2 0x1207 PUSH2 0xDDA JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1226 JUMPI PUSH2 0x1225 PUSH2 0xB6A JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1244 JUMPI PUSH2 0x1243 PUSH2 0xB6F JUMP JUMPDEST JUMPDEST PUSH2 0x1250 DUP6 DUP3 DUP7 ADD PUSH2 0x11B9 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x496E76616C696420726563656976657220616464726573730000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x12A3 PUSH1 0x18 DUP4 PUSH2 0x125C JUMP JUMPDEST SWAP2 POP PUSH2 0x12AE DUP3 PUSH2 0x126D JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x12D2 DUP2 PUSH2 0x1296 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x576974686472617720616D6F756E74206D75737420626520736D616C6C657220 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7468616E20746F74616C2062616C616E636520696E20636F6E74726163740000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1335 PUSH1 0x3E DUP4 PUSH2 0x125C JUMP JUMPDEST SWAP2 POP PUSH2 0x1340 DUP3 PUSH2 0x12D9 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1364 DUP2 PUSH2 0x1328 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1386 PUSH1 0x0 DUP4 PUSH2 0x136B JUMP JUMPDEST SWAP2 POP PUSH2 0x1391 DUP3 PUSH2 0x1376 JUMP JUMPDEST PUSH1 0x0 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x13A7 DUP3 PUSH2 0x1379 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x5472616E73666572206661696C65640000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x13E7 PUSH1 0xF DUP4 PUSH2 0x125C JUMP JUMPDEST SWAP2 POP PUSH2 0x13F2 DUP3 PUSH2 0x13B1 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1416 DUP2 PUSH2 0x13DA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP3 CALLDATALOAD PUSH1 0x1 PUSH1 0x40 SUB DUP4 CALLDATASIZE SUB SUB DUP2 SLT PUSH2 0x1477 JUMPI PUSH2 0x1476 PUSH2 0x144C JUMP JUMPDEST JUMPDEST DUP1 DUP4 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SUB DUP5 CALLDATASIZE SUB SUB DUP2 SLT PUSH2 0x14A0 JUMPI PUSH2 0x149F PUSH2 0x144C JUMP JUMPDEST JUMPDEST DUP1 DUP5 ADD SWAP3 POP DUP3 CALLDATALOAD SWAP2 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x14C2 JUMPI PUSH2 0x14C1 PUSH2 0x1451 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP3 POP PUSH1 0x1 DUP3 MUL CALLDATASIZE SUB DUP4 SGT ISZERO PUSH2 0x14DE JUMPI PUSH2 0x14DD PUSH2 0x1456 JUMP JUMPDEST JUMPDEST POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x14EF DUP2 PUSH2 0xBCA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1501 DUP4 DUP6 PUSH2 0x125C JUMP JUMPDEST SWAP4 POP PUSH2 0x150E DUP4 DUP6 DUP5 PUSH2 0xF7B JUMP JUMPDEST PUSH2 0x1517 DUP4 PUSH2 0xEB4 JUMP JUMPDEST DUP5 ADD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1537 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x14E6 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x154A DUP2 DUP5 DUP7 PUSH2 0x14F5 JUMP JUMPDEST SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x496E73756666696369656E74206465706F736974000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x158A PUSH1 0x14 DUP4 PUSH2 0x125C JUMP JUMPDEST SWAP2 POP PUSH2 0x1595 DUP3 PUSH2 0x1554 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x15B9 DUP2 PUSH2 0x157D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x15C9 DUP2 PUSH2 0xFFA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x15F8 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x15DD JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x160F DUP3 PUSH2 0x15CF JUMP JUMPDEST PUSH2 0x1619 DUP2 DUP6 PUSH2 0x125C JUMP JUMPDEST SWAP4 POP PUSH2 0x1629 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x15DA JUMP JUMPDEST PUSH2 0x1632 DUP2 PUSH2 0xEB4 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x120 DUP3 ADD SWAP1 POP PUSH2 0x1653 PUSH1 0x0 DUP4 ADD DUP13 PUSH2 0x14E6 JUMP JUMPDEST PUSH2 0x1660 PUSH1 0x20 DUP4 ADD DUP12 PUSH2 0xD66 JUMP JUMPDEST PUSH2 0x166D PUSH1 0x40 DUP4 ADD DUP11 PUSH2 0x15C0 JUMP JUMPDEST PUSH2 0x167A PUSH1 0x60 DUP4 ADD DUP10 PUSH2 0x118F JUMP JUMPDEST PUSH2 0x1687 PUSH1 0x80 DUP4 ADD DUP9 PUSH2 0x118F JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0xA0 DUP4 ADD MSTORE PUSH2 0x1699 DUP2 DUP8 PUSH2 0x1604 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0xC0 DUP4 ADD MSTORE PUSH2 0x16AD DUP2 DUP7 PUSH2 0x1604 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0xE0 DUP4 ADD MSTORE PUSH2 0x16C1 DUP2 DUP6 PUSH2 0x1604 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH2 0x100 DUP4 ADD MSTORE PUSH2 0x16D6 DUP2 DUP5 PUSH2 0x1604 JUMP JUMPDEST SWAP1 POP SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1700 PUSH1 0x20 DUP5 ADD DUP5 PUSH2 0xB95 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1711 DUP2 PUSH2 0xB74 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x40 DUP3 ADD PUSH2 0x1728 PUSH1 0x0 DUP4 ADD DUP4 PUSH2 0x16F1 JUMP JUMPDEST PUSH2 0x1735 PUSH1 0x0 DUP6 ADD DUP3 PUSH2 0x1708 JUMP JUMPDEST POP PUSH2 0x1743 PUSH1 0x20 DUP4 ADD DUP4 PUSH2 0x16F1 JUMP JUMPDEST PUSH2 0x1750 PUSH1 0x20 DUP6 ADD DUP3 PUSH2 0x1708 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x176C DUP2 PUSH2 0x1756 JUMP JUMPDEST DUP2 EQ PUSH2 0x1777 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1789 DUP2 PUSH2 0x1763 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x179E PUSH1 0x20 DUP5 ADD DUP5 PUSH2 0x177A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x17AF DUP2 PUSH2 0x1756 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x80 DUP3 ADD PUSH2 0x17C6 PUSH1 0x0 DUP4 ADD DUP4 PUSH2 0x16E6 JUMP JUMPDEST PUSH2 0x17D3 PUSH1 0x0 DUP6 ADD DUP3 PUSH2 0x1717 JUMP JUMPDEST POP PUSH2 0x17E1 PUSH1 0x40 DUP4 ADD DUP4 PUSH2 0x16F1 JUMP JUMPDEST PUSH2 0x17EE PUSH1 0x40 DUP6 ADD DUP3 PUSH2 0x1708 JUMP JUMPDEST POP PUSH2 0x17FC PUSH1 0x60 DUP4 ADD DUP4 PUSH2 0x178F JUMP JUMPDEST PUSH2 0x1809 PUSH1 0x60 DUP6 ADD DUP3 PUSH2 0x17A6 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x1824 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x14E6 JUMP JUMPDEST PUSH2 0x1831 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x17B5 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x184D PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x14E6 JUMP JUMPDEST PUSH2 0x185A PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xD66 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2E 0xEA SWAP11 0xAA 0xCF SWAP14 0xD7 DUP2 SIGNEXTEND 0x1F JUMPI 0xC 0xB6 RETURNDATASIZE PUSH7 0x4BD79569B59FD3 SWAP7 0xDC 0xD9 0xDA NUMBER PUSH1 0x7 0xFB 0x4C RETURN PUSH5 0x736F6C6343 STOP ADDMOD SHL STOP CALLER ", + "sourceMap": "261:5345:5:-:0;;;2811:168;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2882:44;2232:4:0;2893:18:5;;2913:12;2882:10;;;:44;;:::i;:::-;;2955:17;2936:16;:36;;;;2811:168;;261:5345;;6179:316:0;6256:4;6277:22;6285:4;6291:7;6277;;;:22;;:::i;:::-;6272:217;;6347:4;6315:6;:12;6322:4;6315:12;;;;;;;;;;;:20;;:29;6336:7;6315:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;6397:12;:10;;;:12;;:::i;:::-;6370:40;;6388:7;6370:40;;6382:4;6370:40;;;;;;;;;;6431:4;6424:11;;;;6272:217;6473:5;6466:12;;6179:316;;;;;:::o;2854:136::-;2931:4;2954:6;:12;2961:4;2954:12;;;;;;;;;;;:20;;:29;2975:7;2954:29;;;;;;;;;;;;;;;;;;;;;;;;;2947:36;;2854:136;;;;:::o;656:96:2:-;709:7;735:10;728:17;;656:96;:::o;88:117:6:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:77::-;882:7;911:5;900:16;;845:77;;;:::o;928:122::-;1001:24;1019:5;1001:24;:::i;:::-;994:5;991:35;981:63;;1040:1;1037;1030:12;981:63;928:122;:::o;1056:143::-;1113:5;1144:6;1138:13;1129:22;;1160:33;1187:5;1160:33;:::i;:::-;1056:143;;;;:::o;1205:507::-;1284:6;1292;1341:2;1329:9;1320:7;1316:23;1312:32;1309:119;;;1347:79;;:::i;:::-;1309:119;1467:1;1492:64;1548:7;1539:6;1528:9;1524:22;1492:64;:::i;:::-;1482:74;;1438:128;1605:2;1631:64;1687:7;1678:6;1667:9;1663:22;1631:64;:::i;:::-;1621:74;;1576:129;1205:507;;;;;:::o;261:5345:5:-;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@DEFAULT_ADMIN_ROLE_29": { + "entryPoint": 2018, + "id": 29, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_checkRole_114": { + "entryPoint": 2831, + "id": 114, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_checkRole_93": { + "entryPoint": 2214, + "id": 93, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_grantRole_256": { + "entryPoint": 2340, + "id": 256, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@_msgSender_390": { + "entryPoint": 2581, + "id": 390, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_revokeRole_294": { + "entryPoint": 2589, + "id": 294, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@getRoleAdmin_128": { + "entryPoint": 1351, + "id": 128, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@getSignatureDeposit_670": { + "entryPoint": 2025, + "id": 670, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@grantRole_147": { + "entryPoint": 1382, + "id": 147, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@hasRole_80": { + "entryPoint": 1745, + "id": 80, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@renounceRole_189": { + "entryPoint": 1416, + "id": 189, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@respondError_661": { + "entryPoint": 1539, + "id": 661, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@respond_626": { + "entryPoint": 2069, + "id": 626, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@revokeRole_166": { + "entryPoint": 2035, + "id": 166, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@setSignatureDeposit_684": { + "entryPoint": 1721, + "id": 684, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@sign_591": { + "entryPoint": 1851, + "id": 591, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@supportsInterface_431": { + "entryPoint": 2234, + "id": 431, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@supportsInterface_62": { + "entryPoint": 1229, + "id": 62, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@withdraw_739": { + "entryPoint": 782, + "id": 739, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_decode_available_length_t_string_memory_ptr": { + "entryPoint": 3978, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_t_address": { + "entryPoint": 3059, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_array$_t_struct$_ErrorResponse_$487_calldata_ptr_$dyn_calldata_ptr": { + "entryPoint": 3551, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_t_array$_t_struct$_Response_$482_calldata_ptr_$dyn_calldata_ptr": { + "entryPoint": 4537, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_t_bytes32": { + "entryPoint": 3364, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes4": { + "entryPoint": 3211, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_string_memory_ptr": { + "entryPoint": 4044, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_struct$_SignRequest_$463_memory_ptr": { + "entryPoint": 4150, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 2965, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint32": { + "entryPoint": 4129, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint8": { + "entryPoint": 6010, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_array$_t_struct$_ErrorResponse_$487_calldata_ptr_$dyn_calldata_ptr": { + "entryPoint": 3637, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_array$_t_struct$_Response_$482_calldata_ptr_$dyn_calldata_ptr": { + "entryPoint": 4623, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_bytes32": { + "entryPoint": 3385, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_bytes32t_address": { + "entryPoint": 3472, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_bytes4": { + "entryPoint": 3232, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_struct$_SignRequest_$463_memory_ptr": { + "entryPoint": 4422, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256": { + "entryPoint": 3714, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256t_address": { + "entryPoint": 3080, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 5350, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 3289, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bytes32_to_t_bytes32_fromStack": { + "entryPoint": 3430, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_fromStack": { + "entryPoint": 5365, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": { + "entryPoint": 5636, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_25adaa6d082ce15f901e0d8a3d393e7462ef9edf2e6bc8321fa14d1615b6fc51_to_t_string_memory_ptr_fromStack": { + "entryPoint": 5082, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_4f0d1e793d33195774e5dfb612185a73ecb950f1d617bffa7795fc28978dd45a_to_t_string_memory_ptr_fromStack": { + "entryPoint": 4904, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_5cbb24ca678c0bc148b6d1d734942e230f1d3686258ae74c758d5ae27e1715ef_to_t_string_memory_ptr_fromStack": { + "entryPoint": 4758, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 4985, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_f8fcaef683f0d1614f3145343efc9a3d2cb7c83cead426db44ecb090c666d824_to_t_string_memory_ptr_fromStack": { + "entryPoint": 5501, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_struct$_AffinePoint_$468_calldata_ptr_to_t_struct$_AffinePoint_$468_memory_ptr": { + "entryPoint": 5911, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_struct$_Signature_$476_calldata_ptr_to_t_struct$_Signature_$476_memory_ptr_fromStack": { + "entryPoint": 6069, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_uint256_to_t_uint256": { + "entryPoint": 5896, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 4495, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_uint32_to_t_uint32_fromStack": { + "entryPoint": 5568, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_uint8_to_t_uint8": { + "entryPoint": 6054, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed": { + "entryPoint": 5020, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed": { + "entryPoint": 6200, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_bytes32_t_uint32_t_uint256_t_uint256_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__to_t_address_t_bytes32_t_uint32_t_uint256_t_uint256_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 5693, + "id": null, + "parameterSlots": 10, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_string_calldata_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 5410, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_struct$_Signature_$476_calldata_ptr__to_t_address_t_struct$_Signature_$476_memory_ptr__fromStack_reversed": { + "entryPoint": 6159, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 3304, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed": { + "entryPoint": 3445, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_25adaa6d082ce15f901e0d8a3d393e7462ef9edf2e6bc8321fa14d1615b6fc51__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 5117, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_4f0d1e793d33195774e5dfb612185a73ecb950f1d617bffa7795fc28978dd45a__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 4939, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_5cbb24ca678c0bc148b6d1d734942e230f1d3686258ae74c758d5ae27e1715ef__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 4793, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_f8fcaef683f0d1614f3145343efc9a3d2cb7c83cead426db44ecb090c666d824__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 5536, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 4510, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "access_calldata_tail_t_string_calldata_ptr": { + "entryPoint": 5251, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "access_calldata_tail_t_struct$_ErrorResponse_$487_calldata_ptr": { + "entryPoint": 5211, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "allocate_memory": { + "entryPoint": 3877, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": 2912, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_allocation_size_t_string_memory_ptr": { + "entryPoint": 3914, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 5583, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 4971, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 4700, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "calldata_access_t_struct$_AffinePoint_$468_calldata_ptr": { + "entryPoint": 5862, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "calldata_access_t_uint256": { + "entryPoint": 5873, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "calldata_access_t_uint8": { + "entryPoint": 6031, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "cleanup_t_address": { + "entryPoint": 3018, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 3277, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bytes32": { + "entryPoint": 3331, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bytes4": { + "entryPoint": 3144, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 2986, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 2932, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint32": { + "entryPoint": 4090, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint8": { + "entryPoint": 5974, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_calldata_to_memory_with_cleanup": { + "entryPoint": 3963, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 5594, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "finalize_allocation": { + "entryPoint": 3828, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "panic_error_0x32": { + "entryPoint": 5149, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 3781, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490": { + "entryPoint": 3541, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { + "entryPoint": 3536, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a": { + "entryPoint": 5201, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f": { + "entryPoint": 3759, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad": { + "entryPoint": 5196, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421": { + "entryPoint": 3904, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef": { + "entryPoint": 3546, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e": { + "entryPoint": 5206, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": { + "entryPoint": 3909, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": 2927, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 2922, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 3764, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "store_literal_in_memory_25adaa6d082ce15f901e0d8a3d393e7462ef9edf2e6bc8321fa14d1615b6fc51": { + "entryPoint": 5041, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_4f0d1e793d33195774e5dfb612185a73ecb950f1d617bffa7795fc28978dd45a": { + "entryPoint": 4825, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_5cbb24ca678c0bc148b6d1d734942e230f1d3686258ae74c758d5ae27e1715ef": { + "entryPoint": 4717, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470": { + "entryPoint": 4982, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_f8fcaef683f0d1614f3145343efc9a3d2cb7c83cead426db44ecb090c666d824": { + "entryPoint": 5460, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_address": { + "entryPoint": 3036, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_bytes32": { + "entryPoint": 3341, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_bytes4": { + "entryPoint": 3188, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 2942, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint32": { + "entryPoint": 4106, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint8": { + "entryPoint": 5987, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:26667:6", + "nodeType": "YulBlock", + "src": "0:26667:6", + "statements": [ + { + "body": { + "nativeSrc": "47:35:6", + "nodeType": "YulBlock", + "src": "47:35:6", + "statements": [ + { + "nativeSrc": "57:19:6", + "nodeType": "YulAssignment", + "src": "57:19:6", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "73:2:6", + "nodeType": "YulLiteral", + "src": "73:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "67:5:6", + "nodeType": "YulIdentifier", + "src": "67:5:6" + }, + "nativeSrc": "67:9:6", + "nodeType": "YulFunctionCall", + "src": "67:9:6" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "57:6:6", + "nodeType": "YulIdentifier", + "src": "57:6:6" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nativeSrc": "7:75:6", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "40:6:6", + "nodeType": "YulTypedName", + "src": "40:6:6", + "type": "" + } + ], + "src": "7:75:6" + }, + { + "body": { + "nativeSrc": "177:28:6", + "nodeType": "YulBlock", + "src": "177:28:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "194:1:6", + "nodeType": "YulLiteral", + "src": "194:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "197:1:6", + "nodeType": "YulLiteral", + "src": "197:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "187:6:6", + "nodeType": "YulIdentifier", + "src": "187:6:6" + }, + "nativeSrc": "187:12:6", + "nodeType": "YulFunctionCall", + "src": "187:12:6" + }, + "nativeSrc": "187:12:6", + "nodeType": "YulExpressionStatement", + "src": "187:12:6" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "88:117:6", + "nodeType": "YulFunctionDefinition", + "src": "88:117:6" + }, + { + "body": { + "nativeSrc": "300:28:6", + "nodeType": "YulBlock", + "src": "300:28:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "317:1:6", + "nodeType": "YulLiteral", + "src": "317:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "320:1:6", + "nodeType": "YulLiteral", + "src": "320:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "310:6:6", + "nodeType": "YulIdentifier", + "src": "310:6:6" + }, + "nativeSrc": "310:12:6", + "nodeType": "YulFunctionCall", + "src": "310:12:6" + }, + "nativeSrc": "310:12:6", + "nodeType": "YulExpressionStatement", + "src": "310:12:6" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "211:117:6", + "nodeType": "YulFunctionDefinition", + "src": "211:117:6" + }, + { + "body": { + "nativeSrc": "379:32:6", + "nodeType": "YulBlock", + "src": "379:32:6", + "statements": [ + { + "nativeSrc": "389:16:6", + "nodeType": "YulAssignment", + "src": "389:16:6", + "value": { + "name": "value", + "nativeSrc": "400:5:6", + "nodeType": "YulIdentifier", + "src": "400:5:6" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "389:7:6", + "nodeType": "YulIdentifier", + "src": "389:7:6" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nativeSrc": "334:77:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "361:5:6", + "nodeType": "YulTypedName", + "src": "361:5:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "371:7:6", + "nodeType": "YulTypedName", + "src": "371:7:6", + "type": "" + } + ], + "src": "334:77:6" + }, + { + "body": { + "nativeSrc": "460:79:6", + "nodeType": "YulBlock", + "src": "460:79:6", + "statements": [ + { + "body": { + "nativeSrc": "517:16:6", + "nodeType": "YulBlock", + "src": "517:16:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "526:1:6", + "nodeType": "YulLiteral", + "src": "526:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "529:1:6", + "nodeType": "YulLiteral", + "src": "529:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "519:6:6", + "nodeType": "YulIdentifier", + "src": "519:6:6" + }, + "nativeSrc": "519:12:6", + "nodeType": "YulFunctionCall", + "src": "519:12:6" + }, + "nativeSrc": "519:12:6", + "nodeType": "YulExpressionStatement", + "src": "519:12:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "483:5:6", + "nodeType": "YulIdentifier", + "src": "483:5:6" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "508:5:6", + "nodeType": "YulIdentifier", + "src": "508:5:6" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "490:17:6", + "nodeType": "YulIdentifier", + "src": "490:17:6" + }, + "nativeSrc": "490:24:6", + "nodeType": "YulFunctionCall", + "src": "490:24:6" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "480:2:6", + "nodeType": "YulIdentifier", + "src": "480:2:6" + }, + "nativeSrc": "480:35:6", + "nodeType": "YulFunctionCall", + "src": "480:35:6" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "473:6:6", + "nodeType": "YulIdentifier", + "src": "473:6:6" + }, + "nativeSrc": "473:43:6", + "nodeType": "YulFunctionCall", + "src": "473:43:6" + }, + "nativeSrc": "470:63:6", + "nodeType": "YulIf", + "src": "470:63:6" + } + ] + }, + "name": "validator_revert_t_uint256", + "nativeSrc": "417:122:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "453:5:6", + "nodeType": "YulTypedName", + "src": "453:5:6", + "type": "" + } + ], + "src": "417:122:6" + }, + { + "body": { + "nativeSrc": "597:87:6", + "nodeType": "YulBlock", + "src": "597:87:6", + "statements": [ + { + "nativeSrc": "607:29:6", + "nodeType": "YulAssignment", + "src": "607:29:6", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "629:6:6", + "nodeType": "YulIdentifier", + "src": "629:6:6" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "616:12:6", + "nodeType": "YulIdentifier", + "src": "616:12:6" + }, + "nativeSrc": "616:20:6", + "nodeType": "YulFunctionCall", + "src": "616:20:6" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "607:5:6", + "nodeType": "YulIdentifier", + "src": "607:5:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "672:5:6", + "nodeType": "YulIdentifier", + "src": "672:5:6" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nativeSrc": "645:26:6", + "nodeType": "YulIdentifier", + "src": "645:26:6" + }, + "nativeSrc": "645:33:6", + "nodeType": "YulFunctionCall", + "src": "645:33:6" + }, + "nativeSrc": "645:33:6", + "nodeType": "YulExpressionStatement", + "src": "645:33:6" + } + ] + }, + "name": "abi_decode_t_uint256", + "nativeSrc": "545:139:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "575:6:6", + "nodeType": "YulTypedName", + "src": "575:6:6", + "type": "" + }, + { + "name": "end", + "nativeSrc": "583:3:6", + "nodeType": "YulTypedName", + "src": "583:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "591:5:6", + "nodeType": "YulTypedName", + "src": "591:5:6", + "type": "" + } + ], + "src": "545:139:6" + }, + { + "body": { + "nativeSrc": "735:81:6", + "nodeType": "YulBlock", + "src": "735:81:6", + "statements": [ + { + "nativeSrc": "745:65:6", + "nodeType": "YulAssignment", + "src": "745:65:6", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "760:5:6", + "nodeType": "YulIdentifier", + "src": "760:5:6" + }, + { + "kind": "number", + "nativeSrc": "767:42:6", + "nodeType": "YulLiteral", + "src": "767:42:6", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "756:3:6", + "nodeType": "YulIdentifier", + "src": "756:3:6" + }, + "nativeSrc": "756:54:6", + "nodeType": "YulFunctionCall", + "src": "756:54:6" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "745:7:6", + "nodeType": "YulIdentifier", + "src": "745:7:6" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nativeSrc": "690:126:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "717:5:6", + "nodeType": "YulTypedName", + "src": "717:5:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "727:7:6", + "nodeType": "YulTypedName", + "src": "727:7:6", + "type": "" + } + ], + "src": "690:126:6" + }, + { + "body": { + "nativeSrc": "867:51:6", + "nodeType": "YulBlock", + "src": "867:51:6", + "statements": [ + { + "nativeSrc": "877:35:6", + "nodeType": "YulAssignment", + "src": "877:35:6", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "906:5:6", + "nodeType": "YulIdentifier", + "src": "906:5:6" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nativeSrc": "888:17:6", + "nodeType": "YulIdentifier", + "src": "888:17:6" + }, + "nativeSrc": "888:24:6", + "nodeType": "YulFunctionCall", + "src": "888:24:6" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "877:7:6", + "nodeType": "YulIdentifier", + "src": "877:7:6" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nativeSrc": "822:96:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "849:5:6", + "nodeType": "YulTypedName", + "src": "849:5:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "859:7:6", + "nodeType": "YulTypedName", + "src": "859:7:6", + "type": "" + } + ], + "src": "822:96:6" + }, + { + "body": { + "nativeSrc": "967:79:6", + "nodeType": "YulBlock", + "src": "967:79:6", + "statements": [ + { + "body": { + "nativeSrc": "1024:16:6", + "nodeType": "YulBlock", + "src": "1024:16:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1033:1:6", + "nodeType": "YulLiteral", + "src": "1033:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1036:1:6", + "nodeType": "YulLiteral", + "src": "1036:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1026:6:6", + "nodeType": "YulIdentifier", + "src": "1026:6:6" + }, + "nativeSrc": "1026:12:6", + "nodeType": "YulFunctionCall", + "src": "1026:12:6" + }, + "nativeSrc": "1026:12:6", + "nodeType": "YulExpressionStatement", + "src": "1026:12:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "990:5:6", + "nodeType": "YulIdentifier", + "src": "990:5:6" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1015:5:6", + "nodeType": "YulIdentifier", + "src": "1015:5:6" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "997:17:6", + "nodeType": "YulIdentifier", + "src": "997:17:6" + }, + "nativeSrc": "997:24:6", + "nodeType": "YulFunctionCall", + "src": "997:24:6" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "987:2:6", + "nodeType": "YulIdentifier", + "src": "987:2:6" + }, + "nativeSrc": "987:35:6", + "nodeType": "YulFunctionCall", + "src": "987:35:6" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "980:6:6", + "nodeType": "YulIdentifier", + "src": "980:6:6" + }, + "nativeSrc": "980:43:6", + "nodeType": "YulFunctionCall", + "src": "980:43:6" + }, + "nativeSrc": "977:63:6", + "nodeType": "YulIf", + "src": "977:63:6" + } + ] + }, + "name": "validator_revert_t_address", + "nativeSrc": "924:122:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "960:5:6", + "nodeType": "YulTypedName", + "src": "960:5:6", + "type": "" + } + ], + "src": "924:122:6" + }, + { + "body": { + "nativeSrc": "1104:87:6", + "nodeType": "YulBlock", + "src": "1104:87:6", + "statements": [ + { + "nativeSrc": "1114:29:6", + "nodeType": "YulAssignment", + "src": "1114:29:6", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "1136:6:6", + "nodeType": "YulIdentifier", + "src": "1136:6:6" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "1123:12:6", + "nodeType": "YulIdentifier", + "src": "1123:12:6" + }, + "nativeSrc": "1123:20:6", + "nodeType": "YulFunctionCall", + "src": "1123:20:6" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "1114:5:6", + "nodeType": "YulIdentifier", + "src": "1114:5:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "1179:5:6", + "nodeType": "YulIdentifier", + "src": "1179:5:6" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nativeSrc": "1152:26:6", + "nodeType": "YulIdentifier", + "src": "1152:26:6" + }, + "nativeSrc": "1152:33:6", + "nodeType": "YulFunctionCall", + "src": "1152:33:6" + }, + "nativeSrc": "1152:33:6", + "nodeType": "YulExpressionStatement", + "src": "1152:33:6" + } + ] + }, + "name": "abi_decode_t_address", + "nativeSrc": "1052:139:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "1082:6:6", + "nodeType": "YulTypedName", + "src": "1082:6:6", + "type": "" + }, + { + "name": "end", + "nativeSrc": "1090:3:6", + "nodeType": "YulTypedName", + "src": "1090:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "1098:5:6", + "nodeType": "YulTypedName", + "src": "1098:5:6", + "type": "" + } + ], + "src": "1052:139:6" + }, + { + "body": { + "nativeSrc": "1280:391:6", + "nodeType": "YulBlock", + "src": "1280:391:6", + "statements": [ + { + "body": { + "nativeSrc": "1326:83:6", + "nodeType": "YulBlock", + "src": "1326:83:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "1328:77:6", + "nodeType": "YulIdentifier", + "src": "1328:77:6" + }, + "nativeSrc": "1328:79:6", + "nodeType": "YulFunctionCall", + "src": "1328:79:6" + }, + "nativeSrc": "1328:79:6", + "nodeType": "YulExpressionStatement", + "src": "1328:79:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "1301:7:6", + "nodeType": "YulIdentifier", + "src": "1301:7:6" + }, + { + "name": "headStart", + "nativeSrc": "1310:9:6", + "nodeType": "YulIdentifier", + "src": "1310:9:6" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "1297:3:6", + "nodeType": "YulIdentifier", + "src": "1297:3:6" + }, + "nativeSrc": "1297:23:6", + "nodeType": "YulFunctionCall", + "src": "1297:23:6" + }, + { + "kind": "number", + "nativeSrc": "1322:2:6", + "nodeType": "YulLiteral", + "src": "1322:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "1293:3:6", + "nodeType": "YulIdentifier", + "src": "1293:3:6" + }, + "nativeSrc": "1293:32:6", + "nodeType": "YulFunctionCall", + "src": "1293:32:6" + }, + "nativeSrc": "1290:119:6", + "nodeType": "YulIf", + "src": "1290:119:6" + }, + { + "nativeSrc": "1419:117:6", + "nodeType": "YulBlock", + "src": "1419:117:6", + "statements": [ + { + "nativeSrc": "1434:15:6", + "nodeType": "YulVariableDeclaration", + "src": "1434:15:6", + "value": { + "kind": "number", + "nativeSrc": "1448:1:6", + "nodeType": "YulLiteral", + "src": "1448:1:6", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "1438:6:6", + "nodeType": "YulTypedName", + "src": "1438:6:6", + "type": "" + } + ] + }, + { + "nativeSrc": "1463:63:6", + "nodeType": "YulAssignment", + "src": "1463:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1498:9:6", + "nodeType": "YulIdentifier", + "src": "1498:9:6" + }, + { + "name": "offset", + "nativeSrc": "1509:6:6", + "nodeType": "YulIdentifier", + "src": "1509:6:6" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1494:3:6", + "nodeType": "YulIdentifier", + "src": "1494:3:6" + }, + "nativeSrc": "1494:22:6", + "nodeType": "YulFunctionCall", + "src": "1494:22:6" + }, + { + "name": "dataEnd", + "nativeSrc": "1518:7:6", + "nodeType": "YulIdentifier", + "src": "1518:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "1473:20:6", + "nodeType": "YulIdentifier", + "src": "1473:20:6" + }, + "nativeSrc": "1473:53:6", + "nodeType": "YulFunctionCall", + "src": "1473:53:6" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "1463:6:6", + "nodeType": "YulIdentifier", + "src": "1463:6:6" + } + ] + } + ] + }, + { + "nativeSrc": "1546:118:6", + "nodeType": "YulBlock", + "src": "1546:118:6", + "statements": [ + { + "nativeSrc": "1561:16:6", + "nodeType": "YulVariableDeclaration", + "src": "1561:16:6", + "value": { + "kind": "number", + "nativeSrc": "1575:2:6", + "nodeType": "YulLiteral", + "src": "1575:2:6", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "1565:6:6", + "nodeType": "YulTypedName", + "src": "1565:6:6", + "type": "" + } + ] + }, + { + "nativeSrc": "1591:63:6", + "nodeType": "YulAssignment", + "src": "1591:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1626:9:6", + "nodeType": "YulIdentifier", + "src": "1626:9:6" + }, + { + "name": "offset", + "nativeSrc": "1637:6:6", + "nodeType": "YulIdentifier", + "src": "1637:6:6" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1622:3:6", + "nodeType": "YulIdentifier", + "src": "1622:3:6" + }, + "nativeSrc": "1622:22:6", + "nodeType": "YulFunctionCall", + "src": "1622:22:6" + }, + { + "name": "dataEnd", + "nativeSrc": "1646:7:6", + "nodeType": "YulIdentifier", + "src": "1646:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "1601:20:6", + "nodeType": "YulIdentifier", + "src": "1601:20:6" + }, + "nativeSrc": "1601:53:6", + "nodeType": "YulFunctionCall", + "src": "1601:53:6" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "1591:6:6", + "nodeType": "YulIdentifier", + "src": "1591:6:6" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_address", + "nativeSrc": "1197:474:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1242:9:6", + "nodeType": "YulTypedName", + "src": "1242:9:6", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "1253:7:6", + "nodeType": "YulTypedName", + "src": "1253:7:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "1265:6:6", + "nodeType": "YulTypedName", + "src": "1265:6:6", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "1273:6:6", + "nodeType": "YulTypedName", + "src": "1273:6:6", + "type": "" + } + ], + "src": "1197:474:6" + }, + { + "body": { + "nativeSrc": "1721:105:6", + "nodeType": "YulBlock", + "src": "1721:105:6", + "statements": [ + { + "nativeSrc": "1731:89:6", + "nodeType": "YulAssignment", + "src": "1731:89:6", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "1746:5:6", + "nodeType": "YulIdentifier", + "src": "1746:5:6" + }, + { + "kind": "number", + "nativeSrc": "1753:66:6", + "nodeType": "YulLiteral", + "src": "1753:66:6", + "type": "", + "value": "0xffffffff00000000000000000000000000000000000000000000000000000000" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "1742:3:6", + "nodeType": "YulIdentifier", + "src": "1742:3:6" + }, + "nativeSrc": "1742:78:6", + "nodeType": "YulFunctionCall", + "src": "1742:78:6" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "1731:7:6", + "nodeType": "YulIdentifier", + "src": "1731:7:6" + } + ] + } + ] + }, + "name": "cleanup_t_bytes4", + "nativeSrc": "1677:149:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1703:5:6", + "nodeType": "YulTypedName", + "src": "1703:5:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "1713:7:6", + "nodeType": "YulTypedName", + "src": "1713:7:6", + "type": "" + } + ], + "src": "1677:149:6" + }, + { + "body": { + "nativeSrc": "1874:78:6", + "nodeType": "YulBlock", + "src": "1874:78:6", + "statements": [ + { + "body": { + "nativeSrc": "1930:16:6", + "nodeType": "YulBlock", + "src": "1930:16:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1939:1:6", + "nodeType": "YulLiteral", + "src": "1939:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1942:1:6", + "nodeType": "YulLiteral", + "src": "1942:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1932:6:6", + "nodeType": "YulIdentifier", + "src": "1932:6:6" + }, + "nativeSrc": "1932:12:6", + "nodeType": "YulFunctionCall", + "src": "1932:12:6" + }, + "nativeSrc": "1932:12:6", + "nodeType": "YulExpressionStatement", + "src": "1932:12:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1897:5:6", + "nodeType": "YulIdentifier", + "src": "1897:5:6" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1921:5:6", + "nodeType": "YulIdentifier", + "src": "1921:5:6" + } + ], + "functionName": { + "name": "cleanup_t_bytes4", + "nativeSrc": "1904:16:6", + "nodeType": "YulIdentifier", + "src": "1904:16:6" + }, + "nativeSrc": "1904:23:6", + "nodeType": "YulFunctionCall", + "src": "1904:23:6" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "1894:2:6", + "nodeType": "YulIdentifier", + "src": "1894:2:6" + }, + "nativeSrc": "1894:34:6", + "nodeType": "YulFunctionCall", + "src": "1894:34:6" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "1887:6:6", + "nodeType": "YulIdentifier", + "src": "1887:6:6" + }, + "nativeSrc": "1887:42:6", + "nodeType": "YulFunctionCall", + "src": "1887:42:6" + }, + "nativeSrc": "1884:62:6", + "nodeType": "YulIf", + "src": "1884:62:6" + } + ] + }, + "name": "validator_revert_t_bytes4", + "nativeSrc": "1832:120:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1867:5:6", + "nodeType": "YulTypedName", + "src": "1867:5:6", + "type": "" + } + ], + "src": "1832:120:6" + }, + { + "body": { + "nativeSrc": "2009:86:6", + "nodeType": "YulBlock", + "src": "2009:86:6", + "statements": [ + { + "nativeSrc": "2019:29:6", + "nodeType": "YulAssignment", + "src": "2019:29:6", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "2041:6:6", + "nodeType": "YulIdentifier", + "src": "2041:6:6" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "2028:12:6", + "nodeType": "YulIdentifier", + "src": "2028:12:6" + }, + "nativeSrc": "2028:20:6", + "nodeType": "YulFunctionCall", + "src": "2028:20:6" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "2019:5:6", + "nodeType": "YulIdentifier", + "src": "2019:5:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "2083:5:6", + "nodeType": "YulIdentifier", + "src": "2083:5:6" + } + ], + "functionName": { + "name": "validator_revert_t_bytes4", + "nativeSrc": "2057:25:6", + "nodeType": "YulIdentifier", + "src": "2057:25:6" + }, + "nativeSrc": "2057:32:6", + "nodeType": "YulFunctionCall", + "src": "2057:32:6" + }, + "nativeSrc": "2057:32:6", + "nodeType": "YulExpressionStatement", + "src": "2057:32:6" + } + ] + }, + "name": "abi_decode_t_bytes4", + "nativeSrc": "1958:137:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "1987:6:6", + "nodeType": "YulTypedName", + "src": "1987:6:6", + "type": "" + }, + { + "name": "end", + "nativeSrc": "1995:3:6", + "nodeType": "YulTypedName", + "src": "1995:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "2003:5:6", + "nodeType": "YulTypedName", + "src": "2003:5:6", + "type": "" + } + ], + "src": "1958:137:6" + }, + { + "body": { + "nativeSrc": "2166:262:6", + "nodeType": "YulBlock", + "src": "2166:262:6", + "statements": [ + { + "body": { + "nativeSrc": "2212:83:6", + "nodeType": "YulBlock", + "src": "2212:83:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "2214:77:6", + "nodeType": "YulIdentifier", + "src": "2214:77:6" + }, + "nativeSrc": "2214:79:6", + "nodeType": "YulFunctionCall", + "src": "2214:79:6" + }, + "nativeSrc": "2214:79:6", + "nodeType": "YulExpressionStatement", + "src": "2214:79:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "2187:7:6", + "nodeType": "YulIdentifier", + "src": "2187:7:6" + }, + { + "name": "headStart", + "nativeSrc": "2196:9:6", + "nodeType": "YulIdentifier", + "src": "2196:9:6" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "2183:3:6", + "nodeType": "YulIdentifier", + "src": "2183:3:6" + }, + "nativeSrc": "2183:23:6", + "nodeType": "YulFunctionCall", + "src": "2183:23:6" + }, + { + "kind": "number", + "nativeSrc": "2208:2:6", + "nodeType": "YulLiteral", + "src": "2208:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "2179:3:6", + "nodeType": "YulIdentifier", + "src": "2179:3:6" + }, + "nativeSrc": "2179:32:6", + "nodeType": "YulFunctionCall", + "src": "2179:32:6" + }, + "nativeSrc": "2176:119:6", + "nodeType": "YulIf", + "src": "2176:119:6" + }, + { + "nativeSrc": "2305:116:6", + "nodeType": "YulBlock", + "src": "2305:116:6", + "statements": [ + { + "nativeSrc": "2320:15:6", + "nodeType": "YulVariableDeclaration", + "src": "2320:15:6", + "value": { + "kind": "number", + "nativeSrc": "2334:1:6", + "nodeType": "YulLiteral", + "src": "2334:1:6", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "2324:6:6", + "nodeType": "YulTypedName", + "src": "2324:6:6", + "type": "" + } + ] + }, + { + "nativeSrc": "2349:62:6", + "nodeType": "YulAssignment", + "src": "2349:62:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2383:9:6", + "nodeType": "YulIdentifier", + "src": "2383:9:6" + }, + { + "name": "offset", + "nativeSrc": "2394:6:6", + "nodeType": "YulIdentifier", + "src": "2394:6:6" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2379:3:6", + "nodeType": "YulIdentifier", + "src": "2379:3:6" + }, + "nativeSrc": "2379:22:6", + "nodeType": "YulFunctionCall", + "src": "2379:22:6" + }, + { + "name": "dataEnd", + "nativeSrc": "2403:7:6", + "nodeType": "YulIdentifier", + "src": "2403:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_bytes4", + "nativeSrc": "2359:19:6", + "nodeType": "YulIdentifier", + "src": "2359:19:6" + }, + "nativeSrc": "2359:52:6", + "nodeType": "YulFunctionCall", + "src": "2359:52:6" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "2349:6:6", + "nodeType": "YulIdentifier", + "src": "2349:6:6" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes4", + "nativeSrc": "2101:327:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "2136:9:6", + "nodeType": "YulTypedName", + "src": "2136:9:6", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "2147:7:6", + "nodeType": "YulTypedName", + "src": "2147:7:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "2159:6:6", + "nodeType": "YulTypedName", + "src": "2159:6:6", + "type": "" + } + ], + "src": "2101:327:6" + }, + { + "body": { + "nativeSrc": "2476:48:6", + "nodeType": "YulBlock", + "src": "2476:48:6", + "statements": [ + { + "nativeSrc": "2486:32:6", + "nodeType": "YulAssignment", + "src": "2486:32:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2511:5:6", + "nodeType": "YulIdentifier", + "src": "2511:5:6" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "2504:6:6", + "nodeType": "YulIdentifier", + "src": "2504:6:6" + }, + "nativeSrc": "2504:13:6", + "nodeType": "YulFunctionCall", + "src": "2504:13:6" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "2497:6:6", + "nodeType": "YulIdentifier", + "src": "2497:6:6" + }, + "nativeSrc": "2497:21:6", + "nodeType": "YulFunctionCall", + "src": "2497:21:6" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "2486:7:6", + "nodeType": "YulIdentifier", + "src": "2486:7:6" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nativeSrc": "2434:90:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2458:5:6", + "nodeType": "YulTypedName", + "src": "2458:5:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "2468:7:6", + "nodeType": "YulTypedName", + "src": "2468:7:6", + "type": "" + } + ], + "src": "2434:90:6" + }, + { + "body": { + "nativeSrc": "2589:50:6", + "nodeType": "YulBlock", + "src": "2589:50:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "2606:3:6", + "nodeType": "YulIdentifier", + "src": "2606:3:6" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2626:5:6", + "nodeType": "YulIdentifier", + "src": "2626:5:6" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nativeSrc": "2611:14:6", + "nodeType": "YulIdentifier", + "src": "2611:14:6" + }, + "nativeSrc": "2611:21:6", + "nodeType": "YulFunctionCall", + "src": "2611:21:6" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2599:6:6", + "nodeType": "YulIdentifier", + "src": "2599:6:6" + }, + "nativeSrc": "2599:34:6", + "nodeType": "YulFunctionCall", + "src": "2599:34:6" + }, + "nativeSrc": "2599:34:6", + "nodeType": "YulExpressionStatement", + "src": "2599:34:6" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nativeSrc": "2530:109:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2577:5:6", + "nodeType": "YulTypedName", + "src": "2577:5:6", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "2584:3:6", + "nodeType": "YulTypedName", + "src": "2584:3:6", + "type": "" + } + ], + "src": "2530:109:6" + }, + { + "body": { + "nativeSrc": "2737:118:6", + "nodeType": "YulBlock", + "src": "2737:118:6", + "statements": [ + { + "nativeSrc": "2747:26:6", + "nodeType": "YulAssignment", + "src": "2747:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2759:9:6", + "nodeType": "YulIdentifier", + "src": "2759:9:6" + }, + { + "kind": "number", + "nativeSrc": "2770:2:6", + "nodeType": "YulLiteral", + "src": "2770:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2755:3:6", + "nodeType": "YulIdentifier", + "src": "2755:3:6" + }, + "nativeSrc": "2755:18:6", + "nodeType": "YulFunctionCall", + "src": "2755:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "2747:4:6", + "nodeType": "YulIdentifier", + "src": "2747:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "2821:6:6", + "nodeType": "YulIdentifier", + "src": "2821:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2834:9:6", + "nodeType": "YulIdentifier", + "src": "2834:9:6" + }, + { + "kind": "number", + "nativeSrc": "2845:1:6", + "nodeType": "YulLiteral", + "src": "2845:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2830:3:6", + "nodeType": "YulIdentifier", + "src": "2830:3:6" + }, + "nativeSrc": "2830:17:6", + "nodeType": "YulFunctionCall", + "src": "2830:17:6" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nativeSrc": "2783:37:6", + "nodeType": "YulIdentifier", + "src": "2783:37:6" + }, + "nativeSrc": "2783:65:6", + "nodeType": "YulFunctionCall", + "src": "2783:65:6" + }, + "nativeSrc": "2783:65:6", + "nodeType": "YulExpressionStatement", + "src": "2783:65:6" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nativeSrc": "2645:210:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "2709:9:6", + "nodeType": "YulTypedName", + "src": "2709:9:6", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "2721:6:6", + "nodeType": "YulTypedName", + "src": "2721:6:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "2732:4:6", + "nodeType": "YulTypedName", + "src": "2732:4:6", + "type": "" + } + ], + "src": "2645:210:6" + }, + { + "body": { + "nativeSrc": "2906:32:6", + "nodeType": "YulBlock", + "src": "2906:32:6", + "statements": [ + { + "nativeSrc": "2916:16:6", + "nodeType": "YulAssignment", + "src": "2916:16:6", + "value": { + "name": "value", + "nativeSrc": "2927:5:6", + "nodeType": "YulIdentifier", + "src": "2927:5:6" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "2916:7:6", + "nodeType": "YulIdentifier", + "src": "2916:7:6" + } + ] + } + ] + }, + "name": "cleanup_t_bytes32", + "nativeSrc": "2861:77:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2888:5:6", + "nodeType": "YulTypedName", + "src": "2888:5:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "2898:7:6", + "nodeType": "YulTypedName", + "src": "2898:7:6", + "type": "" + } + ], + "src": "2861:77:6" + }, + { + "body": { + "nativeSrc": "2987:79:6", + "nodeType": "YulBlock", + "src": "2987:79:6", + "statements": [ + { + "body": { + "nativeSrc": "3044:16:6", + "nodeType": "YulBlock", + "src": "3044:16:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3053:1:6", + "nodeType": "YulLiteral", + "src": "3053:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "3056:1:6", + "nodeType": "YulLiteral", + "src": "3056:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "3046:6:6", + "nodeType": "YulIdentifier", + "src": "3046:6:6" + }, + "nativeSrc": "3046:12:6", + "nodeType": "YulFunctionCall", + "src": "3046:12:6" + }, + "nativeSrc": "3046:12:6", + "nodeType": "YulExpressionStatement", + "src": "3046:12:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "3010:5:6", + "nodeType": "YulIdentifier", + "src": "3010:5:6" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "3035:5:6", + "nodeType": "YulIdentifier", + "src": "3035:5:6" + } + ], + "functionName": { + "name": "cleanup_t_bytes32", + "nativeSrc": "3017:17:6", + "nodeType": "YulIdentifier", + "src": "3017:17:6" + }, + "nativeSrc": "3017:24:6", + "nodeType": "YulFunctionCall", + "src": "3017:24:6" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "3007:2:6", + "nodeType": "YulIdentifier", + "src": "3007:2:6" + }, + "nativeSrc": "3007:35:6", + "nodeType": "YulFunctionCall", + "src": "3007:35:6" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "3000:6:6", + "nodeType": "YulIdentifier", + "src": "3000:6:6" + }, + "nativeSrc": "3000:43:6", + "nodeType": "YulFunctionCall", + "src": "3000:43:6" + }, + "nativeSrc": "2997:63:6", + "nodeType": "YulIf", + "src": "2997:63:6" + } + ] + }, + "name": "validator_revert_t_bytes32", + "nativeSrc": "2944:122:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2980:5:6", + "nodeType": "YulTypedName", + "src": "2980:5:6", + "type": "" + } + ], + "src": "2944:122:6" + }, + { + "body": { + "nativeSrc": "3124:87:6", + "nodeType": "YulBlock", + "src": "3124:87:6", + "statements": [ + { + "nativeSrc": "3134:29:6", + "nodeType": "YulAssignment", + "src": "3134:29:6", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "3156:6:6", + "nodeType": "YulIdentifier", + "src": "3156:6:6" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "3143:12:6", + "nodeType": "YulIdentifier", + "src": "3143:12:6" + }, + "nativeSrc": "3143:20:6", + "nodeType": "YulFunctionCall", + "src": "3143:20:6" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "3134:5:6", + "nodeType": "YulIdentifier", + "src": "3134:5:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "3199:5:6", + "nodeType": "YulIdentifier", + "src": "3199:5:6" + } + ], + "functionName": { + "name": "validator_revert_t_bytes32", + "nativeSrc": "3172:26:6", + "nodeType": "YulIdentifier", + "src": "3172:26:6" + }, + "nativeSrc": "3172:33:6", + "nodeType": "YulFunctionCall", + "src": "3172:33:6" + }, + "nativeSrc": "3172:33:6", + "nodeType": "YulExpressionStatement", + "src": "3172:33:6" + } + ] + }, + "name": "abi_decode_t_bytes32", + "nativeSrc": "3072:139:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "3102:6:6", + "nodeType": "YulTypedName", + "src": "3102:6:6", + "type": "" + }, + { + "name": "end", + "nativeSrc": "3110:3:6", + "nodeType": "YulTypedName", + "src": "3110:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "3118:5:6", + "nodeType": "YulTypedName", + "src": "3118:5:6", + "type": "" + } + ], + "src": "3072:139:6" + }, + { + "body": { + "nativeSrc": "3283:263:6", + "nodeType": "YulBlock", + "src": "3283:263:6", + "statements": [ + { + "body": { + "nativeSrc": "3329:83:6", + "nodeType": "YulBlock", + "src": "3329:83:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "3331:77:6", + "nodeType": "YulIdentifier", + "src": "3331:77:6" + }, + "nativeSrc": "3331:79:6", + "nodeType": "YulFunctionCall", + "src": "3331:79:6" + }, + "nativeSrc": "3331:79:6", + "nodeType": "YulExpressionStatement", + "src": "3331:79:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "3304:7:6", + "nodeType": "YulIdentifier", + "src": "3304:7:6" + }, + { + "name": "headStart", + "nativeSrc": "3313:9:6", + "nodeType": "YulIdentifier", + "src": "3313:9:6" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "3300:3:6", + "nodeType": "YulIdentifier", + "src": "3300:3:6" + }, + "nativeSrc": "3300:23:6", + "nodeType": "YulFunctionCall", + "src": "3300:23:6" + }, + { + "kind": "number", + "nativeSrc": "3325:2:6", + "nodeType": "YulLiteral", + "src": "3325:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "3296:3:6", + "nodeType": "YulIdentifier", + "src": "3296:3:6" + }, + "nativeSrc": "3296:32:6", + "nodeType": "YulFunctionCall", + "src": "3296:32:6" + }, + "nativeSrc": "3293:119:6", + "nodeType": "YulIf", + "src": "3293:119:6" + }, + { + "nativeSrc": "3422:117:6", + "nodeType": "YulBlock", + "src": "3422:117:6", + "statements": [ + { + "nativeSrc": "3437:15:6", + "nodeType": "YulVariableDeclaration", + "src": "3437:15:6", + "value": { + "kind": "number", + "nativeSrc": "3451:1:6", + "nodeType": "YulLiteral", + "src": "3451:1:6", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "3441:6:6", + "nodeType": "YulTypedName", + "src": "3441:6:6", + "type": "" + } + ] + }, + { + "nativeSrc": "3466:63:6", + "nodeType": "YulAssignment", + "src": "3466:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3501:9:6", + "nodeType": "YulIdentifier", + "src": "3501:9:6" + }, + { + "name": "offset", + "nativeSrc": "3512:6:6", + "nodeType": "YulIdentifier", + "src": "3512:6:6" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3497:3:6", + "nodeType": "YulIdentifier", + "src": "3497:3:6" + }, + "nativeSrc": "3497:22:6", + "nodeType": "YulFunctionCall", + "src": "3497:22:6" + }, + { + "name": "dataEnd", + "nativeSrc": "3521:7:6", + "nodeType": "YulIdentifier", + "src": "3521:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_bytes32", + "nativeSrc": "3476:20:6", + "nodeType": "YulIdentifier", + "src": "3476:20:6" + }, + "nativeSrc": "3476:53:6", + "nodeType": "YulFunctionCall", + "src": "3476:53:6" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "3466:6:6", + "nodeType": "YulIdentifier", + "src": "3466:6:6" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes32", + "nativeSrc": "3217:329:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "3253:9:6", + "nodeType": "YulTypedName", + "src": "3253:9:6", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "3264:7:6", + "nodeType": "YulTypedName", + "src": "3264:7:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "3276:6:6", + "nodeType": "YulTypedName", + "src": "3276:6:6", + "type": "" + } + ], + "src": "3217:329:6" + }, + { + "body": { + "nativeSrc": "3617:53:6", + "nodeType": "YulBlock", + "src": "3617:53:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "3634:3:6", + "nodeType": "YulIdentifier", + "src": "3634:3:6" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "3657:5:6", + "nodeType": "YulIdentifier", + "src": "3657:5:6" + } + ], + "functionName": { + "name": "cleanup_t_bytes32", + "nativeSrc": "3639:17:6", + "nodeType": "YulIdentifier", + "src": "3639:17:6" + }, + "nativeSrc": "3639:24:6", + "nodeType": "YulFunctionCall", + "src": "3639:24:6" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3627:6:6", + "nodeType": "YulIdentifier", + "src": "3627:6:6" + }, + "nativeSrc": "3627:37:6", + "nodeType": "YulFunctionCall", + "src": "3627:37:6" + }, + "nativeSrc": "3627:37:6", + "nodeType": "YulExpressionStatement", + "src": "3627:37:6" + } + ] + }, + "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nativeSrc": "3552:118:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "3605:5:6", + "nodeType": "YulTypedName", + "src": "3605:5:6", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "3612:3:6", + "nodeType": "YulTypedName", + "src": "3612:3:6", + "type": "" + } + ], + "src": "3552:118:6" + }, + { + "body": { + "nativeSrc": "3774:124:6", + "nodeType": "YulBlock", + "src": "3774:124:6", + "statements": [ + { + "nativeSrc": "3784:26:6", + "nodeType": "YulAssignment", + "src": "3784:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3796:9:6", + "nodeType": "YulIdentifier", + "src": "3796:9:6" + }, + { + "kind": "number", + "nativeSrc": "3807:2:6", + "nodeType": "YulLiteral", + "src": "3807:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3792:3:6", + "nodeType": "YulIdentifier", + "src": "3792:3:6" + }, + "nativeSrc": "3792:18:6", + "nodeType": "YulFunctionCall", + "src": "3792:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "3784:4:6", + "nodeType": "YulIdentifier", + "src": "3784:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "3864:6:6", + "nodeType": "YulIdentifier", + "src": "3864:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3877:9:6", + "nodeType": "YulIdentifier", + "src": "3877:9:6" + }, + { + "kind": "number", + "nativeSrc": "3888:1:6", + "nodeType": "YulLiteral", + "src": "3888:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3873:3:6", + "nodeType": "YulIdentifier", + "src": "3873:3:6" + }, + "nativeSrc": "3873:17:6", + "nodeType": "YulFunctionCall", + "src": "3873:17:6" + } + ], + "functionName": { + "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nativeSrc": "3820:43:6", + "nodeType": "YulIdentifier", + "src": "3820:43:6" + }, + "nativeSrc": "3820:71:6", + "nodeType": "YulFunctionCall", + "src": "3820:71:6" + }, + "nativeSrc": "3820:71:6", + "nodeType": "YulExpressionStatement", + "src": "3820:71:6" + } + ] + }, + "name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed", + "nativeSrc": "3676:222:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "3746:9:6", + "nodeType": "YulTypedName", + "src": "3746:9:6", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "3758:6:6", + "nodeType": "YulTypedName", + "src": "3758:6:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "3769:4:6", + "nodeType": "YulTypedName", + "src": "3769:4:6", + "type": "" + } + ], + "src": "3676:222:6" + }, + { + "body": { + "nativeSrc": "3987:391:6", + "nodeType": "YulBlock", + "src": "3987:391:6", + "statements": [ + { + "body": { + "nativeSrc": "4033:83:6", + "nodeType": "YulBlock", + "src": "4033:83:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "4035:77:6", + "nodeType": "YulIdentifier", + "src": "4035:77:6" + }, + "nativeSrc": "4035:79:6", + "nodeType": "YulFunctionCall", + "src": "4035:79:6" + }, + "nativeSrc": "4035:79:6", + "nodeType": "YulExpressionStatement", + "src": "4035:79:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "4008:7:6", + "nodeType": "YulIdentifier", + "src": "4008:7:6" + }, + { + "name": "headStart", + "nativeSrc": "4017:9:6", + "nodeType": "YulIdentifier", + "src": "4017:9:6" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "4004:3:6", + "nodeType": "YulIdentifier", + "src": "4004:3:6" + }, + "nativeSrc": "4004:23:6", + "nodeType": "YulFunctionCall", + "src": "4004:23:6" + }, + { + "kind": "number", + "nativeSrc": "4029:2:6", + "nodeType": "YulLiteral", + "src": "4029:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "4000:3:6", + "nodeType": "YulIdentifier", + "src": "4000:3:6" + }, + "nativeSrc": "4000:32:6", + "nodeType": "YulFunctionCall", + "src": "4000:32:6" + }, + "nativeSrc": "3997:119:6", + "nodeType": "YulIf", + "src": "3997:119:6" + }, + { + "nativeSrc": "4126:117:6", + "nodeType": "YulBlock", + "src": "4126:117:6", + "statements": [ + { + "nativeSrc": "4141:15:6", + "nodeType": "YulVariableDeclaration", + "src": "4141:15:6", + "value": { + "kind": "number", + "nativeSrc": "4155:1:6", + "nodeType": "YulLiteral", + "src": "4155:1:6", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "4145:6:6", + "nodeType": "YulTypedName", + "src": "4145:6:6", + "type": "" + } + ] + }, + { + "nativeSrc": "4170:63:6", + "nodeType": "YulAssignment", + "src": "4170:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4205:9:6", + "nodeType": "YulIdentifier", + "src": "4205:9:6" + }, + { + "name": "offset", + "nativeSrc": "4216:6:6", + "nodeType": "YulIdentifier", + "src": "4216:6:6" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4201:3:6", + "nodeType": "YulIdentifier", + "src": "4201:3:6" + }, + "nativeSrc": "4201:22:6", + "nodeType": "YulFunctionCall", + "src": "4201:22:6" + }, + { + "name": "dataEnd", + "nativeSrc": "4225:7:6", + "nodeType": "YulIdentifier", + "src": "4225:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_bytes32", + "nativeSrc": "4180:20:6", + "nodeType": "YulIdentifier", + "src": "4180:20:6" + }, + "nativeSrc": "4180:53:6", + "nodeType": "YulFunctionCall", + "src": "4180:53:6" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "4170:6:6", + "nodeType": "YulIdentifier", + "src": "4170:6:6" + } + ] + } + ] + }, + { + "nativeSrc": "4253:118:6", + "nodeType": "YulBlock", + "src": "4253:118:6", + "statements": [ + { + "nativeSrc": "4268:16:6", + "nodeType": "YulVariableDeclaration", + "src": "4268:16:6", + "value": { + "kind": "number", + "nativeSrc": "4282:2:6", + "nodeType": "YulLiteral", + "src": "4282:2:6", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "4272:6:6", + "nodeType": "YulTypedName", + "src": "4272:6:6", + "type": "" + } + ] + }, + { + "nativeSrc": "4298:63:6", + "nodeType": "YulAssignment", + "src": "4298:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4333:9:6", + "nodeType": "YulIdentifier", + "src": "4333:9:6" + }, + { + "name": "offset", + "nativeSrc": "4344:6:6", + "nodeType": "YulIdentifier", + "src": "4344:6:6" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4329:3:6", + "nodeType": "YulIdentifier", + "src": "4329:3:6" + }, + "nativeSrc": "4329:22:6", + "nodeType": "YulFunctionCall", + "src": "4329:22:6" + }, + { + "name": "dataEnd", + "nativeSrc": "4353:7:6", + "nodeType": "YulIdentifier", + "src": "4353:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "4308:20:6", + "nodeType": "YulIdentifier", + "src": "4308:20:6" + }, + "nativeSrc": "4308:53:6", + "nodeType": "YulFunctionCall", + "src": "4308:53:6" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "4298:6:6", + "nodeType": "YulIdentifier", + "src": "4298:6:6" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes32t_address", + "nativeSrc": "3904:474:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "3949:9:6", + "nodeType": "YulTypedName", + "src": "3949:9:6", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "3960:7:6", + "nodeType": "YulTypedName", + "src": "3960:7:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "3972:6:6", + "nodeType": "YulTypedName", + "src": "3972:6:6", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "3980:6:6", + "nodeType": "YulTypedName", + "src": "3980:6:6", + "type": "" + } + ], + "src": "3904:474:6" + }, + { + "body": { + "nativeSrc": "4473:28:6", + "nodeType": "YulBlock", + "src": "4473:28:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4490:1:6", + "nodeType": "YulLiteral", + "src": "4490:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "4493:1:6", + "nodeType": "YulLiteral", + "src": "4493:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "4483:6:6", + "nodeType": "YulIdentifier", + "src": "4483:6:6" + }, + "nativeSrc": "4483:12:6", + "nodeType": "YulFunctionCall", + "src": "4483:12:6" + }, + "nativeSrc": "4483:12:6", + "nodeType": "YulExpressionStatement", + "src": "4483:12:6" + } + ] + }, + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "4384:117:6", + "nodeType": "YulFunctionDefinition", + "src": "4384:117:6" + }, + { + "body": { + "nativeSrc": "4596:28:6", + "nodeType": "YulBlock", + "src": "4596:28:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4613:1:6", + "nodeType": "YulLiteral", + "src": "4613:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "4616:1:6", + "nodeType": "YulLiteral", + "src": "4616:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "4606:6:6", + "nodeType": "YulIdentifier", + "src": "4606:6:6" + }, + "nativeSrc": "4606:12:6", + "nodeType": "YulFunctionCall", + "src": "4606:12:6" + }, + "nativeSrc": "4606:12:6", + "nodeType": "YulExpressionStatement", + "src": "4606:12:6" + } + ] + }, + "name": "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490", + "nativeSrc": "4507:117:6", + "nodeType": "YulFunctionDefinition", + "src": "4507:117:6" + }, + { + "body": { + "nativeSrc": "4719:28:6", + "nodeType": "YulBlock", + "src": "4719:28:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4736:1:6", + "nodeType": "YulLiteral", + "src": "4736:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "4739:1:6", + "nodeType": "YulLiteral", + "src": "4739:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "4729:6:6", + "nodeType": "YulIdentifier", + "src": "4729:6:6" + }, + "nativeSrc": "4729:12:6", + "nodeType": "YulFunctionCall", + "src": "4729:12:6" + }, + "nativeSrc": "4729:12:6", + "nodeType": "YulExpressionStatement", + "src": "4729:12:6" + } + ] + }, + "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", + "nativeSrc": "4630:117:6", + "nodeType": "YulFunctionDefinition", + "src": "4630:117:6" + }, + { + "body": { + "nativeSrc": "4921:478:6", + "nodeType": "YulBlock", + "src": "4921:478:6", + "statements": [ + { + "body": { + "nativeSrc": "4970:83:6", + "nodeType": "YulBlock", + "src": "4970:83:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "4972:77:6", + "nodeType": "YulIdentifier", + "src": "4972:77:6" + }, + "nativeSrc": "4972:79:6", + "nodeType": "YulFunctionCall", + "src": "4972:79:6" + }, + "nativeSrc": "4972:79:6", + "nodeType": "YulExpressionStatement", + "src": "4972:79:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "4949:6:6", + "nodeType": "YulIdentifier", + "src": "4949:6:6" + }, + { + "kind": "number", + "nativeSrc": "4957:4:6", + "nodeType": "YulLiteral", + "src": "4957:4:6", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4945:3:6", + "nodeType": "YulIdentifier", + "src": "4945:3:6" + }, + "nativeSrc": "4945:17:6", + "nodeType": "YulFunctionCall", + "src": "4945:17:6" + }, + { + "name": "end", + "nativeSrc": "4964:3:6", + "nodeType": "YulIdentifier", + "src": "4964:3:6" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "4941:3:6", + "nodeType": "YulIdentifier", + "src": "4941:3:6" + }, + "nativeSrc": "4941:27:6", + "nodeType": "YulFunctionCall", + "src": "4941:27:6" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "4934:6:6", + "nodeType": "YulIdentifier", + "src": "4934:6:6" + }, + "nativeSrc": "4934:35:6", + "nodeType": "YulFunctionCall", + "src": "4934:35:6" + }, + "nativeSrc": "4931:122:6", + "nodeType": "YulIf", + "src": "4931:122:6" + }, + { + "nativeSrc": "5062:30:6", + "nodeType": "YulAssignment", + "src": "5062:30:6", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "5085:6:6", + "nodeType": "YulIdentifier", + "src": "5085:6:6" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "5072:12:6", + "nodeType": "YulIdentifier", + "src": "5072:12:6" + }, + "nativeSrc": "5072:20:6", + "nodeType": "YulFunctionCall", + "src": "5072:20:6" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "5062:6:6", + "nodeType": "YulIdentifier", + "src": "5062:6:6" + } + ] + }, + { + "body": { + "nativeSrc": "5135:83:6", + "nodeType": "YulBlock", + "src": "5135:83:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490", + "nativeSrc": "5137:77:6", + "nodeType": "YulIdentifier", + "src": "5137:77:6" + }, + "nativeSrc": "5137:79:6", + "nodeType": "YulFunctionCall", + "src": "5137:79:6" + }, + "nativeSrc": "5137:79:6", + "nodeType": "YulExpressionStatement", + "src": "5137:79:6" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "5107:6:6", + "nodeType": "YulIdentifier", + "src": "5107:6:6" + }, + { + "kind": "number", + "nativeSrc": "5115:18:6", + "nodeType": "YulLiteral", + "src": "5115:18:6", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "5104:2:6", + "nodeType": "YulIdentifier", + "src": "5104:2:6" + }, + "nativeSrc": "5104:30:6", + "nodeType": "YulFunctionCall", + "src": "5104:30:6" + }, + "nativeSrc": "5101:117:6", + "nodeType": "YulIf", + "src": "5101:117:6" + }, + { + "nativeSrc": "5227:29:6", + "nodeType": "YulAssignment", + "src": "5227:29:6", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "5243:6:6", + "nodeType": "YulIdentifier", + "src": "5243:6:6" + }, + { + "kind": "number", + "nativeSrc": "5251:4:6", + "nodeType": "YulLiteral", + "src": "5251:4:6", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5239:3:6", + "nodeType": "YulIdentifier", + "src": "5239:3:6" + }, + "nativeSrc": "5239:17:6", + "nodeType": "YulFunctionCall", + "src": "5239:17:6" + }, + "variableNames": [ + { + "name": "arrayPos", + "nativeSrc": "5227:8:6", + "nodeType": "YulIdentifier", + "src": "5227:8:6" + } + ] + }, + { + "body": { + "nativeSrc": "5310:83:6", + "nodeType": "YulBlock", + "src": "5310:83:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", + "nativeSrc": "5312:77:6", + "nodeType": "YulIdentifier", + "src": "5312:77:6" + }, + "nativeSrc": "5312:79:6", + "nodeType": "YulFunctionCall", + "src": "5312:79:6" + }, + "nativeSrc": "5312:79:6", + "nodeType": "YulExpressionStatement", + "src": "5312:79:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "arrayPos", + "nativeSrc": "5275:8:6", + "nodeType": "YulIdentifier", + "src": "5275:8:6" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "5289:6:6", + "nodeType": "YulIdentifier", + "src": "5289:6:6" + }, + { + "kind": "number", + "nativeSrc": "5297:4:6", + "nodeType": "YulLiteral", + "src": "5297:4:6", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "5285:3:6", + "nodeType": "YulIdentifier", + "src": "5285:3:6" + }, + "nativeSrc": "5285:17:6", + "nodeType": "YulFunctionCall", + "src": "5285:17:6" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5271:3:6", + "nodeType": "YulIdentifier", + "src": "5271:3:6" + }, + "nativeSrc": "5271:32:6", + "nodeType": "YulFunctionCall", + "src": "5271:32:6" + }, + { + "name": "end", + "nativeSrc": "5305:3:6", + "nodeType": "YulIdentifier", + "src": "5305:3:6" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "5268:2:6", + "nodeType": "YulIdentifier", + "src": "5268:2:6" + }, + "nativeSrc": "5268:41:6", + "nodeType": "YulFunctionCall", + "src": "5268:41:6" + }, + "nativeSrc": "5265:128:6", + "nodeType": "YulIf", + "src": "5265:128:6" + } + ] + }, + "name": "abi_decode_t_array$_t_struct$_ErrorResponse_$487_calldata_ptr_$dyn_calldata_ptr", + "nativeSrc": "4799:600:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "4888:6:6", + "nodeType": "YulTypedName", + "src": "4888:6:6", + "type": "" + }, + { + "name": "end", + "nativeSrc": "4896:3:6", + "nodeType": "YulTypedName", + "src": "4896:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "arrayPos", + "nativeSrc": "4904:8:6", + "nodeType": "YulTypedName", + "src": "4904:8:6", + "type": "" + }, + { + "name": "length", + "nativeSrc": "4914:6:6", + "nodeType": "YulTypedName", + "src": "4914:6:6", + "type": "" + } + ], + "src": "4799:600:6" + }, + { + "body": { + "nativeSrc": "5538:490:6", + "nodeType": "YulBlock", + "src": "5538:490:6", + "statements": [ + { + "body": { + "nativeSrc": "5584:83:6", + "nodeType": "YulBlock", + "src": "5584:83:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "5586:77:6", + "nodeType": "YulIdentifier", + "src": "5586:77:6" + }, + "nativeSrc": "5586:79:6", + "nodeType": "YulFunctionCall", + "src": "5586:79:6" + }, + "nativeSrc": "5586:79:6", + "nodeType": "YulExpressionStatement", + "src": "5586:79:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "5559:7:6", + "nodeType": "YulIdentifier", + "src": "5559:7:6" + }, + { + "name": "headStart", + "nativeSrc": "5568:9:6", + "nodeType": "YulIdentifier", + "src": "5568:9:6" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "5555:3:6", + "nodeType": "YulIdentifier", + "src": "5555:3:6" + }, + "nativeSrc": "5555:23:6", + "nodeType": "YulFunctionCall", + "src": "5555:23:6" + }, + { + "kind": "number", + "nativeSrc": "5580:2:6", + "nodeType": "YulLiteral", + "src": "5580:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "5551:3:6", + "nodeType": "YulIdentifier", + "src": "5551:3:6" + }, + "nativeSrc": "5551:32:6", + "nodeType": "YulFunctionCall", + "src": "5551:32:6" + }, + "nativeSrc": "5548:119:6", + "nodeType": "YulIf", + "src": "5548:119:6" + }, + { + "nativeSrc": "5677:344:6", + "nodeType": "YulBlock", + "src": "5677:344:6", + "statements": [ + { + "nativeSrc": "5692:45:6", + "nodeType": "YulVariableDeclaration", + "src": "5692:45:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5723:9:6", + "nodeType": "YulIdentifier", + "src": "5723:9:6" + }, + { + "kind": "number", + "nativeSrc": "5734:1:6", + "nodeType": "YulLiteral", + "src": "5734:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5719:3:6", + "nodeType": "YulIdentifier", + "src": "5719:3:6" + }, + "nativeSrc": "5719:17:6", + "nodeType": "YulFunctionCall", + "src": "5719:17:6" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "5706:12:6", + "nodeType": "YulIdentifier", + "src": "5706:12:6" + }, + "nativeSrc": "5706:31:6", + "nodeType": "YulFunctionCall", + "src": "5706:31:6" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "5696:6:6", + "nodeType": "YulTypedName", + "src": "5696:6:6", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "5784:83:6", + "nodeType": "YulBlock", + "src": "5784:83:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "5786:77:6", + "nodeType": "YulIdentifier", + "src": "5786:77:6" + }, + "nativeSrc": "5786:79:6", + "nodeType": "YulFunctionCall", + "src": "5786:79:6" + }, + "nativeSrc": "5786:79:6", + "nodeType": "YulExpressionStatement", + "src": "5786:79:6" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "5756:6:6", + "nodeType": "YulIdentifier", + "src": "5756:6:6" + }, + { + "kind": "number", + "nativeSrc": "5764:18:6", + "nodeType": "YulLiteral", + "src": "5764:18:6", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "5753:2:6", + "nodeType": "YulIdentifier", + "src": "5753:2:6" + }, + "nativeSrc": "5753:30:6", + "nodeType": "YulFunctionCall", + "src": "5753:30:6" + }, + "nativeSrc": "5750:117:6", + "nodeType": "YulIf", + "src": "5750:117:6" + }, + { + "nativeSrc": "5881:130:6", + "nodeType": "YulAssignment", + "src": "5881:130:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5983:9:6", + "nodeType": "YulIdentifier", + "src": "5983:9:6" + }, + { + "name": "offset", + "nativeSrc": "5994:6:6", + "nodeType": "YulIdentifier", + "src": "5994:6:6" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5979:3:6", + "nodeType": "YulIdentifier", + "src": "5979:3:6" + }, + "nativeSrc": "5979:22:6", + "nodeType": "YulFunctionCall", + "src": "5979:22:6" + }, + { + "name": "dataEnd", + "nativeSrc": "6003:7:6", + "nodeType": "YulIdentifier", + "src": "6003:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_struct$_ErrorResponse_$487_calldata_ptr_$dyn_calldata_ptr", + "nativeSrc": "5899:79:6", + "nodeType": "YulIdentifier", + "src": "5899:79:6" + }, + "nativeSrc": "5899:112:6", + "nodeType": "YulFunctionCall", + "src": "5899:112:6" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "5881:6:6", + "nodeType": "YulIdentifier", + "src": "5881:6:6" + }, + { + "name": "value1", + "nativeSrc": "5889:6:6", + "nodeType": "YulIdentifier", + "src": "5889:6:6" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_array$_t_struct$_ErrorResponse_$487_calldata_ptr_$dyn_calldata_ptr", + "nativeSrc": "5405:623:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "5500:9:6", + "nodeType": "YulTypedName", + "src": "5500:9:6", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "5511:7:6", + "nodeType": "YulTypedName", + "src": "5511:7:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "5523:6:6", + "nodeType": "YulTypedName", + "src": "5523:6:6", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "5531:6:6", + "nodeType": "YulTypedName", + "src": "5531:6:6", + "type": "" + } + ], + "src": "5405:623:6" + }, + { + "body": { + "nativeSrc": "6100:263:6", + "nodeType": "YulBlock", + "src": "6100:263:6", + "statements": [ + { + "body": { + "nativeSrc": "6146:83:6", + "nodeType": "YulBlock", + "src": "6146:83:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "6148:77:6", + "nodeType": "YulIdentifier", + "src": "6148:77:6" + }, + "nativeSrc": "6148:79:6", + "nodeType": "YulFunctionCall", + "src": "6148:79:6" + }, + "nativeSrc": "6148:79:6", + "nodeType": "YulExpressionStatement", + "src": "6148:79:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "6121:7:6", + "nodeType": "YulIdentifier", + "src": "6121:7:6" + }, + { + "name": "headStart", + "nativeSrc": "6130:9:6", + "nodeType": "YulIdentifier", + "src": "6130:9:6" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "6117:3:6", + "nodeType": "YulIdentifier", + "src": "6117:3:6" + }, + "nativeSrc": "6117:23:6", + "nodeType": "YulFunctionCall", + "src": "6117:23:6" + }, + { + "kind": "number", + "nativeSrc": "6142:2:6", + "nodeType": "YulLiteral", + "src": "6142:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "6113:3:6", + "nodeType": "YulIdentifier", + "src": "6113:3:6" + }, + "nativeSrc": "6113:32:6", + "nodeType": "YulFunctionCall", + "src": "6113:32:6" + }, + "nativeSrc": "6110:119:6", + "nodeType": "YulIf", + "src": "6110:119:6" + }, + { + "nativeSrc": "6239:117:6", + "nodeType": "YulBlock", + "src": "6239:117:6", + "statements": [ + { + "nativeSrc": "6254:15:6", + "nodeType": "YulVariableDeclaration", + "src": "6254:15:6", + "value": { + "kind": "number", + "nativeSrc": "6268:1:6", + "nodeType": "YulLiteral", + "src": "6268:1:6", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "6258:6:6", + "nodeType": "YulTypedName", + "src": "6258:6:6", + "type": "" + } + ] + }, + { + "nativeSrc": "6283:63:6", + "nodeType": "YulAssignment", + "src": "6283:63:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6318:9:6", + "nodeType": "YulIdentifier", + "src": "6318:9:6" + }, + { + "name": "offset", + "nativeSrc": "6329:6:6", + "nodeType": "YulIdentifier", + "src": "6329:6:6" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6314:3:6", + "nodeType": "YulIdentifier", + "src": "6314:3:6" + }, + "nativeSrc": "6314:22:6", + "nodeType": "YulFunctionCall", + "src": "6314:22:6" + }, + { + "name": "dataEnd", + "nativeSrc": "6338:7:6", + "nodeType": "YulIdentifier", + "src": "6338:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "6293:20:6", + "nodeType": "YulIdentifier", + "src": "6293:20:6" + }, + "nativeSrc": "6293:53:6", + "nodeType": "YulFunctionCall", + "src": "6293:53:6" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "6283:6:6", + "nodeType": "YulIdentifier", + "src": "6283:6:6" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256", + "nativeSrc": "6034:329:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "6070:9:6", + "nodeType": "YulTypedName", + "src": "6070:9:6", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "6081:7:6", + "nodeType": "YulTypedName", + "src": "6081:7:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "6093:6:6", + "nodeType": "YulTypedName", + "src": "6093:6:6", + "type": "" + } + ], + "src": "6034:329:6" + }, + { + "body": { + "nativeSrc": "6458:28:6", + "nodeType": "YulBlock", + "src": "6458:28:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6475:1:6", + "nodeType": "YulLiteral", + "src": "6475:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "6478:1:6", + "nodeType": "YulLiteral", + "src": "6478:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "6468:6:6", + "nodeType": "YulIdentifier", + "src": "6468:6:6" + }, + "nativeSrc": "6468:12:6", + "nodeType": "YulFunctionCall", + "src": "6468:12:6" + }, + "nativeSrc": "6468:12:6", + "nodeType": "YulExpressionStatement", + "src": "6468:12:6" + } + ] + }, + "name": "revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f", + "nativeSrc": "6369:117:6", + "nodeType": "YulFunctionDefinition", + "src": "6369:117:6" + }, + { + "body": { + "nativeSrc": "6540:54:6", + "nodeType": "YulBlock", + "src": "6540:54:6", + "statements": [ + { + "nativeSrc": "6550:38:6", + "nodeType": "YulAssignment", + "src": "6550:38:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "6568:5:6", + "nodeType": "YulIdentifier", + "src": "6568:5:6" + }, + { + "kind": "number", + "nativeSrc": "6575:2:6", + "nodeType": "YulLiteral", + "src": "6575:2:6", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6564:3:6", + "nodeType": "YulIdentifier", + "src": "6564:3:6" + }, + "nativeSrc": "6564:14:6", + "nodeType": "YulFunctionCall", + "src": "6564:14:6" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6584:2:6", + "nodeType": "YulLiteral", + "src": "6584:2:6", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "6580:3:6", + "nodeType": "YulIdentifier", + "src": "6580:3:6" + }, + "nativeSrc": "6580:7:6", + "nodeType": "YulFunctionCall", + "src": "6580:7:6" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "6560:3:6", + "nodeType": "YulIdentifier", + "src": "6560:3:6" + }, + "nativeSrc": "6560:28:6", + "nodeType": "YulFunctionCall", + "src": "6560:28:6" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "6550:6:6", + "nodeType": "YulIdentifier", + "src": "6550:6:6" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nativeSrc": "6492:102:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "6523:5:6", + "nodeType": "YulTypedName", + "src": "6523:5:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "6533:6:6", + "nodeType": "YulTypedName", + "src": "6533:6:6", + "type": "" + } + ], + "src": "6492:102:6" + }, + { + "body": { + "nativeSrc": "6628:152:6", + "nodeType": "YulBlock", + "src": "6628:152:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6645:1:6", + "nodeType": "YulLiteral", + "src": "6645:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "6648:77:6", + "nodeType": "YulLiteral", + "src": "6648:77:6", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6638:6:6", + "nodeType": "YulIdentifier", + "src": "6638:6:6" + }, + "nativeSrc": "6638:88:6", + "nodeType": "YulFunctionCall", + "src": "6638:88:6" + }, + "nativeSrc": "6638:88:6", + "nodeType": "YulExpressionStatement", + "src": "6638:88:6" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6742:1:6", + "nodeType": "YulLiteral", + "src": "6742:1:6", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "6745:4:6", + "nodeType": "YulLiteral", + "src": "6745:4:6", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6735:6:6", + "nodeType": "YulIdentifier", + "src": "6735:6:6" + }, + "nativeSrc": "6735:15:6", + "nodeType": "YulFunctionCall", + "src": "6735:15:6" + }, + "nativeSrc": "6735:15:6", + "nodeType": "YulExpressionStatement", + "src": "6735:15:6" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6766:1:6", + "nodeType": "YulLiteral", + "src": "6766:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "6769:4:6", + "nodeType": "YulLiteral", + "src": "6769:4:6", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "6759:6:6", + "nodeType": "YulIdentifier", + "src": "6759:6:6" + }, + "nativeSrc": "6759:15:6", + "nodeType": "YulFunctionCall", + "src": "6759:15:6" + }, + "nativeSrc": "6759:15:6", + "nodeType": "YulExpressionStatement", + "src": "6759:15:6" + } + ] + }, + "name": "panic_error_0x41", + "nativeSrc": "6600:180:6", + "nodeType": "YulFunctionDefinition", + "src": "6600:180:6" + }, + { + "body": { + "nativeSrc": "6829:238:6", + "nodeType": "YulBlock", + "src": "6829:238:6", + "statements": [ + { + "nativeSrc": "6839:58:6", + "nodeType": "YulVariableDeclaration", + "src": "6839:58:6", + "value": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "6861:6:6", + "nodeType": "YulIdentifier", + "src": "6861:6:6" + }, + { + "arguments": [ + { + "name": "size", + "nativeSrc": "6891:4:6", + "nodeType": "YulIdentifier", + "src": "6891:4:6" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "6869:21:6", + "nodeType": "YulIdentifier", + "src": "6869:21:6" + }, + "nativeSrc": "6869:27:6", + "nodeType": "YulFunctionCall", + "src": "6869:27:6" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6857:3:6", + "nodeType": "YulIdentifier", + "src": "6857:3:6" + }, + "nativeSrc": "6857:40:6", + "nodeType": "YulFunctionCall", + "src": "6857:40:6" + }, + "variables": [ + { + "name": "newFreePtr", + "nativeSrc": "6843:10:6", + "nodeType": "YulTypedName", + "src": "6843:10:6", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "7008:22:6", + "nodeType": "YulBlock", + "src": "7008:22:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "7010:16:6", + "nodeType": "YulIdentifier", + "src": "7010:16:6" + }, + "nativeSrc": "7010:18:6", + "nodeType": "YulFunctionCall", + "src": "7010:18:6" + }, + "nativeSrc": "7010:18:6", + "nodeType": "YulExpressionStatement", + "src": "7010:18:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "6951:10:6", + "nodeType": "YulIdentifier", + "src": "6951:10:6" + }, + { + "kind": "number", + "nativeSrc": "6963:18:6", + "nodeType": "YulLiteral", + "src": "6963:18:6", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "6948:2:6", + "nodeType": "YulIdentifier", + "src": "6948:2:6" + }, + "nativeSrc": "6948:34:6", + "nodeType": "YulFunctionCall", + "src": "6948:34:6" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "6987:10:6", + "nodeType": "YulIdentifier", + "src": "6987:10:6" + }, + { + "name": "memPtr", + "nativeSrc": "6999:6:6", + "nodeType": "YulIdentifier", + "src": "6999:6:6" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "6984:2:6", + "nodeType": "YulIdentifier", + "src": "6984:2:6" + }, + "nativeSrc": "6984:22:6", + "nodeType": "YulFunctionCall", + "src": "6984:22:6" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "6945:2:6", + "nodeType": "YulIdentifier", + "src": "6945:2:6" + }, + "nativeSrc": "6945:62:6", + "nodeType": "YulFunctionCall", + "src": "6945:62:6" + }, + "nativeSrc": "6942:88:6", + "nodeType": "YulIf", + "src": "6942:88:6" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7046:2:6", + "nodeType": "YulLiteral", + "src": "7046:2:6", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nativeSrc": "7050:10:6", + "nodeType": "YulIdentifier", + "src": "7050:10:6" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7039:6:6", + "nodeType": "YulIdentifier", + "src": "7039:6:6" + }, + "nativeSrc": "7039:22:6", + "nodeType": "YulFunctionCall", + "src": "7039:22:6" + }, + "nativeSrc": "7039:22:6", + "nodeType": "YulExpressionStatement", + "src": "7039:22:6" + } + ] + }, + "name": "finalize_allocation", + "nativeSrc": "6786:281:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "6815:6:6", + "nodeType": "YulTypedName", + "src": "6815:6:6", + "type": "" + }, + { + "name": "size", + "nativeSrc": "6823:4:6", + "nodeType": "YulTypedName", + "src": "6823:4:6", + "type": "" + } + ], + "src": "6786:281:6" + }, + { + "body": { + "nativeSrc": "7114:88:6", + "nodeType": "YulBlock", + "src": "7114:88:6", + "statements": [ + { + "nativeSrc": "7124:30:6", + "nodeType": "YulAssignment", + "src": "7124:30:6", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_unbounded", + "nativeSrc": "7134:18:6", + "nodeType": "YulIdentifier", + "src": "7134:18:6" + }, + "nativeSrc": "7134:20:6", + "nodeType": "YulFunctionCall", + "src": "7134:20:6" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "7124:6:6", + "nodeType": "YulIdentifier", + "src": "7124:6:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "7183:6:6", + "nodeType": "YulIdentifier", + "src": "7183:6:6" + }, + { + "name": "size", + "nativeSrc": "7191:4:6", + "nodeType": "YulIdentifier", + "src": "7191:4:6" + } + ], + "functionName": { + "name": "finalize_allocation", + "nativeSrc": "7163:19:6", + "nodeType": "YulIdentifier", + "src": "7163:19:6" + }, + "nativeSrc": "7163:33:6", + "nodeType": "YulFunctionCall", + "src": "7163:33:6" + }, + "nativeSrc": "7163:33:6", + "nodeType": "YulExpressionStatement", + "src": "7163:33:6" + } + ] + }, + "name": "allocate_memory", + "nativeSrc": "7073:129:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "size", + "nativeSrc": "7098:4:6", + "nodeType": "YulTypedName", + "src": "7098:4:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "7107:6:6", + "nodeType": "YulTypedName", + "src": "7107:6:6", + "type": "" + } + ], + "src": "7073:129:6" + }, + { + "body": { + "nativeSrc": "7297:28:6", + "nodeType": "YulBlock", + "src": "7297:28:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7314:1:6", + "nodeType": "YulLiteral", + "src": "7314:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "7317:1:6", + "nodeType": "YulLiteral", + "src": "7317:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "7307:6:6", + "nodeType": "YulIdentifier", + "src": "7307:6:6" + }, + "nativeSrc": "7307:12:6", + "nodeType": "YulFunctionCall", + "src": "7307:12:6" + }, + "nativeSrc": "7307:12:6", + "nodeType": "YulExpressionStatement", + "src": "7307:12:6" + } + ] + }, + "name": "revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421", + "nativeSrc": "7208:117:6", + "nodeType": "YulFunctionDefinition", + "src": "7208:117:6" + }, + { + "body": { + "nativeSrc": "7420:28:6", + "nodeType": "YulBlock", + "src": "7420:28:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7437:1:6", + "nodeType": "YulLiteral", + "src": "7437:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "7440:1:6", + "nodeType": "YulLiteral", + "src": "7440:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "7430:6:6", + "nodeType": "YulIdentifier", + "src": "7430:6:6" + }, + "nativeSrc": "7430:12:6", + "nodeType": "YulFunctionCall", + "src": "7430:12:6" + }, + "nativeSrc": "7430:12:6", + "nodeType": "YulExpressionStatement", + "src": "7430:12:6" + } + ] + }, + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nativeSrc": "7331:117:6", + "nodeType": "YulFunctionDefinition", + "src": "7331:117:6" + }, + { + "body": { + "nativeSrc": "7521:241:6", + "nodeType": "YulBlock", + "src": "7521:241:6", + "statements": [ + { + "body": { + "nativeSrc": "7626:22:6", + "nodeType": "YulBlock", + "src": "7626:22:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "7628:16:6", + "nodeType": "YulIdentifier", + "src": "7628:16:6" + }, + "nativeSrc": "7628:18:6", + "nodeType": "YulFunctionCall", + "src": "7628:18:6" + }, + "nativeSrc": "7628:18:6", + "nodeType": "YulExpressionStatement", + "src": "7628:18:6" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "7598:6:6", + "nodeType": "YulIdentifier", + "src": "7598:6:6" + }, + { + "kind": "number", + "nativeSrc": "7606:18:6", + "nodeType": "YulLiteral", + "src": "7606:18:6", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "7595:2:6", + "nodeType": "YulIdentifier", + "src": "7595:2:6" + }, + "nativeSrc": "7595:30:6", + "nodeType": "YulFunctionCall", + "src": "7595:30:6" + }, + "nativeSrc": "7592:56:6", + "nodeType": "YulIf", + "src": "7592:56:6" + }, + { + "nativeSrc": "7658:37:6", + "nodeType": "YulAssignment", + "src": "7658:37:6", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "7688:6:6", + "nodeType": "YulIdentifier", + "src": "7688:6:6" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "7666:21:6", + "nodeType": "YulIdentifier", + "src": "7666:21:6" + }, + "nativeSrc": "7666:29:6", + "nodeType": "YulFunctionCall", + "src": "7666:29:6" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "7658:4:6", + "nodeType": "YulIdentifier", + "src": "7658:4:6" + } + ] + }, + { + "nativeSrc": "7732:23:6", + "nodeType": "YulAssignment", + "src": "7732:23:6", + "value": { + "arguments": [ + { + "name": "size", + "nativeSrc": "7744:4:6", + "nodeType": "YulIdentifier", + "src": "7744:4:6" + }, + { + "kind": "number", + "nativeSrc": "7750:4:6", + "nodeType": "YulLiteral", + "src": "7750:4:6", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7740:3:6", + "nodeType": "YulIdentifier", + "src": "7740:3:6" + }, + "nativeSrc": "7740:15:6", + "nodeType": "YulFunctionCall", + "src": "7740:15:6" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "7732:4:6", + "nodeType": "YulIdentifier", + "src": "7732:4:6" + } + ] + } + ] + }, + "name": "array_allocation_size_t_string_memory_ptr", + "nativeSrc": "7454:308:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nativeSrc": "7505:6:6", + "nodeType": "YulTypedName", + "src": "7505:6:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nativeSrc": "7516:4:6", + "nodeType": "YulTypedName", + "src": "7516:4:6", + "type": "" + } + ], + "src": "7454:308:6" + }, + { + "body": { + "nativeSrc": "7832:84:6", + "nodeType": "YulBlock", + "src": "7832:84:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dst", + "nativeSrc": "7856:3:6", + "nodeType": "YulIdentifier", + "src": "7856:3:6" + }, + { + "name": "src", + "nativeSrc": "7861:3:6", + "nodeType": "YulIdentifier", + "src": "7861:3:6" + }, + { + "name": "length", + "nativeSrc": "7866:6:6", + "nodeType": "YulIdentifier", + "src": "7866:6:6" + } + ], + "functionName": { + "name": "calldatacopy", + "nativeSrc": "7843:12:6", + "nodeType": "YulIdentifier", + "src": "7843:12:6" + }, + "nativeSrc": "7843:30:6", + "nodeType": "YulFunctionCall", + "src": "7843:30:6" + }, + "nativeSrc": "7843:30:6", + "nodeType": "YulExpressionStatement", + "src": "7843:30:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "7893:3:6", + "nodeType": "YulIdentifier", + "src": "7893:3:6" + }, + { + "name": "length", + "nativeSrc": "7898:6:6", + "nodeType": "YulIdentifier", + "src": "7898:6:6" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7889:3:6", + "nodeType": "YulIdentifier", + "src": "7889:3:6" + }, + "nativeSrc": "7889:16:6", + "nodeType": "YulFunctionCall", + "src": "7889:16:6" + }, + { + "kind": "number", + "nativeSrc": "7907:1:6", + "nodeType": "YulLiteral", + "src": "7907:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7882:6:6", + "nodeType": "YulIdentifier", + "src": "7882:6:6" + }, + "nativeSrc": "7882:27:6", + "nodeType": "YulFunctionCall", + "src": "7882:27:6" + }, + "nativeSrc": "7882:27:6", + "nodeType": "YulExpressionStatement", + "src": "7882:27:6" + } + ] + }, + "name": "copy_calldata_to_memory_with_cleanup", + "nativeSrc": "7768:148:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "7814:3:6", + "nodeType": "YulTypedName", + "src": "7814:3:6", + "type": "" + }, + { + "name": "dst", + "nativeSrc": "7819:3:6", + "nodeType": "YulTypedName", + "src": "7819:3:6", + "type": "" + }, + { + "name": "length", + "nativeSrc": "7824:6:6", + "nodeType": "YulTypedName", + "src": "7824:6:6", + "type": "" + } + ], + "src": "7768:148:6" + }, + { + "body": { + "nativeSrc": "8006:341:6", + "nodeType": "YulBlock", + "src": "8006:341:6", + "statements": [ + { + "nativeSrc": "8016:75:6", + "nodeType": "YulAssignment", + "src": "8016:75:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nativeSrc": "8083:6:6", + "nodeType": "YulIdentifier", + "src": "8083:6:6" + } + ], + "functionName": { + "name": "array_allocation_size_t_string_memory_ptr", + "nativeSrc": "8041:41:6", + "nodeType": "YulIdentifier", + "src": "8041:41:6" + }, + "nativeSrc": "8041:49:6", + "nodeType": "YulFunctionCall", + "src": "8041:49:6" + } + ], + "functionName": { + "name": "allocate_memory", + "nativeSrc": "8025:15:6", + "nodeType": "YulIdentifier", + "src": "8025:15:6" + }, + "nativeSrc": "8025:66:6", + "nodeType": "YulFunctionCall", + "src": "8025:66:6" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "8016:5:6", + "nodeType": "YulIdentifier", + "src": "8016:5:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nativeSrc": "8107:5:6", + "nodeType": "YulIdentifier", + "src": "8107:5:6" + }, + { + "name": "length", + "nativeSrc": "8114:6:6", + "nodeType": "YulIdentifier", + "src": "8114:6:6" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8100:6:6", + "nodeType": "YulIdentifier", + "src": "8100:6:6" + }, + "nativeSrc": "8100:21:6", + "nodeType": "YulFunctionCall", + "src": "8100:21:6" + }, + "nativeSrc": "8100:21:6", + "nodeType": "YulExpressionStatement", + "src": "8100:21:6" + }, + { + "nativeSrc": "8130:27:6", + "nodeType": "YulVariableDeclaration", + "src": "8130:27:6", + "value": { + "arguments": [ + { + "name": "array", + "nativeSrc": "8145:5:6", + "nodeType": "YulIdentifier", + "src": "8145:5:6" + }, + { + "kind": "number", + "nativeSrc": "8152:4:6", + "nodeType": "YulLiteral", + "src": "8152:4:6", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8141:3:6", + "nodeType": "YulIdentifier", + "src": "8141:3:6" + }, + "nativeSrc": "8141:16:6", + "nodeType": "YulFunctionCall", + "src": "8141:16:6" + }, + "variables": [ + { + "name": "dst", + "nativeSrc": "8134:3:6", + "nodeType": "YulTypedName", + "src": "8134:3:6", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "8195:83:6", + "nodeType": "YulBlock", + "src": "8195:83:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nativeSrc": "8197:77:6", + "nodeType": "YulIdentifier", + "src": "8197:77:6" + }, + "nativeSrc": "8197:79:6", + "nodeType": "YulFunctionCall", + "src": "8197:79:6" + }, + "nativeSrc": "8197:79:6", + "nodeType": "YulExpressionStatement", + "src": "8197:79:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "8176:3:6", + "nodeType": "YulIdentifier", + "src": "8176:3:6" + }, + { + "name": "length", + "nativeSrc": "8181:6:6", + "nodeType": "YulIdentifier", + "src": "8181:6:6" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8172:3:6", + "nodeType": "YulIdentifier", + "src": "8172:3:6" + }, + "nativeSrc": "8172:16:6", + "nodeType": "YulFunctionCall", + "src": "8172:16:6" + }, + { + "name": "end", + "nativeSrc": "8190:3:6", + "nodeType": "YulIdentifier", + "src": "8190:3:6" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "8169:2:6", + "nodeType": "YulIdentifier", + "src": "8169:2:6" + }, + "nativeSrc": "8169:25:6", + "nodeType": "YulFunctionCall", + "src": "8169:25:6" + }, + "nativeSrc": "8166:112:6", + "nodeType": "YulIf", + "src": "8166:112:6" + }, + { + "expression": { + "arguments": [ + { + "name": "src", + "nativeSrc": "8324:3:6", + "nodeType": "YulIdentifier", + "src": "8324:3:6" + }, + { + "name": "dst", + "nativeSrc": "8329:3:6", + "nodeType": "YulIdentifier", + "src": "8329:3:6" + }, + { + "name": "length", + "nativeSrc": "8334:6:6", + "nodeType": "YulIdentifier", + "src": "8334:6:6" + } + ], + "functionName": { + "name": "copy_calldata_to_memory_with_cleanup", + "nativeSrc": "8287:36:6", + "nodeType": "YulIdentifier", + "src": "8287:36:6" + }, + "nativeSrc": "8287:54:6", + "nodeType": "YulFunctionCall", + "src": "8287:54:6" + }, + "nativeSrc": "8287:54:6", + "nodeType": "YulExpressionStatement", + "src": "8287:54:6" + } + ] + }, + "name": "abi_decode_available_length_t_string_memory_ptr", + "nativeSrc": "7922:425:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "7979:3:6", + "nodeType": "YulTypedName", + "src": "7979:3:6", + "type": "" + }, + { + "name": "length", + "nativeSrc": "7984:6:6", + "nodeType": "YulTypedName", + "src": "7984:6:6", + "type": "" + }, + { + "name": "end", + "nativeSrc": "7992:3:6", + "nodeType": "YulTypedName", + "src": "7992:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "8000:5:6", + "nodeType": "YulTypedName", + "src": "8000:5:6", + "type": "" + } + ], + "src": "7922:425:6" + }, + { + "body": { + "nativeSrc": "8429:278:6", + "nodeType": "YulBlock", + "src": "8429:278:6", + "statements": [ + { + "body": { + "nativeSrc": "8478:83:6", + "nodeType": "YulBlock", + "src": "8478:83:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "8480:77:6", + "nodeType": "YulIdentifier", + "src": "8480:77:6" + }, + "nativeSrc": "8480:79:6", + "nodeType": "YulFunctionCall", + "src": "8480:79:6" + }, + "nativeSrc": "8480:79:6", + "nodeType": "YulExpressionStatement", + "src": "8480:79:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "8457:6:6", + "nodeType": "YulIdentifier", + "src": "8457:6:6" + }, + { + "kind": "number", + "nativeSrc": "8465:4:6", + "nodeType": "YulLiteral", + "src": "8465:4:6", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8453:3:6", + "nodeType": "YulIdentifier", + "src": "8453:3:6" + }, + "nativeSrc": "8453:17:6", + "nodeType": "YulFunctionCall", + "src": "8453:17:6" + }, + { + "name": "end", + "nativeSrc": "8472:3:6", + "nodeType": "YulIdentifier", + "src": "8472:3:6" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "8449:3:6", + "nodeType": "YulIdentifier", + "src": "8449:3:6" + }, + "nativeSrc": "8449:27:6", + "nodeType": "YulFunctionCall", + "src": "8449:27:6" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "8442:6:6", + "nodeType": "YulIdentifier", + "src": "8442:6:6" + }, + "nativeSrc": "8442:35:6", + "nodeType": "YulFunctionCall", + "src": "8442:35:6" + }, + "nativeSrc": "8439:122:6", + "nodeType": "YulIf", + "src": "8439:122:6" + }, + { + "nativeSrc": "8570:34:6", + "nodeType": "YulVariableDeclaration", + "src": "8570:34:6", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "8597:6:6", + "nodeType": "YulIdentifier", + "src": "8597:6:6" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "8584:12:6", + "nodeType": "YulIdentifier", + "src": "8584:12:6" + }, + "nativeSrc": "8584:20:6", + "nodeType": "YulFunctionCall", + "src": "8584:20:6" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "8574:6:6", + "nodeType": "YulTypedName", + "src": "8574:6:6", + "type": "" + } + ] + }, + { + "nativeSrc": "8613:88:6", + "nodeType": "YulAssignment", + "src": "8613:88:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "8674:6:6", + "nodeType": "YulIdentifier", + "src": "8674:6:6" + }, + { + "kind": "number", + "nativeSrc": "8682:4:6", + "nodeType": "YulLiteral", + "src": "8682:4:6", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8670:3:6", + "nodeType": "YulIdentifier", + "src": "8670:3:6" + }, + "nativeSrc": "8670:17:6", + "nodeType": "YulFunctionCall", + "src": "8670:17:6" + }, + { + "name": "length", + "nativeSrc": "8689:6:6", + "nodeType": "YulIdentifier", + "src": "8689:6:6" + }, + { + "name": "end", + "nativeSrc": "8697:3:6", + "nodeType": "YulIdentifier", + "src": "8697:3:6" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_string_memory_ptr", + "nativeSrc": "8622:47:6", + "nodeType": "YulIdentifier", + "src": "8622:47:6" + }, + "nativeSrc": "8622:79:6", + "nodeType": "YulFunctionCall", + "src": "8622:79:6" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "8613:5:6", + "nodeType": "YulIdentifier", + "src": "8613:5:6" + } + ] + } + ] + }, + "name": "abi_decode_t_string_memory_ptr", + "nativeSrc": "8367:340:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "8407:6:6", + "nodeType": "YulTypedName", + "src": "8407:6:6", + "type": "" + }, + { + "name": "end", + "nativeSrc": "8415:3:6", + "nodeType": "YulTypedName", + "src": "8415:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "8423:5:6", + "nodeType": "YulTypedName", + "src": "8423:5:6", + "type": "" + } + ], + "src": "8367:340:6" + }, + { + "body": { + "nativeSrc": "8757:49:6", + "nodeType": "YulBlock", + "src": "8757:49:6", + "statements": [ + { + "nativeSrc": "8767:33:6", + "nodeType": "YulAssignment", + "src": "8767:33:6", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "8782:5:6", + "nodeType": "YulIdentifier", + "src": "8782:5:6" + }, + { + "kind": "number", + "nativeSrc": "8789:10:6", + "nodeType": "YulLiteral", + "src": "8789:10:6", + "type": "", + "value": "0xffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "8778:3:6", + "nodeType": "YulIdentifier", + "src": "8778:3:6" + }, + "nativeSrc": "8778:22:6", + "nodeType": "YulFunctionCall", + "src": "8778:22:6" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "8767:7:6", + "nodeType": "YulIdentifier", + "src": "8767:7:6" + } + ] + } + ] + }, + "name": "cleanup_t_uint32", + "nativeSrc": "8713:93:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "8739:5:6", + "nodeType": "YulTypedName", + "src": "8739:5:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "8749:7:6", + "nodeType": "YulTypedName", + "src": "8749:7:6", + "type": "" + } + ], + "src": "8713:93:6" + }, + { + "body": { + "nativeSrc": "8854:78:6", + "nodeType": "YulBlock", + "src": "8854:78:6", + "statements": [ + { + "body": { + "nativeSrc": "8910:16:6", + "nodeType": "YulBlock", + "src": "8910:16:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "8919:1:6", + "nodeType": "YulLiteral", + "src": "8919:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "8922:1:6", + "nodeType": "YulLiteral", + "src": "8922:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "8912:6:6", + "nodeType": "YulIdentifier", + "src": "8912:6:6" + }, + "nativeSrc": "8912:12:6", + "nodeType": "YulFunctionCall", + "src": "8912:12:6" + }, + "nativeSrc": "8912:12:6", + "nodeType": "YulExpressionStatement", + "src": "8912:12:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "8877:5:6", + "nodeType": "YulIdentifier", + "src": "8877:5:6" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "8901:5:6", + "nodeType": "YulIdentifier", + "src": "8901:5:6" + } + ], + "functionName": { + "name": "cleanup_t_uint32", + "nativeSrc": "8884:16:6", + "nodeType": "YulIdentifier", + "src": "8884:16:6" + }, + "nativeSrc": "8884:23:6", + "nodeType": "YulFunctionCall", + "src": "8884:23:6" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "8874:2:6", + "nodeType": "YulIdentifier", + "src": "8874:2:6" + }, + "nativeSrc": "8874:34:6", + "nodeType": "YulFunctionCall", + "src": "8874:34:6" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "8867:6:6", + "nodeType": "YulIdentifier", + "src": "8867:6:6" + }, + "nativeSrc": "8867:42:6", + "nodeType": "YulFunctionCall", + "src": "8867:42:6" + }, + "nativeSrc": "8864:62:6", + "nodeType": "YulIf", + "src": "8864:62:6" + } + ] + }, + "name": "validator_revert_t_uint32", + "nativeSrc": "8812:120:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "8847:5:6", + "nodeType": "YulTypedName", + "src": "8847:5:6", + "type": "" + } + ], + "src": "8812:120:6" + }, + { + "body": { + "nativeSrc": "8989:86:6", + "nodeType": "YulBlock", + "src": "8989:86:6", + "statements": [ + { + "nativeSrc": "8999:29:6", + "nodeType": "YulAssignment", + "src": "8999:29:6", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "9021:6:6", + "nodeType": "YulIdentifier", + "src": "9021:6:6" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "9008:12:6", + "nodeType": "YulIdentifier", + "src": "9008:12:6" + }, + "nativeSrc": "9008:20:6", + "nodeType": "YulFunctionCall", + "src": "9008:20:6" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "8999:5:6", + "nodeType": "YulIdentifier", + "src": "8999:5:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "9063:5:6", + "nodeType": "YulIdentifier", + "src": "9063:5:6" + } + ], + "functionName": { + "name": "validator_revert_t_uint32", + "nativeSrc": "9037:25:6", + "nodeType": "YulIdentifier", + "src": "9037:25:6" + }, + "nativeSrc": "9037:32:6", + "nodeType": "YulFunctionCall", + "src": "9037:32:6" + }, + "nativeSrc": "9037:32:6", + "nodeType": "YulExpressionStatement", + "src": "9037:32:6" + } + ] + }, + "name": "abi_decode_t_uint32", + "nativeSrc": "8938:137:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "8967:6:6", + "nodeType": "YulTypedName", + "src": "8967:6:6", + "type": "" + }, + { + "name": "end", + "nativeSrc": "8975:3:6", + "nodeType": "YulTypedName", + "src": "8975:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "8983:5:6", + "nodeType": "YulTypedName", + "src": "8983:5:6", + "type": "" + } + ], + "src": "8938:137:6" + }, + { + "body": { + "nativeSrc": "9206:1830:6", + "nodeType": "YulBlock", + "src": "9206:1830:6", + "statements": [ + { + "body": { + "nativeSrc": "9250:83:6", + "nodeType": "YulBlock", + "src": "9250:83:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f", + "nativeSrc": "9252:77:6", + "nodeType": "YulIdentifier", + "src": "9252:77:6" + }, + "nativeSrc": "9252:79:6", + "nodeType": "YulFunctionCall", + "src": "9252:79:6" + }, + "nativeSrc": "9252:79:6", + "nodeType": "YulExpressionStatement", + "src": "9252:79:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "end", + "nativeSrc": "9227:3:6", + "nodeType": "YulIdentifier", + "src": "9227:3:6" + }, + { + "name": "headStart", + "nativeSrc": "9232:9:6", + "nodeType": "YulIdentifier", + "src": "9232:9:6" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "9223:3:6", + "nodeType": "YulIdentifier", + "src": "9223:3:6" + }, + "nativeSrc": "9223:19:6", + "nodeType": "YulFunctionCall", + "src": "9223:19:6" + }, + { + "kind": "number", + "nativeSrc": "9244:4:6", + "nodeType": "YulLiteral", + "src": "9244:4:6", + "type": "", + "value": "0xc0" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "9219:3:6", + "nodeType": "YulIdentifier", + "src": "9219:3:6" + }, + "nativeSrc": "9219:30:6", + "nodeType": "YulFunctionCall", + "src": "9219:30:6" + }, + "nativeSrc": "9216:117:6", + "nodeType": "YulIf", + "src": "9216:117:6" + }, + { + "nativeSrc": "9342:30:6", + "nodeType": "YulAssignment", + "src": "9342:30:6", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "9367:4:6", + "nodeType": "YulLiteral", + "src": "9367:4:6", + "type": "", + "value": "0xc0" + } + ], + "functionName": { + "name": "allocate_memory", + "nativeSrc": "9351:15:6", + "nodeType": "YulIdentifier", + "src": "9351:15:6" + }, + "nativeSrc": "9351:21:6", + "nodeType": "YulFunctionCall", + "src": "9351:21:6" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "9342:5:6", + "nodeType": "YulIdentifier", + "src": "9342:5:6" + } + ] + }, + { + "nativeSrc": "9382:153:6", + "nodeType": "YulBlock", + "src": "9382:153:6", + "statements": [ + { + "nativeSrc": "9420:15:6", + "nodeType": "YulVariableDeclaration", + "src": "9420:15:6", + "value": { + "kind": "number", + "nativeSrc": "9434:1:6", + "nodeType": "YulLiteral", + "src": "9434:1:6", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "9424:6:6", + "nodeType": "YulTypedName", + "src": "9424:6:6", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "9460:5:6", + "nodeType": "YulIdentifier", + "src": "9460:5:6" + }, + { + "kind": "number", + "nativeSrc": "9467:4:6", + "nodeType": "YulLiteral", + "src": "9467:4:6", + "type": "", + "value": "0x00" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9456:3:6", + "nodeType": "YulIdentifier", + "src": "9456:3:6" + }, + "nativeSrc": "9456:16:6", + "nodeType": "YulFunctionCall", + "src": "9456:16:6" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9499:9:6", + "nodeType": "YulIdentifier", + "src": "9499:9:6" + }, + { + "name": "offset", + "nativeSrc": "9510:6:6", + "nodeType": "YulIdentifier", + "src": "9510:6:6" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9495:3:6", + "nodeType": "YulIdentifier", + "src": "9495:3:6" + }, + "nativeSrc": "9495:22:6", + "nodeType": "YulFunctionCall", + "src": "9495:22:6" + }, + { + "name": "end", + "nativeSrc": "9519:3:6", + "nodeType": "YulIdentifier", + "src": "9519:3:6" + } + ], + "functionName": { + "name": "abi_decode_t_bytes32", + "nativeSrc": "9474:20:6", + "nodeType": "YulIdentifier", + "src": "9474:20:6" + }, + "nativeSrc": "9474:49:6", + "nodeType": "YulFunctionCall", + "src": "9474:49:6" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "9449:6:6", + "nodeType": "YulIdentifier", + "src": "9449:6:6" + }, + "nativeSrc": "9449:75:6", + "nodeType": "YulFunctionCall", + "src": "9449:75:6" + }, + "nativeSrc": "9449:75:6", + "nodeType": "YulExpressionStatement", + "src": "9449:75:6" + } + ] + }, + { + "nativeSrc": "9545:321:6", + "nodeType": "YulBlock", + "src": "9545:321:6", + "statements": [ + { + "nativeSrc": "9580:46:6", + "nodeType": "YulVariableDeclaration", + "src": "9580:46:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9611:9:6", + "nodeType": "YulIdentifier", + "src": "9611:9:6" + }, + { + "kind": "number", + "nativeSrc": "9622:2:6", + "nodeType": "YulLiteral", + "src": "9622:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9607:3:6", + "nodeType": "YulIdentifier", + "src": "9607:3:6" + }, + "nativeSrc": "9607:18:6", + "nodeType": "YulFunctionCall", + "src": "9607:18:6" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "9594:12:6", + "nodeType": "YulIdentifier", + "src": "9594:12:6" + }, + "nativeSrc": "9594:32:6", + "nodeType": "YulFunctionCall", + "src": "9594:32:6" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "9584:6:6", + "nodeType": "YulTypedName", + "src": "9584:6:6", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "9673:83:6", + "nodeType": "YulBlock", + "src": "9673:83:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421", + "nativeSrc": "9675:77:6", + "nodeType": "YulIdentifier", + "src": "9675:77:6" + }, + "nativeSrc": "9675:79:6", + "nodeType": "YulFunctionCall", + "src": "9675:79:6" + }, + "nativeSrc": "9675:79:6", + "nodeType": "YulExpressionStatement", + "src": "9675:79:6" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "9645:6:6", + "nodeType": "YulIdentifier", + "src": "9645:6:6" + }, + { + "kind": "number", + "nativeSrc": "9653:18:6", + "nodeType": "YulLiteral", + "src": "9653:18:6", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "9642:2:6", + "nodeType": "YulIdentifier", + "src": "9642:2:6" + }, + "nativeSrc": "9642:30:6", + "nodeType": "YulFunctionCall", + "src": "9642:30:6" + }, + "nativeSrc": "9639:117:6", + "nodeType": "YulIf", + "src": "9639:117:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "9781:5:6", + "nodeType": "YulIdentifier", + "src": "9781:5:6" + }, + { + "kind": "number", + "nativeSrc": "9788:4:6", + "nodeType": "YulLiteral", + "src": "9788:4:6", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9777:3:6", + "nodeType": "YulIdentifier", + "src": "9777:3:6" + }, + "nativeSrc": "9777:16:6", + "nodeType": "YulFunctionCall", + "src": "9777:16:6" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9830:9:6", + "nodeType": "YulIdentifier", + "src": "9830:9:6" + }, + { + "name": "offset", + "nativeSrc": "9841:6:6", + "nodeType": "YulIdentifier", + "src": "9841:6:6" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9826:3:6", + "nodeType": "YulIdentifier", + "src": "9826:3:6" + }, + "nativeSrc": "9826:22:6", + "nodeType": "YulFunctionCall", + "src": "9826:22:6" + }, + { + "name": "end", + "nativeSrc": "9850:3:6", + "nodeType": "YulIdentifier", + "src": "9850:3:6" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr", + "nativeSrc": "9795:30:6", + "nodeType": "YulIdentifier", + "src": "9795:30:6" + }, + "nativeSrc": "9795:59:6", + "nodeType": "YulFunctionCall", + "src": "9795:59:6" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "9770:6:6", + "nodeType": "YulIdentifier", + "src": "9770:6:6" + }, + "nativeSrc": "9770:85:6", + "nodeType": "YulFunctionCall", + "src": "9770:85:6" + }, + "nativeSrc": "9770:85:6", + "nodeType": "YulExpressionStatement", + "src": "9770:85:6" + } + ] + }, + { + "nativeSrc": "9876:156:6", + "nodeType": "YulBlock", + "src": "9876:156:6", + "statements": [ + { + "nativeSrc": "9917:16:6", + "nodeType": "YulVariableDeclaration", + "src": "9917:16:6", + "value": { + "kind": "number", + "nativeSrc": "9931:2:6", + "nodeType": "YulLiteral", + "src": "9931:2:6", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "9921:6:6", + "nodeType": "YulTypedName", + "src": "9921:6:6", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "9958:5:6", + "nodeType": "YulIdentifier", + "src": "9958:5:6" + }, + { + "kind": "number", + "nativeSrc": "9965:4:6", + "nodeType": "YulLiteral", + "src": "9965:4:6", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9954:3:6", + "nodeType": "YulIdentifier", + "src": "9954:3:6" + }, + "nativeSrc": "9954:16:6", + "nodeType": "YulFunctionCall", + "src": "9954:16:6" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9996:9:6", + "nodeType": "YulIdentifier", + "src": "9996:9:6" + }, + { + "name": "offset", + "nativeSrc": "10007:6:6", + "nodeType": "YulIdentifier", + "src": "10007:6:6" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9992:3:6", + "nodeType": "YulIdentifier", + "src": "9992:3:6" + }, + "nativeSrc": "9992:22:6", + "nodeType": "YulFunctionCall", + "src": "9992:22:6" + }, + { + "name": "end", + "nativeSrc": "10016:3:6", + "nodeType": "YulIdentifier", + "src": "10016:3:6" + } + ], + "functionName": { + "name": "abi_decode_t_uint32", + "nativeSrc": "9972:19:6", + "nodeType": "YulIdentifier", + "src": "9972:19:6" + }, + "nativeSrc": "9972:48:6", + "nodeType": "YulFunctionCall", + "src": "9972:48:6" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "9947:6:6", + "nodeType": "YulIdentifier", + "src": "9947:6:6" + }, + "nativeSrc": "9947:74:6", + "nodeType": "YulFunctionCall", + "src": "9947:74:6" + }, + "nativeSrc": "9947:74:6", + "nodeType": "YulExpressionStatement", + "src": "9947:74:6" + } + ] + }, + { + "nativeSrc": "10042:321:6", + "nodeType": "YulBlock", + "src": "10042:321:6", + "statements": [ + { + "nativeSrc": "10077:46:6", + "nodeType": "YulVariableDeclaration", + "src": "10077:46:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10108:9:6", + "nodeType": "YulIdentifier", + "src": "10108:9:6" + }, + { + "kind": "number", + "nativeSrc": "10119:2:6", + "nodeType": "YulLiteral", + "src": "10119:2:6", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10104:3:6", + "nodeType": "YulIdentifier", + "src": "10104:3:6" + }, + "nativeSrc": "10104:18:6", + "nodeType": "YulFunctionCall", + "src": "10104:18:6" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "10091:12:6", + "nodeType": "YulIdentifier", + "src": "10091:12:6" + }, + "nativeSrc": "10091:32:6", + "nodeType": "YulFunctionCall", + "src": "10091:32:6" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "10081:6:6", + "nodeType": "YulTypedName", + "src": "10081:6:6", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "10170:83:6", + "nodeType": "YulBlock", + "src": "10170:83:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421", + "nativeSrc": "10172:77:6", + "nodeType": "YulIdentifier", + "src": "10172:77:6" + }, + "nativeSrc": "10172:79:6", + "nodeType": "YulFunctionCall", + "src": "10172:79:6" + }, + "nativeSrc": "10172:79:6", + "nodeType": "YulExpressionStatement", + "src": "10172:79:6" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "10142:6:6", + "nodeType": "YulIdentifier", + "src": "10142:6:6" + }, + { + "kind": "number", + "nativeSrc": "10150:18:6", + "nodeType": "YulLiteral", + "src": "10150:18:6", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "10139:2:6", + "nodeType": "YulIdentifier", + "src": "10139:2:6" + }, + "nativeSrc": "10139:30:6", + "nodeType": "YulFunctionCall", + "src": "10139:30:6" + }, + "nativeSrc": "10136:117:6", + "nodeType": "YulIf", + "src": "10136:117:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "10278:5:6", + "nodeType": "YulIdentifier", + "src": "10278:5:6" + }, + { + "kind": "number", + "nativeSrc": "10285:4:6", + "nodeType": "YulLiteral", + "src": "10285:4:6", + "type": "", + "value": "0x60" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10274:3:6", + "nodeType": "YulIdentifier", + "src": "10274:3:6" + }, + "nativeSrc": "10274:16:6", + "nodeType": "YulFunctionCall", + "src": "10274:16:6" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10327:9:6", + "nodeType": "YulIdentifier", + "src": "10327:9:6" + }, + { + "name": "offset", + "nativeSrc": "10338:6:6", + "nodeType": "YulIdentifier", + "src": "10338:6:6" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10323:3:6", + "nodeType": "YulIdentifier", + "src": "10323:3:6" + }, + "nativeSrc": "10323:22:6", + "nodeType": "YulFunctionCall", + "src": "10323:22:6" + }, + { + "name": "end", + "nativeSrc": "10347:3:6", + "nodeType": "YulIdentifier", + "src": "10347:3:6" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr", + "nativeSrc": "10292:30:6", + "nodeType": "YulIdentifier", + "src": "10292:30:6" + }, + "nativeSrc": "10292:59:6", + "nodeType": "YulFunctionCall", + "src": "10292:59:6" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "10267:6:6", + "nodeType": "YulIdentifier", + "src": "10267:6:6" + }, + "nativeSrc": "10267:85:6", + "nodeType": "YulFunctionCall", + "src": "10267:85:6" + }, + "nativeSrc": "10267:85:6", + "nodeType": "YulExpressionStatement", + "src": "10267:85:6" + } + ] + }, + { + "nativeSrc": "10373:322:6", + "nodeType": "YulBlock", + "src": "10373:322:6", + "statements": [ + { + "nativeSrc": "10408:47:6", + "nodeType": "YulVariableDeclaration", + "src": "10408:47:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10439:9:6", + "nodeType": "YulIdentifier", + "src": "10439:9:6" + }, + { + "kind": "number", + "nativeSrc": "10450:3:6", + "nodeType": "YulLiteral", + "src": "10450:3:6", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10435:3:6", + "nodeType": "YulIdentifier", + "src": "10435:3:6" + }, + "nativeSrc": "10435:19:6", + "nodeType": "YulFunctionCall", + "src": "10435:19:6" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "10422:12:6", + "nodeType": "YulIdentifier", + "src": "10422:12:6" + }, + "nativeSrc": "10422:33:6", + "nodeType": "YulFunctionCall", + "src": "10422:33:6" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "10412:6:6", + "nodeType": "YulTypedName", + "src": "10412:6:6", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "10502:83:6", + "nodeType": "YulBlock", + "src": "10502:83:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421", + "nativeSrc": "10504:77:6", + "nodeType": "YulIdentifier", + "src": "10504:77:6" + }, + "nativeSrc": "10504:79:6", + "nodeType": "YulFunctionCall", + "src": "10504:79:6" + }, + "nativeSrc": "10504:79:6", + "nodeType": "YulExpressionStatement", + "src": "10504:79:6" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "10474:6:6", + "nodeType": "YulIdentifier", + "src": "10474:6:6" + }, + { + "kind": "number", + "nativeSrc": "10482:18:6", + "nodeType": "YulLiteral", + "src": "10482:18:6", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "10471:2:6", + "nodeType": "YulIdentifier", + "src": "10471:2:6" + }, + "nativeSrc": "10471:30:6", + "nodeType": "YulFunctionCall", + "src": "10471:30:6" + }, + "nativeSrc": "10468:117:6", + "nodeType": "YulIf", + "src": "10468:117:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "10610:5:6", + "nodeType": "YulIdentifier", + "src": "10610:5:6" + }, + { + "kind": "number", + "nativeSrc": "10617:4:6", + "nodeType": "YulLiteral", + "src": "10617:4:6", + "type": "", + "value": "0x80" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10606:3:6", + "nodeType": "YulIdentifier", + "src": "10606:3:6" + }, + "nativeSrc": "10606:16:6", + "nodeType": "YulFunctionCall", + "src": "10606:16:6" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10659:9:6", + "nodeType": "YulIdentifier", + "src": "10659:9:6" + }, + { + "name": "offset", + "nativeSrc": "10670:6:6", + "nodeType": "YulIdentifier", + "src": "10670:6:6" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10655:3:6", + "nodeType": "YulIdentifier", + "src": "10655:3:6" + }, + "nativeSrc": "10655:22:6", + "nodeType": "YulFunctionCall", + "src": "10655:22:6" + }, + { + "name": "end", + "nativeSrc": "10679:3:6", + "nodeType": "YulIdentifier", + "src": "10679:3:6" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr", + "nativeSrc": "10624:30:6", + "nodeType": "YulIdentifier", + "src": "10624:30:6" + }, + "nativeSrc": "10624:59:6", + "nodeType": "YulFunctionCall", + "src": "10624:59:6" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "10599:6:6", + "nodeType": "YulIdentifier", + "src": "10599:6:6" + }, + "nativeSrc": "10599:85:6", + "nodeType": "YulFunctionCall", + "src": "10599:85:6" + }, + "nativeSrc": "10599:85:6", + "nodeType": "YulExpressionStatement", + "src": "10599:85:6" + } + ] + }, + { + "nativeSrc": "10705:324:6", + "nodeType": "YulBlock", + "src": "10705:324:6", + "statements": [ + { + "nativeSrc": "10742:47:6", + "nodeType": "YulVariableDeclaration", + "src": "10742:47:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10773:9:6", + "nodeType": "YulIdentifier", + "src": "10773:9:6" + }, + { + "kind": "number", + "nativeSrc": "10784:3:6", + "nodeType": "YulLiteral", + "src": "10784:3:6", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10769:3:6", + "nodeType": "YulIdentifier", + "src": "10769:3:6" + }, + "nativeSrc": "10769:19:6", + "nodeType": "YulFunctionCall", + "src": "10769:19:6" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "10756:12:6", + "nodeType": "YulIdentifier", + "src": "10756:12:6" + }, + "nativeSrc": "10756:33:6", + "nodeType": "YulFunctionCall", + "src": "10756:33:6" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "10746:6:6", + "nodeType": "YulTypedName", + "src": "10746:6:6", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "10836:83:6", + "nodeType": "YulBlock", + "src": "10836:83:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421", + "nativeSrc": "10838:77:6", + "nodeType": "YulIdentifier", + "src": "10838:77:6" + }, + "nativeSrc": "10838:79:6", + "nodeType": "YulFunctionCall", + "src": "10838:79:6" + }, + "nativeSrc": "10838:79:6", + "nodeType": "YulExpressionStatement", + "src": "10838:79:6" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "10808:6:6", + "nodeType": "YulIdentifier", + "src": "10808:6:6" + }, + { + "kind": "number", + "nativeSrc": "10816:18:6", + "nodeType": "YulLiteral", + "src": "10816:18:6", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "10805:2:6", + "nodeType": "YulIdentifier", + "src": "10805:2:6" + }, + "nativeSrc": "10805:30:6", + "nodeType": "YulFunctionCall", + "src": "10805:30:6" + }, + "nativeSrc": "10802:117:6", + "nodeType": "YulIf", + "src": "10802:117:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "10944:5:6", + "nodeType": "YulIdentifier", + "src": "10944:5:6" + }, + { + "kind": "number", + "nativeSrc": "10951:4:6", + "nodeType": "YulLiteral", + "src": "10951:4:6", + "type": "", + "value": "0xa0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10940:3:6", + "nodeType": "YulIdentifier", + "src": "10940:3:6" + }, + "nativeSrc": "10940:16:6", + "nodeType": "YulFunctionCall", + "src": "10940:16:6" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10993:9:6", + "nodeType": "YulIdentifier", + "src": "10993:9:6" + }, + { + "name": "offset", + "nativeSrc": "11004:6:6", + "nodeType": "YulIdentifier", + "src": "11004:6:6" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10989:3:6", + "nodeType": "YulIdentifier", + "src": "10989:3:6" + }, + "nativeSrc": "10989:22:6", + "nodeType": "YulFunctionCall", + "src": "10989:22:6" + }, + { + "name": "end", + "nativeSrc": "11013:3:6", + "nodeType": "YulIdentifier", + "src": "11013:3:6" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr", + "nativeSrc": "10958:30:6", + "nodeType": "YulIdentifier", + "src": "10958:30:6" + }, + "nativeSrc": "10958:59:6", + "nodeType": "YulFunctionCall", + "src": "10958:59:6" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "10933:6:6", + "nodeType": "YulIdentifier", + "src": "10933:6:6" + }, + "nativeSrc": "10933:85:6", + "nodeType": "YulFunctionCall", + "src": "10933:85:6" + }, + "nativeSrc": "10933:85:6", + "nodeType": "YulExpressionStatement", + "src": "10933:85:6" + } + ] + } + ] + }, + "name": "abi_decode_t_struct$_SignRequest_$463_memory_ptr", + "nativeSrc": "9123:1913:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "9181:9:6", + "nodeType": "YulTypedName", + "src": "9181:9:6", + "type": "" + }, + { + "name": "end", + "nativeSrc": "9192:3:6", + "nodeType": "YulTypedName", + "src": "9192:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "9200:5:6", + "nodeType": "YulTypedName", + "src": "9200:5:6", + "type": "" + } + ], + "src": "9123:1913:6" + }, + { + "body": { + "nativeSrc": "11136:451:6", + "nodeType": "YulBlock", + "src": "11136:451:6", + "statements": [ + { + "body": { + "nativeSrc": "11182:83:6", + "nodeType": "YulBlock", + "src": "11182:83:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "11184:77:6", + "nodeType": "YulIdentifier", + "src": "11184:77:6" + }, + "nativeSrc": "11184:79:6", + "nodeType": "YulFunctionCall", + "src": "11184:79:6" + }, + "nativeSrc": "11184:79:6", + "nodeType": "YulExpressionStatement", + "src": "11184:79:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "11157:7:6", + "nodeType": "YulIdentifier", + "src": "11157:7:6" + }, + { + "name": "headStart", + "nativeSrc": "11166:9:6", + "nodeType": "YulIdentifier", + "src": "11166:9:6" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "11153:3:6", + "nodeType": "YulIdentifier", + "src": "11153:3:6" + }, + "nativeSrc": "11153:23:6", + "nodeType": "YulFunctionCall", + "src": "11153:23:6" + }, + { + "kind": "number", + "nativeSrc": "11178:2:6", + "nodeType": "YulLiteral", + "src": "11178:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "11149:3:6", + "nodeType": "YulIdentifier", + "src": "11149:3:6" + }, + "nativeSrc": "11149:32:6", + "nodeType": "YulFunctionCall", + "src": "11149:32:6" + }, + "nativeSrc": "11146:119:6", + "nodeType": "YulIf", + "src": "11146:119:6" + }, + { + "nativeSrc": "11275:305:6", + "nodeType": "YulBlock", + "src": "11275:305:6", + "statements": [ + { + "nativeSrc": "11290:45:6", + "nodeType": "YulVariableDeclaration", + "src": "11290:45:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11321:9:6", + "nodeType": "YulIdentifier", + "src": "11321:9:6" + }, + { + "kind": "number", + "nativeSrc": "11332:1:6", + "nodeType": "YulLiteral", + "src": "11332:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11317:3:6", + "nodeType": "YulIdentifier", + "src": "11317:3:6" + }, + "nativeSrc": "11317:17:6", + "nodeType": "YulFunctionCall", + "src": "11317:17:6" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "11304:12:6", + "nodeType": "YulIdentifier", + "src": "11304:12:6" + }, + "nativeSrc": "11304:31:6", + "nodeType": "YulFunctionCall", + "src": "11304:31:6" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "11294:6:6", + "nodeType": "YulTypedName", + "src": "11294:6:6", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "11382:83:6", + "nodeType": "YulBlock", + "src": "11382:83:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "11384:77:6", + "nodeType": "YulIdentifier", + "src": "11384:77:6" + }, + "nativeSrc": "11384:79:6", + "nodeType": "YulFunctionCall", + "src": "11384:79:6" + }, + "nativeSrc": "11384:79:6", + "nodeType": "YulExpressionStatement", + "src": "11384:79:6" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "11354:6:6", + "nodeType": "YulIdentifier", + "src": "11354:6:6" + }, + { + "kind": "number", + "nativeSrc": "11362:18:6", + "nodeType": "YulLiteral", + "src": "11362:18:6", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "11351:2:6", + "nodeType": "YulIdentifier", + "src": "11351:2:6" + }, + "nativeSrc": "11351:30:6", + "nodeType": "YulFunctionCall", + "src": "11351:30:6" + }, + "nativeSrc": "11348:117:6", + "nodeType": "YulIf", + "src": "11348:117:6" + }, + { + "nativeSrc": "11479:91:6", + "nodeType": "YulAssignment", + "src": "11479:91:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11542:9:6", + "nodeType": "YulIdentifier", + "src": "11542:9:6" + }, + { + "name": "offset", + "nativeSrc": "11553:6:6", + "nodeType": "YulIdentifier", + "src": "11553:6:6" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11538:3:6", + "nodeType": "YulIdentifier", + "src": "11538:3:6" + }, + "nativeSrc": "11538:22:6", + "nodeType": "YulFunctionCall", + "src": "11538:22:6" + }, + { + "name": "dataEnd", + "nativeSrc": "11562:7:6", + "nodeType": "YulIdentifier", + "src": "11562:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_struct$_SignRequest_$463_memory_ptr", + "nativeSrc": "11489:48:6", + "nodeType": "YulIdentifier", + "src": "11489:48:6" + }, + "nativeSrc": "11489:81:6", + "nodeType": "YulFunctionCall", + "src": "11489:81:6" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "11479:6:6", + "nodeType": "YulIdentifier", + "src": "11479:6:6" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_struct$_SignRequest_$463_memory_ptr", + "nativeSrc": "11042:545:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "11106:9:6", + "nodeType": "YulTypedName", + "src": "11106:9:6", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "11117:7:6", + "nodeType": "YulTypedName", + "src": "11117:7:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "11129:6:6", + "nodeType": "YulTypedName", + "src": "11129:6:6", + "type": "" + } + ], + "src": "11042:545:6" + }, + { + "body": { + "nativeSrc": "11658:53:6", + "nodeType": "YulBlock", + "src": "11658:53:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "11675:3:6", + "nodeType": "YulIdentifier", + "src": "11675:3:6" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "11698:5:6", + "nodeType": "YulIdentifier", + "src": "11698:5:6" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "11680:17:6", + "nodeType": "YulIdentifier", + "src": "11680:17:6" + }, + "nativeSrc": "11680:24:6", + "nodeType": "YulFunctionCall", + "src": "11680:24:6" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "11668:6:6", + "nodeType": "YulIdentifier", + "src": "11668:6:6" + }, + "nativeSrc": "11668:37:6", + "nodeType": "YulFunctionCall", + "src": "11668:37:6" + }, + "nativeSrc": "11668:37:6", + "nodeType": "YulExpressionStatement", + "src": "11668:37:6" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "11593:118:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "11646:5:6", + "nodeType": "YulTypedName", + "src": "11646:5:6", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "11653:3:6", + "nodeType": "YulTypedName", + "src": "11653:3:6", + "type": "" + } + ], + "src": "11593:118:6" + }, + { + "body": { + "nativeSrc": "11815:124:6", + "nodeType": "YulBlock", + "src": "11815:124:6", + "statements": [ + { + "nativeSrc": "11825:26:6", + "nodeType": "YulAssignment", + "src": "11825:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11837:9:6", + "nodeType": "YulIdentifier", + "src": "11837:9:6" + }, + { + "kind": "number", + "nativeSrc": "11848:2:6", + "nodeType": "YulLiteral", + "src": "11848:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11833:3:6", + "nodeType": "YulIdentifier", + "src": "11833:3:6" + }, + "nativeSrc": "11833:18:6", + "nodeType": "YulFunctionCall", + "src": "11833:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "11825:4:6", + "nodeType": "YulIdentifier", + "src": "11825:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "11905:6:6", + "nodeType": "YulIdentifier", + "src": "11905:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11918:9:6", + "nodeType": "YulIdentifier", + "src": "11918:9:6" + }, + { + "kind": "number", + "nativeSrc": "11929:1:6", + "nodeType": "YulLiteral", + "src": "11929:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11914:3:6", + "nodeType": "YulIdentifier", + "src": "11914:3:6" + }, + "nativeSrc": "11914:17:6", + "nodeType": "YulFunctionCall", + "src": "11914:17:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "11861:43:6", + "nodeType": "YulIdentifier", + "src": "11861:43:6" + }, + "nativeSrc": "11861:71:6", + "nodeType": "YulFunctionCall", + "src": "11861:71:6" + }, + "nativeSrc": "11861:71:6", + "nodeType": "YulExpressionStatement", + "src": "11861:71:6" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nativeSrc": "11717:222:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "11787:9:6", + "nodeType": "YulTypedName", + "src": "11787:9:6", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "11799:6:6", + "nodeType": "YulTypedName", + "src": "11799:6:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "11810:4:6", + "nodeType": "YulTypedName", + "src": "11810:4:6", + "type": "" + } + ], + "src": "11717:222:6" + }, + { + "body": { + "nativeSrc": "12103:478:6", + "nodeType": "YulBlock", + "src": "12103:478:6", + "statements": [ + { + "body": { + "nativeSrc": "12152:83:6", + "nodeType": "YulBlock", + "src": "12152:83:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "12154:77:6", + "nodeType": "YulIdentifier", + "src": "12154:77:6" + }, + "nativeSrc": "12154:79:6", + "nodeType": "YulFunctionCall", + "src": "12154:79:6" + }, + "nativeSrc": "12154:79:6", + "nodeType": "YulExpressionStatement", + "src": "12154:79:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "12131:6:6", + "nodeType": "YulIdentifier", + "src": "12131:6:6" + }, + { + "kind": "number", + "nativeSrc": "12139:4:6", + "nodeType": "YulLiteral", + "src": "12139:4:6", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12127:3:6", + "nodeType": "YulIdentifier", + "src": "12127:3:6" + }, + "nativeSrc": "12127:17:6", + "nodeType": "YulFunctionCall", + "src": "12127:17:6" + }, + { + "name": "end", + "nativeSrc": "12146:3:6", + "nodeType": "YulIdentifier", + "src": "12146:3:6" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "12123:3:6", + "nodeType": "YulIdentifier", + "src": "12123:3:6" + }, + "nativeSrc": "12123:27:6", + "nodeType": "YulFunctionCall", + "src": "12123:27:6" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "12116:6:6", + "nodeType": "YulIdentifier", + "src": "12116:6:6" + }, + "nativeSrc": "12116:35:6", + "nodeType": "YulFunctionCall", + "src": "12116:35:6" + }, + "nativeSrc": "12113:122:6", + "nodeType": "YulIf", + "src": "12113:122:6" + }, + { + "nativeSrc": "12244:30:6", + "nodeType": "YulAssignment", + "src": "12244:30:6", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "12267:6:6", + "nodeType": "YulIdentifier", + "src": "12267:6:6" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "12254:12:6", + "nodeType": "YulIdentifier", + "src": "12254:12:6" + }, + "nativeSrc": "12254:20:6", + "nodeType": "YulFunctionCall", + "src": "12254:20:6" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "12244:6:6", + "nodeType": "YulIdentifier", + "src": "12244:6:6" + } + ] + }, + { + "body": { + "nativeSrc": "12317:83:6", + "nodeType": "YulBlock", + "src": "12317:83:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490", + "nativeSrc": "12319:77:6", + "nodeType": "YulIdentifier", + "src": "12319:77:6" + }, + "nativeSrc": "12319:79:6", + "nodeType": "YulFunctionCall", + "src": "12319:79:6" + }, + "nativeSrc": "12319:79:6", + "nodeType": "YulExpressionStatement", + "src": "12319:79:6" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "12289:6:6", + "nodeType": "YulIdentifier", + "src": "12289:6:6" + }, + { + "kind": "number", + "nativeSrc": "12297:18:6", + "nodeType": "YulLiteral", + "src": "12297:18:6", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "12286:2:6", + "nodeType": "YulIdentifier", + "src": "12286:2:6" + }, + "nativeSrc": "12286:30:6", + "nodeType": "YulFunctionCall", + "src": "12286:30:6" + }, + "nativeSrc": "12283:117:6", + "nodeType": "YulIf", + "src": "12283:117:6" + }, + { + "nativeSrc": "12409:29:6", + "nodeType": "YulAssignment", + "src": "12409:29:6", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "12425:6:6", + "nodeType": "YulIdentifier", + "src": "12425:6:6" + }, + { + "kind": "number", + "nativeSrc": "12433:4:6", + "nodeType": "YulLiteral", + "src": "12433:4:6", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12421:3:6", + "nodeType": "YulIdentifier", + "src": "12421:3:6" + }, + "nativeSrc": "12421:17:6", + "nodeType": "YulFunctionCall", + "src": "12421:17:6" + }, + "variableNames": [ + { + "name": "arrayPos", + "nativeSrc": "12409:8:6", + "nodeType": "YulIdentifier", + "src": "12409:8:6" + } + ] + }, + { + "body": { + "nativeSrc": "12492:83:6", + "nodeType": "YulBlock", + "src": "12492:83:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", + "nativeSrc": "12494:77:6", + "nodeType": "YulIdentifier", + "src": "12494:77:6" + }, + "nativeSrc": "12494:79:6", + "nodeType": "YulFunctionCall", + "src": "12494:79:6" + }, + "nativeSrc": "12494:79:6", + "nodeType": "YulExpressionStatement", + "src": "12494:79:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "arrayPos", + "nativeSrc": "12457:8:6", + "nodeType": "YulIdentifier", + "src": "12457:8:6" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "12471:6:6", + "nodeType": "YulIdentifier", + "src": "12471:6:6" + }, + { + "kind": "number", + "nativeSrc": "12479:4:6", + "nodeType": "YulLiteral", + "src": "12479:4:6", + "type": "", + "value": "0xa0" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "12467:3:6", + "nodeType": "YulIdentifier", + "src": "12467:3:6" + }, + "nativeSrc": "12467:17:6", + "nodeType": "YulFunctionCall", + "src": "12467:17:6" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12453:3:6", + "nodeType": "YulIdentifier", + "src": "12453:3:6" + }, + "nativeSrc": "12453:32:6", + "nodeType": "YulFunctionCall", + "src": "12453:32:6" + }, + { + "name": "end", + "nativeSrc": "12487:3:6", + "nodeType": "YulIdentifier", + "src": "12487:3:6" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "12450:2:6", + "nodeType": "YulIdentifier", + "src": "12450:2:6" + }, + "nativeSrc": "12450:41:6", + "nodeType": "YulFunctionCall", + "src": "12450:41:6" + }, + "nativeSrc": "12447:128:6", + "nodeType": "YulIf", + "src": "12447:128:6" + } + ] + }, + "name": "abi_decode_t_array$_t_struct$_Response_$482_calldata_ptr_$dyn_calldata_ptr", + "nativeSrc": "11986:595:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "12070:6:6", + "nodeType": "YulTypedName", + "src": "12070:6:6", + "type": "" + }, + { + "name": "end", + "nativeSrc": "12078:3:6", + "nodeType": "YulTypedName", + "src": "12078:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "arrayPos", + "nativeSrc": "12086:8:6", + "nodeType": "YulTypedName", + "src": "12086:8:6", + "type": "" + }, + { + "name": "length", + "nativeSrc": "12096:6:6", + "nodeType": "YulTypedName", + "src": "12096:6:6", + "type": "" + } + ], + "src": "11986:595:6" + }, + { + "body": { + "nativeSrc": "12715:485:6", + "nodeType": "YulBlock", + "src": "12715:485:6", + "statements": [ + { + "body": { + "nativeSrc": "12761:83:6", + "nodeType": "YulBlock", + "src": "12761:83:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "12763:77:6", + "nodeType": "YulIdentifier", + "src": "12763:77:6" + }, + "nativeSrc": "12763:79:6", + "nodeType": "YulFunctionCall", + "src": "12763:79:6" + }, + "nativeSrc": "12763:79:6", + "nodeType": "YulExpressionStatement", + "src": "12763:79:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "12736:7:6", + "nodeType": "YulIdentifier", + "src": "12736:7:6" + }, + { + "name": "headStart", + "nativeSrc": "12745:9:6", + "nodeType": "YulIdentifier", + "src": "12745:9:6" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "12732:3:6", + "nodeType": "YulIdentifier", + "src": "12732:3:6" + }, + "nativeSrc": "12732:23:6", + "nodeType": "YulFunctionCall", + "src": "12732:23:6" + }, + { + "kind": "number", + "nativeSrc": "12757:2:6", + "nodeType": "YulLiteral", + "src": "12757:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "12728:3:6", + "nodeType": "YulIdentifier", + "src": "12728:3:6" + }, + "nativeSrc": "12728:32:6", + "nodeType": "YulFunctionCall", + "src": "12728:32:6" + }, + "nativeSrc": "12725:119:6", + "nodeType": "YulIf", + "src": "12725:119:6" + }, + { + "nativeSrc": "12854:339:6", + "nodeType": "YulBlock", + "src": "12854:339:6", + "statements": [ + { + "nativeSrc": "12869:45:6", + "nodeType": "YulVariableDeclaration", + "src": "12869:45:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12900:9:6", + "nodeType": "YulIdentifier", + "src": "12900:9:6" + }, + { + "kind": "number", + "nativeSrc": "12911:1:6", + "nodeType": "YulLiteral", + "src": "12911:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12896:3:6", + "nodeType": "YulIdentifier", + "src": "12896:3:6" + }, + "nativeSrc": "12896:17:6", + "nodeType": "YulFunctionCall", + "src": "12896:17:6" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "12883:12:6", + "nodeType": "YulIdentifier", + "src": "12883:12:6" + }, + "nativeSrc": "12883:31:6", + "nodeType": "YulFunctionCall", + "src": "12883:31:6" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "12873:6:6", + "nodeType": "YulTypedName", + "src": "12873:6:6", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "12961:83:6", + "nodeType": "YulBlock", + "src": "12961:83:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "12963:77:6", + "nodeType": "YulIdentifier", + "src": "12963:77:6" + }, + "nativeSrc": "12963:79:6", + "nodeType": "YulFunctionCall", + "src": "12963:79:6" + }, + "nativeSrc": "12963:79:6", + "nodeType": "YulExpressionStatement", + "src": "12963:79:6" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "12933:6:6", + "nodeType": "YulIdentifier", + "src": "12933:6:6" + }, + { + "kind": "number", + "nativeSrc": "12941:18:6", + "nodeType": "YulLiteral", + "src": "12941:18:6", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "12930:2:6", + "nodeType": "YulIdentifier", + "src": "12930:2:6" + }, + "nativeSrc": "12930:30:6", + "nodeType": "YulFunctionCall", + "src": "12930:30:6" + }, + "nativeSrc": "12927:117:6", + "nodeType": "YulIf", + "src": "12927:117:6" + }, + { + "nativeSrc": "13058:125:6", + "nodeType": "YulAssignment", + "src": "13058:125:6", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13155:9:6", + "nodeType": "YulIdentifier", + "src": "13155:9:6" + }, + { + "name": "offset", + "nativeSrc": "13166:6:6", + "nodeType": "YulIdentifier", + "src": "13166:6:6" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13151:3:6", + "nodeType": "YulIdentifier", + "src": "13151:3:6" + }, + "nativeSrc": "13151:22:6", + "nodeType": "YulFunctionCall", + "src": "13151:22:6" + }, + { + "name": "dataEnd", + "nativeSrc": "13175:7:6", + "nodeType": "YulIdentifier", + "src": "13175:7:6" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_struct$_Response_$482_calldata_ptr_$dyn_calldata_ptr", + "nativeSrc": "13076:74:6", + "nodeType": "YulIdentifier", + "src": "13076:74:6" + }, + "nativeSrc": "13076:107:6", + "nodeType": "YulFunctionCall", + "src": "13076:107:6" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "13058:6:6", + "nodeType": "YulIdentifier", + "src": "13058:6:6" + }, + { + "name": "value1", + "nativeSrc": "13066:6:6", + "nodeType": "YulIdentifier", + "src": "13066:6:6" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_array$_t_struct$_Response_$482_calldata_ptr_$dyn_calldata_ptr", + "nativeSrc": "12587:613:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "12677:9:6", + "nodeType": "YulTypedName", + "src": "12677:9:6", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "12688:7:6", + "nodeType": "YulTypedName", + "src": "12688:7:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "12700:6:6", + "nodeType": "YulTypedName", + "src": "12700:6:6", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "12708:6:6", + "nodeType": "YulTypedName", + "src": "12708:6:6", + "type": "" + } + ], + "src": "12587:613:6" + }, + { + "body": { + "nativeSrc": "13302:73:6", + "nodeType": "YulBlock", + "src": "13302:73:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "13319:3:6", + "nodeType": "YulIdentifier", + "src": "13319:3:6" + }, + { + "name": "length", + "nativeSrc": "13324:6:6", + "nodeType": "YulIdentifier", + "src": "13324:6:6" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "13312:6:6", + "nodeType": "YulIdentifier", + "src": "13312:6:6" + }, + "nativeSrc": "13312:19:6", + "nodeType": "YulFunctionCall", + "src": "13312:19:6" + }, + "nativeSrc": "13312:19:6", + "nodeType": "YulExpressionStatement", + "src": "13312:19:6" + }, + { + "nativeSrc": "13340:29:6", + "nodeType": "YulAssignment", + "src": "13340:29:6", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "13359:3:6", + "nodeType": "YulIdentifier", + "src": "13359:3:6" + }, + { + "kind": "number", + "nativeSrc": "13364:4:6", + "nodeType": "YulLiteral", + "src": "13364:4:6", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13355:3:6", + "nodeType": "YulIdentifier", + "src": "13355:3:6" + }, + "nativeSrc": "13355:14:6", + "nodeType": "YulFunctionCall", + "src": "13355:14:6" + }, + "variableNames": [ + { + "name": "updated_pos", + "nativeSrc": "13340:11:6", + "nodeType": "YulIdentifier", + "src": "13340:11:6" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "13206:169:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "13274:3:6", + "nodeType": "YulTypedName", + "src": "13274:3:6", + "type": "" + }, + { + "name": "length", + "nativeSrc": "13279:6:6", + "nodeType": "YulTypedName", + "src": "13279:6:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nativeSrc": "13290:11:6", + "nodeType": "YulTypedName", + "src": "13290:11:6", + "type": "" + } + ], + "src": "13206:169:6" + }, + { + "body": { + "nativeSrc": "13487:68:6", + "nodeType": "YulBlock", + "src": "13487:68:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "13509:6:6", + "nodeType": "YulIdentifier", + "src": "13509:6:6" + }, + { + "kind": "number", + "nativeSrc": "13517:1:6", + "nodeType": "YulLiteral", + "src": "13517:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13505:3:6", + "nodeType": "YulIdentifier", + "src": "13505:3:6" + }, + "nativeSrc": "13505:14:6", + "nodeType": "YulFunctionCall", + "src": "13505:14:6" + }, + { + "hexValue": "496e76616c69642072656365697665722061646472657373", + "kind": "string", + "nativeSrc": "13521:26:6", + "nodeType": "YulLiteral", + "src": "13521:26:6", + "type": "", + "value": "Invalid receiver address" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "13498:6:6", + "nodeType": "YulIdentifier", + "src": "13498:6:6" + }, + "nativeSrc": "13498:50:6", + "nodeType": "YulFunctionCall", + "src": "13498:50:6" + }, + "nativeSrc": "13498:50:6", + "nodeType": "YulExpressionStatement", + "src": "13498:50:6" + } + ] + }, + "name": "store_literal_in_memory_5cbb24ca678c0bc148b6d1d734942e230f1d3686258ae74c758d5ae27e1715ef", + "nativeSrc": "13381:174:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "13479:6:6", + "nodeType": "YulTypedName", + "src": "13479:6:6", + "type": "" + } + ], + "src": "13381:174:6" + }, + { + "body": { + "nativeSrc": "13707:220:6", + "nodeType": "YulBlock", + "src": "13707:220:6", + "statements": [ + { + "nativeSrc": "13717:74:6", + "nodeType": "YulAssignment", + "src": "13717:74:6", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "13783:3:6", + "nodeType": "YulIdentifier", + "src": "13783:3:6" + }, + { + "kind": "number", + "nativeSrc": "13788:2:6", + "nodeType": "YulLiteral", + "src": "13788:2:6", + "type": "", + "value": "24" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "13724:58:6", + "nodeType": "YulIdentifier", + "src": "13724:58:6" + }, + "nativeSrc": "13724:67:6", + "nodeType": "YulFunctionCall", + "src": "13724:67:6" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "13717:3:6", + "nodeType": "YulIdentifier", + "src": "13717:3:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "13889:3:6", + "nodeType": "YulIdentifier", + "src": "13889:3:6" + } + ], + "functionName": { + "name": "store_literal_in_memory_5cbb24ca678c0bc148b6d1d734942e230f1d3686258ae74c758d5ae27e1715ef", + "nativeSrc": "13800:88:6", + "nodeType": "YulIdentifier", + "src": "13800:88:6" + }, + "nativeSrc": "13800:93:6", + "nodeType": "YulFunctionCall", + "src": "13800:93:6" + }, + "nativeSrc": "13800:93:6", + "nodeType": "YulExpressionStatement", + "src": "13800:93:6" + }, + { + "nativeSrc": "13902:19:6", + "nodeType": "YulAssignment", + "src": "13902:19:6", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "13913:3:6", + "nodeType": "YulIdentifier", + "src": "13913:3:6" + }, + { + "kind": "number", + "nativeSrc": "13918:2:6", + "nodeType": "YulLiteral", + "src": "13918:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13909:3:6", + "nodeType": "YulIdentifier", + "src": "13909:3:6" + }, + "nativeSrc": "13909:12:6", + "nodeType": "YulFunctionCall", + "src": "13909:12:6" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "13902:3:6", + "nodeType": "YulIdentifier", + "src": "13902:3:6" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_5cbb24ca678c0bc148b6d1d734942e230f1d3686258ae74c758d5ae27e1715ef_to_t_string_memory_ptr_fromStack", + "nativeSrc": "13561:366:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "13695:3:6", + "nodeType": "YulTypedName", + "src": "13695:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "13703:3:6", + "nodeType": "YulTypedName", + "src": "13703:3:6", + "type": "" + } + ], + "src": "13561:366:6" + }, + { + "body": { + "nativeSrc": "14104:248:6", + "nodeType": "YulBlock", + "src": "14104:248:6", + "statements": [ + { + "nativeSrc": "14114:26:6", + "nodeType": "YulAssignment", + "src": "14114:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "14126:9:6", + "nodeType": "YulIdentifier", + "src": "14126:9:6" + }, + { + "kind": "number", + "nativeSrc": "14137:2:6", + "nodeType": "YulLiteral", + "src": "14137:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14122:3:6", + "nodeType": "YulIdentifier", + "src": "14122:3:6" + }, + "nativeSrc": "14122:18:6", + "nodeType": "YulFunctionCall", + "src": "14122:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "14114:4:6", + "nodeType": "YulIdentifier", + "src": "14114:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "14161:9:6", + "nodeType": "YulIdentifier", + "src": "14161:9:6" + }, + { + "kind": "number", + "nativeSrc": "14172:1:6", + "nodeType": "YulLiteral", + "src": "14172:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14157:3:6", + "nodeType": "YulIdentifier", + "src": "14157:3:6" + }, + "nativeSrc": "14157:17:6", + "nodeType": "YulFunctionCall", + "src": "14157:17:6" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "14180:4:6", + "nodeType": "YulIdentifier", + "src": "14180:4:6" + }, + { + "name": "headStart", + "nativeSrc": "14186:9:6", + "nodeType": "YulIdentifier", + "src": "14186:9:6" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "14176:3:6", + "nodeType": "YulIdentifier", + "src": "14176:3:6" + }, + "nativeSrc": "14176:20:6", + "nodeType": "YulFunctionCall", + "src": "14176:20:6" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "14150:6:6", + "nodeType": "YulIdentifier", + "src": "14150:6:6" + }, + "nativeSrc": "14150:47:6", + "nodeType": "YulFunctionCall", + "src": "14150:47:6" + }, + "nativeSrc": "14150:47:6", + "nodeType": "YulExpressionStatement", + "src": "14150:47:6" + }, + { + "nativeSrc": "14206:139:6", + "nodeType": "YulAssignment", + "src": "14206:139:6", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "14340:4:6", + "nodeType": "YulIdentifier", + "src": "14340:4:6" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_5cbb24ca678c0bc148b6d1d734942e230f1d3686258ae74c758d5ae27e1715ef_to_t_string_memory_ptr_fromStack", + "nativeSrc": "14214:124:6", + "nodeType": "YulIdentifier", + "src": "14214:124:6" + }, + "nativeSrc": "14214:131:6", + "nodeType": "YulFunctionCall", + "src": "14214:131:6" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "14206:4:6", + "nodeType": "YulIdentifier", + "src": "14206:4:6" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_5cbb24ca678c0bc148b6d1d734942e230f1d3686258ae74c758d5ae27e1715ef__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "13933:419:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "14084:9:6", + "nodeType": "YulTypedName", + "src": "14084:9:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "14099:4:6", + "nodeType": "YulTypedName", + "src": "14099:4:6", + "type": "" + } + ], + "src": "13933:419:6" + }, + { + "body": { + "nativeSrc": "14464:143:6", + "nodeType": "YulBlock", + "src": "14464:143:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "14486:6:6", + "nodeType": "YulIdentifier", + "src": "14486:6:6" + }, + { + "kind": "number", + "nativeSrc": "14494:1:6", + "nodeType": "YulLiteral", + "src": "14494:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14482:3:6", + "nodeType": "YulIdentifier", + "src": "14482:3:6" + }, + "nativeSrc": "14482:14:6", + "nodeType": "YulFunctionCall", + "src": "14482:14:6" + }, + { + "hexValue": "576974686472617720616d6f756e74206d75737420626520736d616c6c657220", + "kind": "string", + "nativeSrc": "14498:34:6", + "nodeType": "YulLiteral", + "src": "14498:34:6", + "type": "", + "value": "Withdraw amount must be smaller " + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "14475:6:6", + "nodeType": "YulIdentifier", + "src": "14475:6:6" + }, + "nativeSrc": "14475:58:6", + "nodeType": "YulFunctionCall", + "src": "14475:58:6" + }, + "nativeSrc": "14475:58:6", + "nodeType": "YulExpressionStatement", + "src": "14475:58:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "14554:6:6", + "nodeType": "YulIdentifier", + "src": "14554:6:6" + }, + { + "kind": "number", + "nativeSrc": "14562:2:6", + "nodeType": "YulLiteral", + "src": "14562:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14550:3:6", + "nodeType": "YulIdentifier", + "src": "14550:3:6" + }, + "nativeSrc": "14550:15:6", + "nodeType": "YulFunctionCall", + "src": "14550:15:6" + }, + { + "hexValue": "7468616e20746f74616c2062616c616e636520696e20636f6e7472616374", + "kind": "string", + "nativeSrc": "14567:32:6", + "nodeType": "YulLiteral", + "src": "14567:32:6", + "type": "", + "value": "than total balance in contract" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "14543:6:6", + "nodeType": "YulIdentifier", + "src": "14543:6:6" + }, + "nativeSrc": "14543:57:6", + "nodeType": "YulFunctionCall", + "src": "14543:57:6" + }, + "nativeSrc": "14543:57:6", + "nodeType": "YulExpressionStatement", + "src": "14543:57:6" + } + ] + }, + "name": "store_literal_in_memory_4f0d1e793d33195774e5dfb612185a73ecb950f1d617bffa7795fc28978dd45a", + "nativeSrc": "14358:249:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "14456:6:6", + "nodeType": "YulTypedName", + "src": "14456:6:6", + "type": "" + } + ], + "src": "14358:249:6" + }, + { + "body": { + "nativeSrc": "14759:220:6", + "nodeType": "YulBlock", + "src": "14759:220:6", + "statements": [ + { + "nativeSrc": "14769:74:6", + "nodeType": "YulAssignment", + "src": "14769:74:6", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "14835:3:6", + "nodeType": "YulIdentifier", + "src": "14835:3:6" + }, + { + "kind": "number", + "nativeSrc": "14840:2:6", + "nodeType": "YulLiteral", + "src": "14840:2:6", + "type": "", + "value": "62" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "14776:58:6", + "nodeType": "YulIdentifier", + "src": "14776:58:6" + }, + "nativeSrc": "14776:67:6", + "nodeType": "YulFunctionCall", + "src": "14776:67:6" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "14769:3:6", + "nodeType": "YulIdentifier", + "src": "14769:3:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "14941:3:6", + "nodeType": "YulIdentifier", + "src": "14941:3:6" + } + ], + "functionName": { + "name": "store_literal_in_memory_4f0d1e793d33195774e5dfb612185a73ecb950f1d617bffa7795fc28978dd45a", + "nativeSrc": "14852:88:6", + "nodeType": "YulIdentifier", + "src": "14852:88:6" + }, + "nativeSrc": "14852:93:6", + "nodeType": "YulFunctionCall", + "src": "14852:93:6" + }, + "nativeSrc": "14852:93:6", + "nodeType": "YulExpressionStatement", + "src": "14852:93:6" + }, + { + "nativeSrc": "14954:19:6", + "nodeType": "YulAssignment", + "src": "14954:19:6", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "14965:3:6", + "nodeType": "YulIdentifier", + "src": "14965:3:6" + }, + { + "kind": "number", + "nativeSrc": "14970:2:6", + "nodeType": "YulLiteral", + "src": "14970:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14961:3:6", + "nodeType": "YulIdentifier", + "src": "14961:3:6" + }, + "nativeSrc": "14961:12:6", + "nodeType": "YulFunctionCall", + "src": "14961:12:6" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "14954:3:6", + "nodeType": "YulIdentifier", + "src": "14954:3:6" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_4f0d1e793d33195774e5dfb612185a73ecb950f1d617bffa7795fc28978dd45a_to_t_string_memory_ptr_fromStack", + "nativeSrc": "14613:366:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "14747:3:6", + "nodeType": "YulTypedName", + "src": "14747:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "14755:3:6", + "nodeType": "YulTypedName", + "src": "14755:3:6", + "type": "" + } + ], + "src": "14613:366:6" + }, + { + "body": { + "nativeSrc": "15156:248:6", + "nodeType": "YulBlock", + "src": "15156:248:6", + "statements": [ + { + "nativeSrc": "15166:26:6", + "nodeType": "YulAssignment", + "src": "15166:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "15178:9:6", + "nodeType": "YulIdentifier", + "src": "15178:9:6" + }, + { + "kind": "number", + "nativeSrc": "15189:2:6", + "nodeType": "YulLiteral", + "src": "15189:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15174:3:6", + "nodeType": "YulIdentifier", + "src": "15174:3:6" + }, + "nativeSrc": "15174:18:6", + "nodeType": "YulFunctionCall", + "src": "15174:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "15166:4:6", + "nodeType": "YulIdentifier", + "src": "15166:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "15213:9:6", + "nodeType": "YulIdentifier", + "src": "15213:9:6" + }, + { + "kind": "number", + "nativeSrc": "15224:1:6", + "nodeType": "YulLiteral", + "src": "15224:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15209:3:6", + "nodeType": "YulIdentifier", + "src": "15209:3:6" + }, + "nativeSrc": "15209:17:6", + "nodeType": "YulFunctionCall", + "src": "15209:17:6" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "15232:4:6", + "nodeType": "YulIdentifier", + "src": "15232:4:6" + }, + { + "name": "headStart", + "nativeSrc": "15238:9:6", + "nodeType": "YulIdentifier", + "src": "15238:9:6" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "15228:3:6", + "nodeType": "YulIdentifier", + "src": "15228:3:6" + }, + "nativeSrc": "15228:20:6", + "nodeType": "YulFunctionCall", + "src": "15228:20:6" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "15202:6:6", + "nodeType": "YulIdentifier", + "src": "15202:6:6" + }, + "nativeSrc": "15202:47:6", + "nodeType": "YulFunctionCall", + "src": "15202:47:6" + }, + "nativeSrc": "15202:47:6", + "nodeType": "YulExpressionStatement", + "src": "15202:47:6" + }, + { + "nativeSrc": "15258:139:6", + "nodeType": "YulAssignment", + "src": "15258:139:6", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "15392:4:6", + "nodeType": "YulIdentifier", + "src": "15392:4:6" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_4f0d1e793d33195774e5dfb612185a73ecb950f1d617bffa7795fc28978dd45a_to_t_string_memory_ptr_fromStack", + "nativeSrc": "15266:124:6", + "nodeType": "YulIdentifier", + "src": "15266:124:6" + }, + "nativeSrc": "15266:131:6", + "nodeType": "YulFunctionCall", + "src": "15266:131:6" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "15258:4:6", + "nodeType": "YulIdentifier", + "src": "15258:4:6" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_4f0d1e793d33195774e5dfb612185a73ecb950f1d617bffa7795fc28978dd45a__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "14985:419:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "15136:9:6", + "nodeType": "YulTypedName", + "src": "15136:9:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "15151:4:6", + "nodeType": "YulTypedName", + "src": "15151:4:6", + "type": "" + } + ], + "src": "14985:419:6" + }, + { + "body": { + "nativeSrc": "15523:34:6", + "nodeType": "YulBlock", + "src": "15523:34:6", + "statements": [ + { + "nativeSrc": "15533:18:6", + "nodeType": "YulAssignment", + "src": "15533:18:6", + "value": { + "name": "pos", + "nativeSrc": "15548:3:6", + "nodeType": "YulIdentifier", + "src": "15548:3:6" + }, + "variableNames": [ + { + "name": "updated_pos", + "nativeSrc": "15533:11:6", + "nodeType": "YulIdentifier", + "src": "15533:11:6" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "15410:147:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "15495:3:6", + "nodeType": "YulTypedName", + "src": "15495:3:6", + "type": "" + }, + { + "name": "length", + "nativeSrc": "15500:6:6", + "nodeType": "YulTypedName", + "src": "15500:6:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nativeSrc": "15511:11:6", + "nodeType": "YulTypedName", + "src": "15511:11:6", + "type": "" + } + ], + "src": "15410:147:6" + }, + { + "body": { + "nativeSrc": "15669:8:6", + "nodeType": "YulBlock", + "src": "15669:8:6", + "statements": [] + }, + "name": "store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nativeSrc": "15563:114:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "15661:6:6", + "nodeType": "YulTypedName", + "src": "15661:6:6", + "type": "" + } + ], + "src": "15563:114:6" + }, + { + "body": { + "nativeSrc": "15846:235:6", + "nodeType": "YulBlock", + "src": "15846:235:6", + "statements": [ + { + "nativeSrc": "15856:90:6", + "nodeType": "YulAssignment", + "src": "15856:90:6", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "15939:3:6", + "nodeType": "YulIdentifier", + "src": "15939:3:6" + }, + { + "kind": "number", + "nativeSrc": "15944:1:6", + "nodeType": "YulLiteral", + "src": "15944:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "15863:75:6", + "nodeType": "YulIdentifier", + "src": "15863:75:6" + }, + "nativeSrc": "15863:83:6", + "nodeType": "YulFunctionCall", + "src": "15863:83:6" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "15856:3:6", + "nodeType": "YulIdentifier", + "src": "15856:3:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "16044:3:6", + "nodeType": "YulIdentifier", + "src": "16044:3:6" + } + ], + "functionName": { + "name": "store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "nativeSrc": "15955:88:6", + "nodeType": "YulIdentifier", + "src": "15955:88:6" + }, + "nativeSrc": "15955:93:6", + "nodeType": "YulFunctionCall", + "src": "15955:93:6" + }, + "nativeSrc": "15955:93:6", + "nodeType": "YulExpressionStatement", + "src": "15955:93:6" + }, + { + "nativeSrc": "16057:18:6", + "nodeType": "YulAssignment", + "src": "16057:18:6", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "16068:3:6", + "nodeType": "YulIdentifier", + "src": "16068:3:6" + }, + { + "kind": "number", + "nativeSrc": "16073:1:6", + "nodeType": "YulLiteral", + "src": "16073:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16064:3:6", + "nodeType": "YulIdentifier", + "src": "16064:3:6" + }, + "nativeSrc": "16064:11:6", + "nodeType": "YulFunctionCall", + "src": "16064:11:6" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "16057:3:6", + "nodeType": "YulIdentifier", + "src": "16057:3:6" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "15683:398:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "15834:3:6", + "nodeType": "YulTypedName", + "src": "15834:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "15842:3:6", + "nodeType": "YulTypedName", + "src": "15842:3:6", + "type": "" + } + ], + "src": "15683:398:6" + }, + { + "body": { + "nativeSrc": "16275:191:6", + "nodeType": "YulBlock", + "src": "16275:191:6", + "statements": [ + { + "nativeSrc": "16286:154:6", + "nodeType": "YulAssignment", + "src": "16286:154:6", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "16436:3:6", + "nodeType": "YulIdentifier", + "src": "16436:3:6" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "16293:141:6", + "nodeType": "YulIdentifier", + "src": "16293:141:6" + }, + "nativeSrc": "16293:147:6", + "nodeType": "YulFunctionCall", + "src": "16293:147:6" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "16286:3:6", + "nodeType": "YulIdentifier", + "src": "16286:3:6" + } + ] + }, + { + "nativeSrc": "16450:10:6", + "nodeType": "YulAssignment", + "src": "16450:10:6", + "value": { + "name": "pos", + "nativeSrc": "16457:3:6", + "nodeType": "YulIdentifier", + "src": "16457:3:6" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "16450:3:6", + "nodeType": "YulIdentifier", + "src": "16450:3:6" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed", + "nativeSrc": "16087:379:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "16262:3:6", + "nodeType": "YulTypedName", + "src": "16262:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "16271:3:6", + "nodeType": "YulTypedName", + "src": "16271:3:6", + "type": "" + } + ], + "src": "16087:379:6" + }, + { + "body": { + "nativeSrc": "16578:59:6", + "nodeType": "YulBlock", + "src": "16578:59:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "16600:6:6", + "nodeType": "YulIdentifier", + "src": "16600:6:6" + }, + { + "kind": "number", + "nativeSrc": "16608:1:6", + "nodeType": "YulLiteral", + "src": "16608:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16596:3:6", + "nodeType": "YulIdentifier", + "src": "16596:3:6" + }, + "nativeSrc": "16596:14:6", + "nodeType": "YulFunctionCall", + "src": "16596:14:6" + }, + { + "hexValue": "5472616e73666572206661696c6564", + "kind": "string", + "nativeSrc": "16612:17:6", + "nodeType": "YulLiteral", + "src": "16612:17:6", + "type": "", + "value": "Transfer failed" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "16589:6:6", + "nodeType": "YulIdentifier", + "src": "16589:6:6" + }, + "nativeSrc": "16589:41:6", + "nodeType": "YulFunctionCall", + "src": "16589:41:6" + }, + "nativeSrc": "16589:41:6", + "nodeType": "YulExpressionStatement", + "src": "16589:41:6" + } + ] + }, + "name": "store_literal_in_memory_25adaa6d082ce15f901e0d8a3d393e7462ef9edf2e6bc8321fa14d1615b6fc51", + "nativeSrc": "16472:165:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "16570:6:6", + "nodeType": "YulTypedName", + "src": "16570:6:6", + "type": "" + } + ], + "src": "16472:165:6" + }, + { + "body": { + "nativeSrc": "16789:220:6", + "nodeType": "YulBlock", + "src": "16789:220:6", + "statements": [ + { + "nativeSrc": "16799:74:6", + "nodeType": "YulAssignment", + "src": "16799:74:6", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "16865:3:6", + "nodeType": "YulIdentifier", + "src": "16865:3:6" + }, + { + "kind": "number", + "nativeSrc": "16870:2:6", + "nodeType": "YulLiteral", + "src": "16870:2:6", + "type": "", + "value": "15" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "16806:58:6", + "nodeType": "YulIdentifier", + "src": "16806:58:6" + }, + "nativeSrc": "16806:67:6", + "nodeType": "YulFunctionCall", + "src": "16806:67:6" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "16799:3:6", + "nodeType": "YulIdentifier", + "src": "16799:3:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "16971:3:6", + "nodeType": "YulIdentifier", + "src": "16971:3:6" + } + ], + "functionName": { + "name": "store_literal_in_memory_25adaa6d082ce15f901e0d8a3d393e7462ef9edf2e6bc8321fa14d1615b6fc51", + "nativeSrc": "16882:88:6", + "nodeType": "YulIdentifier", + "src": "16882:88:6" + }, + "nativeSrc": "16882:93:6", + "nodeType": "YulFunctionCall", + "src": "16882:93:6" + }, + "nativeSrc": "16882:93:6", + "nodeType": "YulExpressionStatement", + "src": "16882:93:6" + }, + { + "nativeSrc": "16984:19:6", + "nodeType": "YulAssignment", + "src": "16984:19:6", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "16995:3:6", + "nodeType": "YulIdentifier", + "src": "16995:3:6" + }, + { + "kind": "number", + "nativeSrc": "17000:2:6", + "nodeType": "YulLiteral", + "src": "17000:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16991:3:6", + "nodeType": "YulIdentifier", + "src": "16991:3:6" + }, + "nativeSrc": "16991:12:6", + "nodeType": "YulFunctionCall", + "src": "16991:12:6" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "16984:3:6", + "nodeType": "YulIdentifier", + "src": "16984:3:6" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_25adaa6d082ce15f901e0d8a3d393e7462ef9edf2e6bc8321fa14d1615b6fc51_to_t_string_memory_ptr_fromStack", + "nativeSrc": "16643:366:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "16777:3:6", + "nodeType": "YulTypedName", + "src": "16777:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "16785:3:6", + "nodeType": "YulTypedName", + "src": "16785:3:6", + "type": "" + } + ], + "src": "16643:366:6" + }, + { + "body": { + "nativeSrc": "17186:248:6", + "nodeType": "YulBlock", + "src": "17186:248:6", + "statements": [ + { + "nativeSrc": "17196:26:6", + "nodeType": "YulAssignment", + "src": "17196:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "17208:9:6", + "nodeType": "YulIdentifier", + "src": "17208:9:6" + }, + { + "kind": "number", + "nativeSrc": "17219:2:6", + "nodeType": "YulLiteral", + "src": "17219:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17204:3:6", + "nodeType": "YulIdentifier", + "src": "17204:3:6" + }, + "nativeSrc": "17204:18:6", + "nodeType": "YulFunctionCall", + "src": "17204:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "17196:4:6", + "nodeType": "YulIdentifier", + "src": "17196:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "17243:9:6", + "nodeType": "YulIdentifier", + "src": "17243:9:6" + }, + { + "kind": "number", + "nativeSrc": "17254:1:6", + "nodeType": "YulLiteral", + "src": "17254:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17239:3:6", + "nodeType": "YulIdentifier", + "src": "17239:3:6" + }, + "nativeSrc": "17239:17:6", + "nodeType": "YulFunctionCall", + "src": "17239:17:6" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "17262:4:6", + "nodeType": "YulIdentifier", + "src": "17262:4:6" + }, + { + "name": "headStart", + "nativeSrc": "17268:9:6", + "nodeType": "YulIdentifier", + "src": "17268:9:6" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "17258:3:6", + "nodeType": "YulIdentifier", + "src": "17258:3:6" + }, + "nativeSrc": "17258:20:6", + "nodeType": "YulFunctionCall", + "src": "17258:20:6" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "17232:6:6", + "nodeType": "YulIdentifier", + "src": "17232:6:6" + }, + "nativeSrc": "17232:47:6", + "nodeType": "YulFunctionCall", + "src": "17232:47:6" + }, + "nativeSrc": "17232:47:6", + "nodeType": "YulExpressionStatement", + "src": "17232:47:6" + }, + { + "nativeSrc": "17288:139:6", + "nodeType": "YulAssignment", + "src": "17288:139:6", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "17422:4:6", + "nodeType": "YulIdentifier", + "src": "17422:4:6" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_25adaa6d082ce15f901e0d8a3d393e7462ef9edf2e6bc8321fa14d1615b6fc51_to_t_string_memory_ptr_fromStack", + "nativeSrc": "17296:124:6", + "nodeType": "YulIdentifier", + "src": "17296:124:6" + }, + "nativeSrc": "17296:131:6", + "nodeType": "YulFunctionCall", + "src": "17296:131:6" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "17288:4:6", + "nodeType": "YulIdentifier", + "src": "17288:4:6" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_25adaa6d082ce15f901e0d8a3d393e7462ef9edf2e6bc8321fa14d1615b6fc51__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "17015:419:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "17166:9:6", + "nodeType": "YulTypedName", + "src": "17166:9:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "17181:4:6", + "nodeType": "YulTypedName", + "src": "17181:4:6", + "type": "" + } + ], + "src": "17015:419:6" + }, + { + "body": { + "nativeSrc": "17468:152:6", + "nodeType": "YulBlock", + "src": "17468:152:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "17485:1:6", + "nodeType": "YulLiteral", + "src": "17485:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "17488:77:6", + "nodeType": "YulLiteral", + "src": "17488:77:6", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "17478:6:6", + "nodeType": "YulIdentifier", + "src": "17478:6:6" + }, + "nativeSrc": "17478:88:6", + "nodeType": "YulFunctionCall", + "src": "17478:88:6" + }, + "nativeSrc": "17478:88:6", + "nodeType": "YulExpressionStatement", + "src": "17478:88:6" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "17582:1:6", + "nodeType": "YulLiteral", + "src": "17582:1:6", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "17585:4:6", + "nodeType": "YulLiteral", + "src": "17585:4:6", + "type": "", + "value": "0x32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "17575:6:6", + "nodeType": "YulIdentifier", + "src": "17575:6:6" + }, + "nativeSrc": "17575:15:6", + "nodeType": "YulFunctionCall", + "src": "17575:15:6" + }, + "nativeSrc": "17575:15:6", + "nodeType": "YulExpressionStatement", + "src": "17575:15:6" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "17606:1:6", + "nodeType": "YulLiteral", + "src": "17606:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "17609:4:6", + "nodeType": "YulLiteral", + "src": "17609:4:6", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "17599:6:6", + "nodeType": "YulIdentifier", + "src": "17599:6:6" + }, + "nativeSrc": "17599:15:6", + "nodeType": "YulFunctionCall", + "src": "17599:15:6" + }, + "nativeSrc": "17599:15:6", + "nodeType": "YulExpressionStatement", + "src": "17599:15:6" + } + ] + }, + "name": "panic_error_0x32", + "nativeSrc": "17440:180:6", + "nodeType": "YulFunctionDefinition", + "src": "17440:180:6" + }, + { + "body": { + "nativeSrc": "17715:28:6", + "nodeType": "YulBlock", + "src": "17715:28:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "17732:1:6", + "nodeType": "YulLiteral", + "src": "17732:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "17735:1:6", + "nodeType": "YulLiteral", + "src": "17735:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "17725:6:6", + "nodeType": "YulIdentifier", + "src": "17725:6:6" + }, + "nativeSrc": "17725:12:6", + "nodeType": "YulFunctionCall", + "src": "17725:12:6" + }, + "nativeSrc": "17725:12:6", + "nodeType": "YulExpressionStatement", + "src": "17725:12:6" + } + ] + }, + "name": "revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad", + "nativeSrc": "17626:117:6", + "nodeType": "YulFunctionDefinition", + "src": "17626:117:6" + }, + { + "body": { + "nativeSrc": "17838:28:6", + "nodeType": "YulBlock", + "src": "17838:28:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "17855:1:6", + "nodeType": "YulLiteral", + "src": "17855:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "17858:1:6", + "nodeType": "YulLiteral", + "src": "17858:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "17848:6:6", + "nodeType": "YulIdentifier", + "src": "17848:6:6" + }, + "nativeSrc": "17848:12:6", + "nodeType": "YulFunctionCall", + "src": "17848:12:6" + }, + "nativeSrc": "17848:12:6", + "nodeType": "YulExpressionStatement", + "src": "17848:12:6" + } + ] + }, + "name": "revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a", + "nativeSrc": "17749:117:6", + "nodeType": "YulFunctionDefinition", + "src": "17749:117:6" + }, + { + "body": { + "nativeSrc": "17961:28:6", + "nodeType": "YulBlock", + "src": "17961:28:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "17978:1:6", + "nodeType": "YulLiteral", + "src": "17978:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "17981:1:6", + "nodeType": "YulLiteral", + "src": "17981:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "17971:6:6", + "nodeType": "YulIdentifier", + "src": "17971:6:6" + }, + "nativeSrc": "17971:12:6", + "nodeType": "YulFunctionCall", + "src": "17971:12:6" + }, + "nativeSrc": "17971:12:6", + "nodeType": "YulExpressionStatement", + "src": "17971:12:6" + } + ] + }, + "name": "revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e", + "nativeSrc": "17872:117:6", + "nodeType": "YulFunctionDefinition", + "src": "17872:117:6" + }, + { + "body": { + "nativeSrc": "18098:295:6", + "nodeType": "YulBlock", + "src": "18098:295:6", + "statements": [ + { + "nativeSrc": "18108:51:6", + "nodeType": "YulVariableDeclaration", + "src": "18108:51:6", + "value": { + "arguments": [ + { + "name": "ptr_to_tail", + "nativeSrc": "18147:11:6", + "nodeType": "YulIdentifier", + "src": "18147:11:6" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "18134:12:6", + "nodeType": "YulIdentifier", + "src": "18134:12:6" + }, + "nativeSrc": "18134:25:6", + "nodeType": "YulFunctionCall", + "src": "18134:25:6" + }, + "variables": [ + { + "name": "rel_offset_of_tail", + "nativeSrc": "18112:18:6", + "nodeType": "YulTypedName", + "src": "18112:18:6", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "18253:83:6", + "nodeType": "YulBlock", + "src": "18253:83:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad", + "nativeSrc": "18255:77:6", + "nodeType": "YulIdentifier", + "src": "18255:77:6" + }, + "nativeSrc": "18255:79:6", + "nodeType": "YulFunctionCall", + "src": "18255:79:6" + }, + "nativeSrc": "18255:79:6", + "nodeType": "YulExpressionStatement", + "src": "18255:79:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "rel_offset_of_tail", + "nativeSrc": "18182:18:6", + "nodeType": "YulIdentifier", + "src": "18182:18:6" + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [], + "functionName": { + "name": "calldatasize", + "nativeSrc": "18210:12:6", + "nodeType": "YulIdentifier", + "src": "18210:12:6" + }, + "nativeSrc": "18210:14:6", + "nodeType": "YulFunctionCall", + "src": "18210:14:6" + }, + { + "name": "base_ref", + "nativeSrc": "18226:8:6", + "nodeType": "YulIdentifier", + "src": "18226:8:6" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "18206:3:6", + "nodeType": "YulIdentifier", + "src": "18206:3:6" + }, + "nativeSrc": "18206:29:6", + "nodeType": "YulFunctionCall", + "src": "18206:29:6" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "18241:4:6", + "nodeType": "YulLiteral", + "src": "18241:4:6", + "type": "", + "value": "0x40" + }, + { + "kind": "number", + "nativeSrc": "18247:1:6", + "nodeType": "YulLiteral", + "src": "18247:1:6", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "18237:3:6", + "nodeType": "YulIdentifier", + "src": "18237:3:6" + }, + "nativeSrc": "18237:12:6", + "nodeType": "YulFunctionCall", + "src": "18237:12:6" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "18202:3:6", + "nodeType": "YulIdentifier", + "src": "18202:3:6" + }, + "nativeSrc": "18202:48:6", + "nodeType": "YulFunctionCall", + "src": "18202:48:6" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "18178:3:6", + "nodeType": "YulIdentifier", + "src": "18178:3:6" + }, + "nativeSrc": "18178:73:6", + "nodeType": "YulFunctionCall", + "src": "18178:73:6" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "18171:6:6", + "nodeType": "YulIdentifier", + "src": "18171:6:6" + }, + "nativeSrc": "18171:81:6", + "nodeType": "YulFunctionCall", + "src": "18171:81:6" + }, + "nativeSrc": "18168:168:6", + "nodeType": "YulIf", + "src": "18168:168:6" + }, + { + "nativeSrc": "18345:41:6", + "nodeType": "YulAssignment", + "src": "18345:41:6", + "value": { + "arguments": [ + { + "name": "base_ref", + "nativeSrc": "18357:8:6", + "nodeType": "YulIdentifier", + "src": "18357:8:6" + }, + { + "name": "rel_offset_of_tail", + "nativeSrc": "18367:18:6", + "nodeType": "YulIdentifier", + "src": "18367:18:6" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18353:3:6", + "nodeType": "YulIdentifier", + "src": "18353:3:6" + }, + "nativeSrc": "18353:33:6", + "nodeType": "YulFunctionCall", + "src": "18353:33:6" + }, + "variableNames": [ + { + "name": "addr", + "nativeSrc": "18345:4:6", + "nodeType": "YulIdentifier", + "src": "18345:4:6" + } + ] + } + ] + }, + "name": "access_calldata_tail_t_struct$_ErrorResponse_$487_calldata_ptr", + "nativeSrc": "17995:398:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "base_ref", + "nativeSrc": "18067:8:6", + "nodeType": "YulTypedName", + "src": "18067:8:6", + "type": "" + }, + { + "name": "ptr_to_tail", + "nativeSrc": "18077:11:6", + "nodeType": "YulTypedName", + "src": "18077:11:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "addr", + "nativeSrc": "18093:4:6", + "nodeType": "YulTypedName", + "src": "18093:4:6", + "type": "" + } + ], + "src": "17995:398:6" + }, + { + "body": { + "nativeSrc": "18490:634:6", + "nodeType": "YulBlock", + "src": "18490:634:6", + "statements": [ + { + "nativeSrc": "18500:51:6", + "nodeType": "YulVariableDeclaration", + "src": "18500:51:6", + "value": { + "arguments": [ + { + "name": "ptr_to_tail", + "nativeSrc": "18539:11:6", + "nodeType": "YulIdentifier", + "src": "18539:11:6" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "18526:12:6", + "nodeType": "YulIdentifier", + "src": "18526:12:6" + }, + "nativeSrc": "18526:25:6", + "nodeType": "YulFunctionCall", + "src": "18526:25:6" + }, + "variables": [ + { + "name": "rel_offset_of_tail", + "nativeSrc": "18504:18:6", + "nodeType": "YulTypedName", + "src": "18504:18:6", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "18645:83:6", + "nodeType": "YulBlock", + "src": "18645:83:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad", + "nativeSrc": "18647:77:6", + "nodeType": "YulIdentifier", + "src": "18647:77:6" + }, + "nativeSrc": "18647:79:6", + "nodeType": "YulFunctionCall", + "src": "18647:79:6" + }, + "nativeSrc": "18647:79:6", + "nodeType": "YulExpressionStatement", + "src": "18647:79:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "rel_offset_of_tail", + "nativeSrc": "18574:18:6", + "nodeType": "YulIdentifier", + "src": "18574:18:6" + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [], + "functionName": { + "name": "calldatasize", + "nativeSrc": "18602:12:6", + "nodeType": "YulIdentifier", + "src": "18602:12:6" + }, + "nativeSrc": "18602:14:6", + "nodeType": "YulFunctionCall", + "src": "18602:14:6" + }, + { + "name": "base_ref", + "nativeSrc": "18618:8:6", + "nodeType": "YulIdentifier", + "src": "18618:8:6" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "18598:3:6", + "nodeType": "YulIdentifier", + "src": "18598:3:6" + }, + "nativeSrc": "18598:29:6", + "nodeType": "YulFunctionCall", + "src": "18598:29:6" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "18633:4:6", + "nodeType": "YulLiteral", + "src": "18633:4:6", + "type": "", + "value": "0x20" + }, + { + "kind": "number", + "nativeSrc": "18639:1:6", + "nodeType": "YulLiteral", + "src": "18639:1:6", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "18629:3:6", + "nodeType": "YulIdentifier", + "src": "18629:3:6" + }, + "nativeSrc": "18629:12:6", + "nodeType": "YulFunctionCall", + "src": "18629:12:6" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "18594:3:6", + "nodeType": "YulIdentifier", + "src": "18594:3:6" + }, + "nativeSrc": "18594:48:6", + "nodeType": "YulFunctionCall", + "src": "18594:48:6" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "18570:3:6", + "nodeType": "YulIdentifier", + "src": "18570:3:6" + }, + "nativeSrc": "18570:73:6", + "nodeType": "YulFunctionCall", + "src": "18570:73:6" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "18563:6:6", + "nodeType": "YulIdentifier", + "src": "18563:6:6" + }, + "nativeSrc": "18563:81:6", + "nodeType": "YulFunctionCall", + "src": "18563:81:6" + }, + "nativeSrc": "18560:168:6", + "nodeType": "YulIf", + "src": "18560:168:6" + }, + { + "nativeSrc": "18737:41:6", + "nodeType": "YulAssignment", + "src": "18737:41:6", + "value": { + "arguments": [ + { + "name": "base_ref", + "nativeSrc": "18749:8:6", + "nodeType": "YulIdentifier", + "src": "18749:8:6" + }, + { + "name": "rel_offset_of_tail", + "nativeSrc": "18759:18:6", + "nodeType": "YulIdentifier", + "src": "18759:18:6" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18745:3:6", + "nodeType": "YulIdentifier", + "src": "18745:3:6" + }, + "nativeSrc": "18745:33:6", + "nodeType": "YulFunctionCall", + "src": "18745:33:6" + }, + "variableNames": [ + { + "name": "addr", + "nativeSrc": "18737:4:6", + "nodeType": "YulIdentifier", + "src": "18737:4:6" + } + ] + }, + { + "nativeSrc": "18788:28:6", + "nodeType": "YulAssignment", + "src": "18788:28:6", + "value": { + "arguments": [ + { + "name": "addr", + "nativeSrc": "18811:4:6", + "nodeType": "YulIdentifier", + "src": "18811:4:6" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "18798:12:6", + "nodeType": "YulIdentifier", + "src": "18798:12:6" + }, + "nativeSrc": "18798:18:6", + "nodeType": "YulFunctionCall", + "src": "18798:18:6" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "18788:6:6", + "nodeType": "YulIdentifier", + "src": "18788:6:6" + } + ] + }, + { + "body": { + "nativeSrc": "18859:83:6", + "nodeType": "YulBlock", + "src": "18859:83:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a", + "nativeSrc": "18861:77:6", + "nodeType": "YulIdentifier", + "src": "18861:77:6" + }, + "nativeSrc": "18861:79:6", + "nodeType": "YulFunctionCall", + "src": "18861:79:6" + }, + "nativeSrc": "18861:79:6", + "nodeType": "YulExpressionStatement", + "src": "18861:79:6" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "18831:6:6", + "nodeType": "YulIdentifier", + "src": "18831:6:6" + }, + { + "kind": "number", + "nativeSrc": "18839:18:6", + "nodeType": "YulLiteral", + "src": "18839:18:6", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "18828:2:6", + "nodeType": "YulIdentifier", + "src": "18828:2:6" + }, + "nativeSrc": "18828:30:6", + "nodeType": "YulFunctionCall", + "src": "18828:30:6" + }, + "nativeSrc": "18825:117:6", + "nodeType": "YulIf", + "src": "18825:117:6" + }, + { + "nativeSrc": "18951:21:6", + "nodeType": "YulAssignment", + "src": "18951:21:6", + "value": { + "arguments": [ + { + "name": "addr", + "nativeSrc": "18963:4:6", + "nodeType": "YulIdentifier", + "src": "18963:4:6" + }, + { + "kind": "number", + "nativeSrc": "18969:2:6", + "nodeType": "YulLiteral", + "src": "18969:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18959:3:6", + "nodeType": "YulIdentifier", + "src": "18959:3:6" + }, + "nativeSrc": "18959:13:6", + "nodeType": "YulFunctionCall", + "src": "18959:13:6" + }, + "variableNames": [ + { + "name": "addr", + "nativeSrc": "18951:4:6", + "nodeType": "YulIdentifier", + "src": "18951:4:6" + } + ] + }, + { + "body": { + "nativeSrc": "19034:83:6", + "nodeType": "YulBlock", + "src": "19034:83:6", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e", + "nativeSrc": "19036:77:6", + "nodeType": "YulIdentifier", + "src": "19036:77:6" + }, + "nativeSrc": "19036:79:6", + "nodeType": "YulFunctionCall", + "src": "19036:79:6" + }, + "nativeSrc": "19036:79:6", + "nodeType": "YulExpressionStatement", + "src": "19036:79:6" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "addr", + "nativeSrc": "18988:4:6", + "nodeType": "YulIdentifier", + "src": "18988:4:6" + }, + { + "arguments": [ + { + "arguments": [], + "functionName": { + "name": "calldatasize", + "nativeSrc": "18998:12:6", + "nodeType": "YulIdentifier", + "src": "18998:12:6" + }, + "nativeSrc": "18998:14:6", + "nodeType": "YulFunctionCall", + "src": "18998:14:6" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "19018:6:6", + "nodeType": "YulIdentifier", + "src": "19018:6:6" + }, + { + "kind": "number", + "nativeSrc": "19026:4:6", + "nodeType": "YulLiteral", + "src": "19026:4:6", + "type": "", + "value": "0x01" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "19014:3:6", + "nodeType": "YulIdentifier", + "src": "19014:3:6" + }, + "nativeSrc": "19014:17:6", + "nodeType": "YulFunctionCall", + "src": "19014:17:6" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "18994:3:6", + "nodeType": "YulIdentifier", + "src": "18994:3:6" + }, + "nativeSrc": "18994:38:6", + "nodeType": "YulFunctionCall", + "src": "18994:38:6" + } + ], + "functionName": { + "name": "sgt", + "nativeSrc": "18984:3:6", + "nodeType": "YulIdentifier", + "src": "18984:3:6" + }, + "nativeSrc": "18984:49:6", + "nodeType": "YulFunctionCall", + "src": "18984:49:6" + }, + "nativeSrc": "18981:136:6", + "nodeType": "YulIf", + "src": "18981:136:6" + } + ] + }, + "name": "access_calldata_tail_t_string_calldata_ptr", + "nativeSrc": "18399:725:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "base_ref", + "nativeSrc": "18451:8:6", + "nodeType": "YulTypedName", + "src": "18451:8:6", + "type": "" + }, + { + "name": "ptr_to_tail", + "nativeSrc": "18461:11:6", + "nodeType": "YulTypedName", + "src": "18461:11:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "addr", + "nativeSrc": "18477:4:6", + "nodeType": "YulTypedName", + "src": "18477:4:6", + "type": "" + }, + { + "name": "length", + "nativeSrc": "18483:6:6", + "nodeType": "YulTypedName", + "src": "18483:6:6", + "type": "" + } + ], + "src": "18399:725:6" + }, + { + "body": { + "nativeSrc": "19195:53:6", + "nodeType": "YulBlock", + "src": "19195:53:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "19212:3:6", + "nodeType": "YulIdentifier", + "src": "19212:3:6" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "19235:5:6", + "nodeType": "YulIdentifier", + "src": "19235:5:6" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "19217:17:6", + "nodeType": "YulIdentifier", + "src": "19217:17:6" + }, + "nativeSrc": "19217:24:6", + "nodeType": "YulFunctionCall", + "src": "19217:24:6" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "19205:6:6", + "nodeType": "YulIdentifier", + "src": "19205:6:6" + }, + "nativeSrc": "19205:37:6", + "nodeType": "YulFunctionCall", + "src": "19205:37:6" + }, + "nativeSrc": "19205:37:6", + "nodeType": "YulExpressionStatement", + "src": "19205:37:6" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "19130:118:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "19183:5:6", + "nodeType": "YulTypedName", + "src": "19183:5:6", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "19190:3:6", + "nodeType": "YulTypedName", + "src": "19190:3:6", + "type": "" + } + ], + "src": "19130:118:6" + }, + { + "body": { + "nativeSrc": "19380:215:6", + "nodeType": "YulBlock", + "src": "19380:215:6", + "statements": [ + { + "nativeSrc": "19390:78:6", + "nodeType": "YulAssignment", + "src": "19390:78:6", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "19456:3:6", + "nodeType": "YulIdentifier", + "src": "19456:3:6" + }, + { + "name": "length", + "nativeSrc": "19461:6:6", + "nodeType": "YulIdentifier", + "src": "19461:6:6" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "19397:58:6", + "nodeType": "YulIdentifier", + "src": "19397:58:6" + }, + "nativeSrc": "19397:71:6", + "nodeType": "YulFunctionCall", + "src": "19397:71:6" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "19390:3:6", + "nodeType": "YulIdentifier", + "src": "19390:3:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "start", + "nativeSrc": "19515:5:6", + "nodeType": "YulIdentifier", + "src": "19515:5:6" + }, + { + "name": "pos", + "nativeSrc": "19522:3:6", + "nodeType": "YulIdentifier", + "src": "19522:3:6" + }, + { + "name": "length", + "nativeSrc": "19527:6:6", + "nodeType": "YulIdentifier", + "src": "19527:6:6" + } + ], + "functionName": { + "name": "copy_calldata_to_memory_with_cleanup", + "nativeSrc": "19478:36:6", + "nodeType": "YulIdentifier", + "src": "19478:36:6" + }, + "nativeSrc": "19478:56:6", + "nodeType": "YulFunctionCall", + "src": "19478:56:6" + }, + "nativeSrc": "19478:56:6", + "nodeType": "YulExpressionStatement", + "src": "19478:56:6" + }, + { + "nativeSrc": "19543:46:6", + "nodeType": "YulAssignment", + "src": "19543:46:6", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "19554:3:6", + "nodeType": "YulIdentifier", + "src": "19554:3:6" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "19581:6:6", + "nodeType": "YulIdentifier", + "src": "19581:6:6" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "19559:21:6", + "nodeType": "YulIdentifier", + "src": "19559:21:6" + }, + "nativeSrc": "19559:29:6", + "nodeType": "YulFunctionCall", + "src": "19559:29:6" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19550:3:6", + "nodeType": "YulIdentifier", + "src": "19550:3:6" + }, + "nativeSrc": "19550:39:6", + "nodeType": "YulFunctionCall", + "src": "19550:39:6" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "19543:3:6", + "nodeType": "YulIdentifier", + "src": "19543:3:6" + } + ] + } + ] + }, + "name": "abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_fromStack", + "nativeSrc": "19278:317:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "start", + "nativeSrc": "19353:5:6", + "nodeType": "YulTypedName", + "src": "19353:5:6", + "type": "" + }, + { + "name": "length", + "nativeSrc": "19360:6:6", + "nodeType": "YulTypedName", + "src": "19360:6:6", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "19368:3:6", + "nodeType": "YulTypedName", + "src": "19368:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "19376:3:6", + "nodeType": "YulTypedName", + "src": "19376:3:6", + "type": "" + } + ], + "src": "19278:317:6" + }, + { + "body": { + "nativeSrc": "19757:287:6", + "nodeType": "YulBlock", + "src": "19757:287:6", + "statements": [ + { + "nativeSrc": "19767:26:6", + "nodeType": "YulAssignment", + "src": "19767:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "19779:9:6", + "nodeType": "YulIdentifier", + "src": "19779:9:6" + }, + { + "kind": "number", + "nativeSrc": "19790:2:6", + "nodeType": "YulLiteral", + "src": "19790:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19775:3:6", + "nodeType": "YulIdentifier", + "src": "19775:3:6" + }, + "nativeSrc": "19775:18:6", + "nodeType": "YulFunctionCall", + "src": "19775:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "19767:4:6", + "nodeType": "YulIdentifier", + "src": "19767:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "19847:6:6", + "nodeType": "YulIdentifier", + "src": "19847:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "19860:9:6", + "nodeType": "YulIdentifier", + "src": "19860:9:6" + }, + { + "kind": "number", + "nativeSrc": "19871:1:6", + "nodeType": "YulLiteral", + "src": "19871:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19856:3:6", + "nodeType": "YulIdentifier", + "src": "19856:3:6" + }, + "nativeSrc": "19856:17:6", + "nodeType": "YulFunctionCall", + "src": "19856:17:6" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "19803:43:6", + "nodeType": "YulIdentifier", + "src": "19803:43:6" + }, + "nativeSrc": "19803:71:6", + "nodeType": "YulFunctionCall", + "src": "19803:71:6" + }, + "nativeSrc": "19803:71:6", + "nodeType": "YulExpressionStatement", + "src": "19803:71:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "19895:9:6", + "nodeType": "YulIdentifier", + "src": "19895:9:6" + }, + { + "kind": "number", + "nativeSrc": "19906:2:6", + "nodeType": "YulLiteral", + "src": "19906:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19891:3:6", + "nodeType": "YulIdentifier", + "src": "19891:3:6" + }, + "nativeSrc": "19891:18:6", + "nodeType": "YulFunctionCall", + "src": "19891:18:6" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "19915:4:6", + "nodeType": "YulIdentifier", + "src": "19915:4:6" + }, + { + "name": "headStart", + "nativeSrc": "19921:9:6", + "nodeType": "YulIdentifier", + "src": "19921:9:6" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "19911:3:6", + "nodeType": "YulIdentifier", + "src": "19911:3:6" + }, + "nativeSrc": "19911:20:6", + "nodeType": "YulFunctionCall", + "src": "19911:20:6" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "19884:6:6", + "nodeType": "YulIdentifier", + "src": "19884:6:6" + }, + "nativeSrc": "19884:48:6", + "nodeType": "YulFunctionCall", + "src": "19884:48:6" + }, + "nativeSrc": "19884:48:6", + "nodeType": "YulExpressionStatement", + "src": "19884:48:6" + }, + { + "nativeSrc": "19941:96:6", + "nodeType": "YulAssignment", + "src": "19941:96:6", + "value": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "20015:6:6", + "nodeType": "YulIdentifier", + "src": "20015:6:6" + }, + { + "name": "value2", + "nativeSrc": "20023:6:6", + "nodeType": "YulIdentifier", + "src": "20023:6:6" + }, + { + "name": "tail", + "nativeSrc": "20032:4:6", + "nodeType": "YulIdentifier", + "src": "20032:4:6" + } + ], + "functionName": { + "name": "abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_fromStack", + "nativeSrc": "19949:65:6", + "nodeType": "YulIdentifier", + "src": "19949:65:6" + }, + "nativeSrc": "19949:88:6", + "nodeType": "YulFunctionCall", + "src": "19949:88:6" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "19941:4:6", + "nodeType": "YulIdentifier", + "src": "19941:4:6" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_address_t_string_calldata_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "19601:443:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "19713:9:6", + "nodeType": "YulTypedName", + "src": "19713:9:6", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "19725:6:6", + "nodeType": "YulTypedName", + "src": "19725:6:6", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "19733:6:6", + "nodeType": "YulTypedName", + "src": "19733:6:6", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "19741:6:6", + "nodeType": "YulTypedName", + "src": "19741:6:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "19752:4:6", + "nodeType": "YulTypedName", + "src": "19752:4:6", + "type": "" + } + ], + "src": "19601:443:6" + }, + { + "body": { + "nativeSrc": "20156:64:6", + "nodeType": "YulBlock", + "src": "20156:64:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "20178:6:6", + "nodeType": "YulIdentifier", + "src": "20178:6:6" + }, + { + "kind": "number", + "nativeSrc": "20186:1:6", + "nodeType": "YulLiteral", + "src": "20186:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "20174:3:6", + "nodeType": "YulIdentifier", + "src": "20174:3:6" + }, + "nativeSrc": "20174:14:6", + "nodeType": "YulFunctionCall", + "src": "20174:14:6" + }, + { + "hexValue": "496e73756666696369656e74206465706f736974", + "kind": "string", + "nativeSrc": "20190:22:6", + "nodeType": "YulLiteral", + "src": "20190:22:6", + "type": "", + "value": "Insufficient deposit" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "20167:6:6", + "nodeType": "YulIdentifier", + "src": "20167:6:6" + }, + "nativeSrc": "20167:46:6", + "nodeType": "YulFunctionCall", + "src": "20167:46:6" + }, + "nativeSrc": "20167:46:6", + "nodeType": "YulExpressionStatement", + "src": "20167:46:6" + } + ] + }, + "name": "store_literal_in_memory_f8fcaef683f0d1614f3145343efc9a3d2cb7c83cead426db44ecb090c666d824", + "nativeSrc": "20050:170:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "20148:6:6", + "nodeType": "YulTypedName", + "src": "20148:6:6", + "type": "" + } + ], + "src": "20050:170:6" + }, + { + "body": { + "nativeSrc": "20372:220:6", + "nodeType": "YulBlock", + "src": "20372:220:6", + "statements": [ + { + "nativeSrc": "20382:74:6", + "nodeType": "YulAssignment", + "src": "20382:74:6", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "20448:3:6", + "nodeType": "YulIdentifier", + "src": "20448:3:6" + }, + { + "kind": "number", + "nativeSrc": "20453:2:6", + "nodeType": "YulLiteral", + "src": "20453:2:6", + "type": "", + "value": "20" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "20389:58:6", + "nodeType": "YulIdentifier", + "src": "20389:58:6" + }, + "nativeSrc": "20389:67:6", + "nodeType": "YulFunctionCall", + "src": "20389:67:6" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "20382:3:6", + "nodeType": "YulIdentifier", + "src": "20382:3:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "20554:3:6", + "nodeType": "YulIdentifier", + "src": "20554:3:6" + } + ], + "functionName": { + "name": "store_literal_in_memory_f8fcaef683f0d1614f3145343efc9a3d2cb7c83cead426db44ecb090c666d824", + "nativeSrc": "20465:88:6", + "nodeType": "YulIdentifier", + "src": "20465:88:6" + }, + "nativeSrc": "20465:93:6", + "nodeType": "YulFunctionCall", + "src": "20465:93:6" + }, + "nativeSrc": "20465:93:6", + "nodeType": "YulExpressionStatement", + "src": "20465:93:6" + }, + { + "nativeSrc": "20567:19:6", + "nodeType": "YulAssignment", + "src": "20567:19:6", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "20578:3:6", + "nodeType": "YulIdentifier", + "src": "20578:3:6" + }, + { + "kind": "number", + "nativeSrc": "20583:2:6", + "nodeType": "YulLiteral", + "src": "20583:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "20574:3:6", + "nodeType": "YulIdentifier", + "src": "20574:3:6" + }, + "nativeSrc": "20574:12:6", + "nodeType": "YulFunctionCall", + "src": "20574:12:6" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "20567:3:6", + "nodeType": "YulIdentifier", + "src": "20567:3:6" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_f8fcaef683f0d1614f3145343efc9a3d2cb7c83cead426db44ecb090c666d824_to_t_string_memory_ptr_fromStack", + "nativeSrc": "20226:366:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "20360:3:6", + "nodeType": "YulTypedName", + "src": "20360:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "20368:3:6", + "nodeType": "YulTypedName", + "src": "20368:3:6", + "type": "" + } + ], + "src": "20226:366:6" + }, + { + "body": { + "nativeSrc": "20769:248:6", + "nodeType": "YulBlock", + "src": "20769:248:6", + "statements": [ + { + "nativeSrc": "20779:26:6", + "nodeType": "YulAssignment", + "src": "20779:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "20791:9:6", + "nodeType": "YulIdentifier", + "src": "20791:9:6" + }, + { + "kind": "number", + "nativeSrc": "20802:2:6", + "nodeType": "YulLiteral", + "src": "20802:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "20787:3:6", + "nodeType": "YulIdentifier", + "src": "20787:3:6" + }, + "nativeSrc": "20787:18:6", + "nodeType": "YulFunctionCall", + "src": "20787:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "20779:4:6", + "nodeType": "YulIdentifier", + "src": "20779:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "20826:9:6", + "nodeType": "YulIdentifier", + "src": "20826:9:6" + }, + { + "kind": "number", + "nativeSrc": "20837:1:6", + "nodeType": "YulLiteral", + "src": "20837:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "20822:3:6", + "nodeType": "YulIdentifier", + "src": "20822:3:6" + }, + "nativeSrc": "20822:17:6", + "nodeType": "YulFunctionCall", + "src": "20822:17:6" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "20845:4:6", + "nodeType": "YulIdentifier", + "src": "20845:4:6" + }, + { + "name": "headStart", + "nativeSrc": "20851:9:6", + "nodeType": "YulIdentifier", + "src": "20851:9:6" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "20841:3:6", + "nodeType": "YulIdentifier", + "src": "20841:3:6" + }, + "nativeSrc": "20841:20:6", + "nodeType": "YulFunctionCall", + "src": "20841:20:6" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "20815:6:6", + "nodeType": "YulIdentifier", + "src": "20815:6:6" + }, + "nativeSrc": "20815:47:6", + "nodeType": "YulFunctionCall", + "src": "20815:47:6" + }, + "nativeSrc": "20815:47:6", + "nodeType": "YulExpressionStatement", + "src": "20815:47:6" + }, + { + "nativeSrc": "20871:139:6", + "nodeType": "YulAssignment", + "src": "20871:139:6", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "21005:4:6", + "nodeType": "YulIdentifier", + "src": "21005:4:6" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_f8fcaef683f0d1614f3145343efc9a3d2cb7c83cead426db44ecb090c666d824_to_t_string_memory_ptr_fromStack", + "nativeSrc": "20879:124:6", + "nodeType": "YulIdentifier", + "src": "20879:124:6" + }, + "nativeSrc": "20879:131:6", + "nodeType": "YulFunctionCall", + "src": "20879:131:6" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "20871:4:6", + "nodeType": "YulIdentifier", + "src": "20871:4:6" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_f8fcaef683f0d1614f3145343efc9a3d2cb7c83cead426db44ecb090c666d824__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "20598:419:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "20749:9:6", + "nodeType": "YulTypedName", + "src": "20749:9:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "20764:4:6", + "nodeType": "YulTypedName", + "src": "20764:4:6", + "type": "" + } + ], + "src": "20598:419:6" + }, + { + "body": { + "nativeSrc": "21086:52:6", + "nodeType": "YulBlock", + "src": "21086:52:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "21103:3:6", + "nodeType": "YulIdentifier", + "src": "21103:3:6" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "21125:5:6", + "nodeType": "YulIdentifier", + "src": "21125:5:6" + } + ], + "functionName": { + "name": "cleanup_t_uint32", + "nativeSrc": "21108:16:6", + "nodeType": "YulIdentifier", + "src": "21108:16:6" + }, + "nativeSrc": "21108:23:6", + "nodeType": "YulFunctionCall", + "src": "21108:23:6" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "21096:6:6", + "nodeType": "YulIdentifier", + "src": "21096:6:6" + }, + "nativeSrc": "21096:36:6", + "nodeType": "YulFunctionCall", + "src": "21096:36:6" + }, + "nativeSrc": "21096:36:6", + "nodeType": "YulExpressionStatement", + "src": "21096:36:6" + } + ] + }, + "name": "abi_encode_t_uint32_to_t_uint32_fromStack", + "nativeSrc": "21023:115:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "21074:5:6", + "nodeType": "YulTypedName", + "src": "21074:5:6", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "21081:3:6", + "nodeType": "YulTypedName", + "src": "21081:3:6", + "type": "" + } + ], + "src": "21023:115:6" + }, + { + "body": { + "nativeSrc": "21203:40:6", + "nodeType": "YulBlock", + "src": "21203:40:6", + "statements": [ + { + "nativeSrc": "21214:22:6", + "nodeType": "YulAssignment", + "src": "21214:22:6", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "21230:5:6", + "nodeType": "YulIdentifier", + "src": "21230:5:6" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "21224:5:6", + "nodeType": "YulIdentifier", + "src": "21224:5:6" + }, + "nativeSrc": "21224:12:6", + "nodeType": "YulFunctionCall", + "src": "21224:12:6" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "21214:6:6", + "nodeType": "YulIdentifier", + "src": "21214:6:6" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "21144:99:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "21186:5:6", + "nodeType": "YulTypedName", + "src": "21186:5:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "21196:6:6", + "nodeType": "YulTypedName", + "src": "21196:6:6", + "type": "" + } + ], + "src": "21144:99:6" + }, + { + "body": { + "nativeSrc": "21311:186:6", + "nodeType": "YulBlock", + "src": "21311:186:6", + "statements": [ + { + "nativeSrc": "21322:10:6", + "nodeType": "YulVariableDeclaration", + "src": "21322:10:6", + "value": { + "kind": "number", + "nativeSrc": "21331:1:6", + "nodeType": "YulLiteral", + "src": "21331:1:6", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "21326:1:6", + "nodeType": "YulTypedName", + "src": "21326:1:6", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "21391:63:6", + "nodeType": "YulBlock", + "src": "21391:63:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "21416:3:6", + "nodeType": "YulIdentifier", + "src": "21416:3:6" + }, + { + "name": "i", + "nativeSrc": "21421:1:6", + "nodeType": "YulIdentifier", + "src": "21421:1:6" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21412:3:6", + "nodeType": "YulIdentifier", + "src": "21412:3:6" + }, + "nativeSrc": "21412:11:6", + "nodeType": "YulFunctionCall", + "src": "21412:11:6" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "21435:3:6", + "nodeType": "YulIdentifier", + "src": "21435:3:6" + }, + { + "name": "i", + "nativeSrc": "21440:1:6", + "nodeType": "YulIdentifier", + "src": "21440:1:6" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21431:3:6", + "nodeType": "YulIdentifier", + "src": "21431:3:6" + }, + "nativeSrc": "21431:11:6", + "nodeType": "YulFunctionCall", + "src": "21431:11:6" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "21425:5:6", + "nodeType": "YulIdentifier", + "src": "21425:5:6" + }, + "nativeSrc": "21425:18:6", + "nodeType": "YulFunctionCall", + "src": "21425:18:6" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "21405:6:6", + "nodeType": "YulIdentifier", + "src": "21405:6:6" + }, + "nativeSrc": "21405:39:6", + "nodeType": "YulFunctionCall", + "src": "21405:39:6" + }, + "nativeSrc": "21405:39:6", + "nodeType": "YulExpressionStatement", + "src": "21405:39:6" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "21352:1:6", + "nodeType": "YulIdentifier", + "src": "21352:1:6" + }, + { + "name": "length", + "nativeSrc": "21355:6:6", + "nodeType": "YulIdentifier", + "src": "21355:6:6" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "21349:2:6", + "nodeType": "YulIdentifier", + "src": "21349:2:6" + }, + "nativeSrc": "21349:13:6", + "nodeType": "YulFunctionCall", + "src": "21349:13:6" + }, + "nativeSrc": "21341:113:6", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "21363:19:6", + "nodeType": "YulBlock", + "src": "21363:19:6", + "statements": [ + { + "nativeSrc": "21365:15:6", + "nodeType": "YulAssignment", + "src": "21365:15:6", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "21374:1:6", + "nodeType": "YulIdentifier", + "src": "21374:1:6" + }, + { + "kind": "number", + "nativeSrc": "21377:2:6", + "nodeType": "YulLiteral", + "src": "21377:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21370:3:6", + "nodeType": "YulIdentifier", + "src": "21370:3:6" + }, + "nativeSrc": "21370:10:6", + "nodeType": "YulFunctionCall", + "src": "21370:10:6" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "21365:1:6", + "nodeType": "YulIdentifier", + "src": "21365:1:6" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "21345:3:6", + "nodeType": "YulBlock", + "src": "21345:3:6", + "statements": [] + }, + "src": "21341:113:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "21474:3:6", + "nodeType": "YulIdentifier", + "src": "21474:3:6" + }, + { + "name": "length", + "nativeSrc": "21479:6:6", + "nodeType": "YulIdentifier", + "src": "21479:6:6" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21470:3:6", + "nodeType": "YulIdentifier", + "src": "21470:3:6" + }, + "nativeSrc": "21470:16:6", + "nodeType": "YulFunctionCall", + "src": "21470:16:6" + }, + { + "kind": "number", + "nativeSrc": "21488:1:6", + "nodeType": "YulLiteral", + "src": "21488:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "21463:6:6", + "nodeType": "YulIdentifier", + "src": "21463:6:6" + }, + "nativeSrc": "21463:27:6", + "nodeType": "YulFunctionCall", + "src": "21463:27:6" + }, + "nativeSrc": "21463:27:6", + "nodeType": "YulExpressionStatement", + "src": "21463:27:6" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "21249:248:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "21293:3:6", + "nodeType": "YulTypedName", + "src": "21293:3:6", + "type": "" + }, + { + "name": "dst", + "nativeSrc": "21298:3:6", + "nodeType": "YulTypedName", + "src": "21298:3:6", + "type": "" + }, + { + "name": "length", + "nativeSrc": "21303:6:6", + "nodeType": "YulTypedName", + "src": "21303:6:6", + "type": "" + } + ], + "src": "21249:248:6" + }, + { + "body": { + "nativeSrc": "21595:285:6", + "nodeType": "YulBlock", + "src": "21595:285:6", + "statements": [ + { + "nativeSrc": "21605:53:6", + "nodeType": "YulVariableDeclaration", + "src": "21605:53:6", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "21652:5:6", + "nodeType": "YulIdentifier", + "src": "21652:5:6" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "21619:32:6", + "nodeType": "YulIdentifier", + "src": "21619:32:6" + }, + "nativeSrc": "21619:39:6", + "nodeType": "YulFunctionCall", + "src": "21619:39:6" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "21609:6:6", + "nodeType": "YulTypedName", + "src": "21609:6:6", + "type": "" + } + ] + }, + { + "nativeSrc": "21667:78:6", + "nodeType": "YulAssignment", + "src": "21667:78:6", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "21733:3:6", + "nodeType": "YulIdentifier", + "src": "21733:3:6" + }, + { + "name": "length", + "nativeSrc": "21738:6:6", + "nodeType": "YulIdentifier", + "src": "21738:6:6" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "21674:58:6", + "nodeType": "YulIdentifier", + "src": "21674:58:6" + }, + "nativeSrc": "21674:71:6", + "nodeType": "YulFunctionCall", + "src": "21674:71:6" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "21667:3:6", + "nodeType": "YulIdentifier", + "src": "21667:3:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "21793:5:6", + "nodeType": "YulIdentifier", + "src": "21793:5:6" + }, + { + "kind": "number", + "nativeSrc": "21800:4:6", + "nodeType": "YulLiteral", + "src": "21800:4:6", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21789:3:6", + "nodeType": "YulIdentifier", + "src": "21789:3:6" + }, + "nativeSrc": "21789:16:6", + "nodeType": "YulFunctionCall", + "src": "21789:16:6" + }, + { + "name": "pos", + "nativeSrc": "21807:3:6", + "nodeType": "YulIdentifier", + "src": "21807:3:6" + }, + { + "name": "length", + "nativeSrc": "21812:6:6", + "nodeType": "YulIdentifier", + "src": "21812:6:6" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "21754:34:6", + "nodeType": "YulIdentifier", + "src": "21754:34:6" + }, + "nativeSrc": "21754:65:6", + "nodeType": "YulFunctionCall", + "src": "21754:65:6" + }, + "nativeSrc": "21754:65:6", + "nodeType": "YulExpressionStatement", + "src": "21754:65:6" + }, + { + "nativeSrc": "21828:46:6", + "nodeType": "YulAssignment", + "src": "21828:46:6", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "21839:3:6", + "nodeType": "YulIdentifier", + "src": "21839:3:6" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "21866:6:6", + "nodeType": "YulIdentifier", + "src": "21866:6:6" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "21844:21:6", + "nodeType": "YulIdentifier", + "src": "21844:21:6" + }, + "nativeSrc": "21844:29:6", + "nodeType": "YulFunctionCall", + "src": "21844:29:6" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21835:3:6", + "nodeType": "YulIdentifier", + "src": "21835:3:6" + }, + "nativeSrc": "21835:39:6", + "nodeType": "YulFunctionCall", + "src": "21835:39:6" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "21828:3:6", + "nodeType": "YulIdentifier", + "src": "21828:3:6" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nativeSrc": "21503:377:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "21576:5:6", + "nodeType": "YulTypedName", + "src": "21576:5:6", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "21583:3:6", + "nodeType": "YulTypedName", + "src": "21583:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "21591:3:6", + "nodeType": "YulTypedName", + "src": "21591:3:6", + "type": "" + } + ], + "src": "21503:377:6" + }, + { + "body": { + "nativeSrc": "22286:1068:6", + "nodeType": "YulBlock", + "src": "22286:1068:6", + "statements": [ + { + "nativeSrc": "22296:27:6", + "nodeType": "YulAssignment", + "src": "22296:27:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "22308:9:6", + "nodeType": "YulIdentifier", + "src": "22308:9:6" + }, + { + "kind": "number", + "nativeSrc": "22319:3:6", + "nodeType": "YulLiteral", + "src": "22319:3:6", + "type": "", + "value": "288" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22304:3:6", + "nodeType": "YulIdentifier", + "src": "22304:3:6" + }, + "nativeSrc": "22304:19:6", + "nodeType": "YulFunctionCall", + "src": "22304:19:6" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "22296:4:6", + "nodeType": "YulIdentifier", + "src": "22296:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "22377:6:6", + "nodeType": "YulIdentifier", + "src": "22377:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "22390:9:6", + "nodeType": "YulIdentifier", + "src": "22390:9:6" + }, + { + "kind": "number", + "nativeSrc": "22401:1:6", + "nodeType": "YulLiteral", + "src": "22401:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22386:3:6", + "nodeType": "YulIdentifier", + "src": "22386:3:6" + }, + "nativeSrc": "22386:17:6", + "nodeType": "YulFunctionCall", + "src": "22386:17:6" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "22333:43:6", + "nodeType": "YulIdentifier", + "src": "22333:43:6" + }, + "nativeSrc": "22333:71:6", + "nodeType": "YulFunctionCall", + "src": "22333:71:6" + }, + "nativeSrc": "22333:71:6", + "nodeType": "YulExpressionStatement", + "src": "22333:71:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "22458:6:6", + "nodeType": "YulIdentifier", + "src": "22458:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "22471:9:6", + "nodeType": "YulIdentifier", + "src": "22471:9:6" + }, + { + "kind": "number", + "nativeSrc": "22482:2:6", + "nodeType": "YulLiteral", + "src": "22482:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22467:3:6", + "nodeType": "YulIdentifier", + "src": "22467:3:6" + }, + "nativeSrc": "22467:18:6", + "nodeType": "YulFunctionCall", + "src": "22467:18:6" + } + ], + "functionName": { + "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nativeSrc": "22414:43:6", + "nodeType": "YulIdentifier", + "src": "22414:43:6" + }, + "nativeSrc": "22414:72:6", + "nodeType": "YulFunctionCall", + "src": "22414:72:6" + }, + "nativeSrc": "22414:72:6", + "nodeType": "YulExpressionStatement", + "src": "22414:72:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nativeSrc": "22538:6:6", + "nodeType": "YulIdentifier", + "src": "22538:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "22551:9:6", + "nodeType": "YulIdentifier", + "src": "22551:9:6" + }, + { + "kind": "number", + "nativeSrc": "22562:2:6", + "nodeType": "YulLiteral", + "src": "22562:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22547:3:6", + "nodeType": "YulIdentifier", + "src": "22547:3:6" + }, + "nativeSrc": "22547:18:6", + "nodeType": "YulFunctionCall", + "src": "22547:18:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint32_to_t_uint32_fromStack", + "nativeSrc": "22496:41:6", + "nodeType": "YulIdentifier", + "src": "22496:41:6" + }, + "nativeSrc": "22496:70:6", + "nodeType": "YulFunctionCall", + "src": "22496:70:6" + }, + "nativeSrc": "22496:70:6", + "nodeType": "YulExpressionStatement", + "src": "22496:70:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value3", + "nativeSrc": "22620:6:6", + "nodeType": "YulIdentifier", + "src": "22620:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "22633:9:6", + "nodeType": "YulIdentifier", + "src": "22633:9:6" + }, + { + "kind": "number", + "nativeSrc": "22644:2:6", + "nodeType": "YulLiteral", + "src": "22644:2:6", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22629:3:6", + "nodeType": "YulIdentifier", + "src": "22629:3:6" + }, + "nativeSrc": "22629:18:6", + "nodeType": "YulFunctionCall", + "src": "22629:18:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "22576:43:6", + "nodeType": "YulIdentifier", + "src": "22576:43:6" + }, + "nativeSrc": "22576:72:6", + "nodeType": "YulFunctionCall", + "src": "22576:72:6" + }, + "nativeSrc": "22576:72:6", + "nodeType": "YulExpressionStatement", + "src": "22576:72:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value4", + "nativeSrc": "22702:6:6", + "nodeType": "YulIdentifier", + "src": "22702:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "22715:9:6", + "nodeType": "YulIdentifier", + "src": "22715:9:6" + }, + { + "kind": "number", + "nativeSrc": "22726:3:6", + "nodeType": "YulLiteral", + "src": "22726:3:6", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22711:3:6", + "nodeType": "YulIdentifier", + "src": "22711:3:6" + }, + "nativeSrc": "22711:19:6", + "nodeType": "YulFunctionCall", + "src": "22711:19:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "22658:43:6", + "nodeType": "YulIdentifier", + "src": "22658:43:6" + }, + "nativeSrc": "22658:73:6", + "nodeType": "YulFunctionCall", + "src": "22658:73:6" + }, + "nativeSrc": "22658:73:6", + "nodeType": "YulExpressionStatement", + "src": "22658:73:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "22752:9:6", + "nodeType": "YulIdentifier", + "src": "22752:9:6" + }, + { + "kind": "number", + "nativeSrc": "22763:3:6", + "nodeType": "YulLiteral", + "src": "22763:3:6", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22748:3:6", + "nodeType": "YulIdentifier", + "src": "22748:3:6" + }, + "nativeSrc": "22748:19:6", + "nodeType": "YulFunctionCall", + "src": "22748:19:6" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "22773:4:6", + "nodeType": "YulIdentifier", + "src": "22773:4:6" + }, + { + "name": "headStart", + "nativeSrc": "22779:9:6", + "nodeType": "YulIdentifier", + "src": "22779:9:6" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "22769:3:6", + "nodeType": "YulIdentifier", + "src": "22769:3:6" + }, + "nativeSrc": "22769:20:6", + "nodeType": "YulFunctionCall", + "src": "22769:20:6" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "22741:6:6", + "nodeType": "YulIdentifier", + "src": "22741:6:6" + }, + "nativeSrc": "22741:49:6", + "nodeType": "YulFunctionCall", + "src": "22741:49:6" + }, + "nativeSrc": "22741:49:6", + "nodeType": "YulExpressionStatement", + "src": "22741:49:6" + }, + { + "nativeSrc": "22799:86:6", + "nodeType": "YulAssignment", + "src": "22799:86:6", + "value": { + "arguments": [ + { + "name": "value5", + "nativeSrc": "22871:6:6", + "nodeType": "YulIdentifier", + "src": "22871:6:6" + }, + { + "name": "tail", + "nativeSrc": "22880:4:6", + "nodeType": "YulIdentifier", + "src": "22880:4:6" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nativeSrc": "22807:63:6", + "nodeType": "YulIdentifier", + "src": "22807:63:6" + }, + "nativeSrc": "22807:78:6", + "nodeType": "YulFunctionCall", + "src": "22807:78:6" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "22799:4:6", + "nodeType": "YulIdentifier", + "src": "22799:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "22906:9:6", + "nodeType": "YulIdentifier", + "src": "22906:9:6" + }, + { + "kind": "number", + "nativeSrc": "22917:3:6", + "nodeType": "YulLiteral", + "src": "22917:3:6", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22902:3:6", + "nodeType": "YulIdentifier", + "src": "22902:3:6" + }, + "nativeSrc": "22902:19:6", + "nodeType": "YulFunctionCall", + "src": "22902:19:6" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "22927:4:6", + "nodeType": "YulIdentifier", + "src": "22927:4:6" + }, + { + "name": "headStart", + "nativeSrc": "22933:9:6", + "nodeType": "YulIdentifier", + "src": "22933:9:6" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "22923:3:6", + "nodeType": "YulIdentifier", + "src": "22923:3:6" + }, + "nativeSrc": "22923:20:6", + "nodeType": "YulFunctionCall", + "src": "22923:20:6" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "22895:6:6", + "nodeType": "YulIdentifier", + "src": "22895:6:6" + }, + "nativeSrc": "22895:49:6", + "nodeType": "YulFunctionCall", + "src": "22895:49:6" + }, + "nativeSrc": "22895:49:6", + "nodeType": "YulExpressionStatement", + "src": "22895:49:6" + }, + { + "nativeSrc": "22953:86:6", + "nodeType": "YulAssignment", + "src": "22953:86:6", + "value": { + "arguments": [ + { + "name": "value6", + "nativeSrc": "23025:6:6", + "nodeType": "YulIdentifier", + "src": "23025:6:6" + }, + { + "name": "tail", + "nativeSrc": "23034:4:6", + "nodeType": "YulIdentifier", + "src": "23034:4:6" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nativeSrc": "22961:63:6", + "nodeType": "YulIdentifier", + "src": "22961:63:6" + }, + "nativeSrc": "22961:78:6", + "nodeType": "YulFunctionCall", + "src": "22961:78:6" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "22953:4:6", + "nodeType": "YulIdentifier", + "src": "22953:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "23060:9:6", + "nodeType": "YulIdentifier", + "src": "23060:9:6" + }, + { + "kind": "number", + "nativeSrc": "23071:3:6", + "nodeType": "YulLiteral", + "src": "23071:3:6", + "type": "", + "value": "224" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23056:3:6", + "nodeType": "YulIdentifier", + "src": "23056:3:6" + }, + "nativeSrc": "23056:19:6", + "nodeType": "YulFunctionCall", + "src": "23056:19:6" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "23081:4:6", + "nodeType": "YulIdentifier", + "src": "23081:4:6" + }, + { + "name": "headStart", + "nativeSrc": "23087:9:6", + "nodeType": "YulIdentifier", + "src": "23087:9:6" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "23077:3:6", + "nodeType": "YulIdentifier", + "src": "23077:3:6" + }, + "nativeSrc": "23077:20:6", + "nodeType": "YulFunctionCall", + "src": "23077:20:6" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "23049:6:6", + "nodeType": "YulIdentifier", + "src": "23049:6:6" + }, + "nativeSrc": "23049:49:6", + "nodeType": "YulFunctionCall", + "src": "23049:49:6" + }, + "nativeSrc": "23049:49:6", + "nodeType": "YulExpressionStatement", + "src": "23049:49:6" + }, + { + "nativeSrc": "23107:86:6", + "nodeType": "YulAssignment", + "src": "23107:86:6", + "value": { + "arguments": [ + { + "name": "value7", + "nativeSrc": "23179:6:6", + "nodeType": "YulIdentifier", + "src": "23179:6:6" + }, + { + "name": "tail", + "nativeSrc": "23188:4:6", + "nodeType": "YulIdentifier", + "src": "23188:4:6" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nativeSrc": "23115:63:6", + "nodeType": "YulIdentifier", + "src": "23115:63:6" + }, + "nativeSrc": "23115:78:6", + "nodeType": "YulFunctionCall", + "src": "23115:78:6" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "23107:4:6", + "nodeType": "YulIdentifier", + "src": "23107:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "23214:9:6", + "nodeType": "YulIdentifier", + "src": "23214:9:6" + }, + { + "kind": "number", + "nativeSrc": "23225:3:6", + "nodeType": "YulLiteral", + "src": "23225:3:6", + "type": "", + "value": "256" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23210:3:6", + "nodeType": "YulIdentifier", + "src": "23210:3:6" + }, + "nativeSrc": "23210:19:6", + "nodeType": "YulFunctionCall", + "src": "23210:19:6" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "23235:4:6", + "nodeType": "YulIdentifier", + "src": "23235:4:6" + }, + { + "name": "headStart", + "nativeSrc": "23241:9:6", + "nodeType": "YulIdentifier", + "src": "23241:9:6" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "23231:3:6", + "nodeType": "YulIdentifier", + "src": "23231:3:6" + }, + "nativeSrc": "23231:20:6", + "nodeType": "YulFunctionCall", + "src": "23231:20:6" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "23203:6:6", + "nodeType": "YulIdentifier", + "src": "23203:6:6" + }, + "nativeSrc": "23203:49:6", + "nodeType": "YulFunctionCall", + "src": "23203:49:6" + }, + "nativeSrc": "23203:49:6", + "nodeType": "YulExpressionStatement", + "src": "23203:49:6" + }, + { + "nativeSrc": "23261:86:6", + "nodeType": "YulAssignment", + "src": "23261:86:6", + "value": { + "arguments": [ + { + "name": "value8", + "nativeSrc": "23333:6:6", + "nodeType": "YulIdentifier", + "src": "23333:6:6" + }, + { + "name": "tail", + "nativeSrc": "23342:4:6", + "nodeType": "YulIdentifier", + "src": "23342:4:6" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nativeSrc": "23269:63:6", + "nodeType": "YulIdentifier", + "src": "23269:63:6" + }, + "nativeSrc": "23269:78:6", + "nodeType": "YulFunctionCall", + "src": "23269:78:6" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "23261:4:6", + "nodeType": "YulIdentifier", + "src": "23261:4:6" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_address_t_bytes32_t_uint32_t_uint256_t_uint256_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__to_t_address_t_bytes32_t_uint32_t_uint256_t_uint256_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "21886:1468:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "22194:9:6", + "nodeType": "YulTypedName", + "src": "22194:9:6", + "type": "" + }, + { + "name": "value8", + "nativeSrc": "22206:6:6", + "nodeType": "YulTypedName", + "src": "22206:6:6", + "type": "" + }, + { + "name": "value7", + "nativeSrc": "22214:6:6", + "nodeType": "YulTypedName", + "src": "22214:6:6", + "type": "" + }, + { + "name": "value6", + "nativeSrc": "22222:6:6", + "nodeType": "YulTypedName", + "src": "22222:6:6", + "type": "" + }, + { + "name": "value5", + "nativeSrc": "22230:6:6", + "nodeType": "YulTypedName", + "src": "22230:6:6", + "type": "" + }, + { + "name": "value4", + "nativeSrc": "22238:6:6", + "nodeType": "YulTypedName", + "src": "22238:6:6", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "22246:6:6", + "nodeType": "YulTypedName", + "src": "22246:6:6", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "22254:6:6", + "nodeType": "YulTypedName", + "src": "22254:6:6", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "22262:6:6", + "nodeType": "YulTypedName", + "src": "22262:6:6", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "22270:6:6", + "nodeType": "YulTypedName", + "src": "22270:6:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "22281:4:6", + "nodeType": "YulTypedName", + "src": "22281:4:6", + "type": "" + } + ], + "src": "21886:1468:6" + }, + { + "body": { + "nativeSrc": "23448:28:6", + "nodeType": "YulBlock", + "src": "23448:28:6", + "statements": [ + { + "nativeSrc": "23458:12:6", + "nodeType": "YulAssignment", + "src": "23458:12:6", + "value": { + "name": "ptr", + "nativeSrc": "23467:3:6", + "nodeType": "YulIdentifier", + "src": "23467:3:6" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "23458:5:6", + "nodeType": "YulIdentifier", + "src": "23458:5:6" + } + ] + } + ] + }, + "name": "calldata_access_t_struct$_AffinePoint_$468_calldata_ptr", + "nativeSrc": "23360:116:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "baseRef", + "nativeSrc": "23425:7:6", + "nodeType": "YulTypedName", + "src": "23425:7:6", + "type": "" + }, + { + "name": "ptr", + "nativeSrc": "23434:3:6", + "nodeType": "YulTypedName", + "src": "23434:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "23442:5:6", + "nodeType": "YulTypedName", + "src": "23442:5:6", + "type": "" + } + ], + "src": "23360:116:6" + }, + { + "body": { + "nativeSrc": "23540:64:6", + "nodeType": "YulBlock", + "src": "23540:64:6", + "statements": [ + { + "nativeSrc": "23550:48:6", + "nodeType": "YulAssignment", + "src": "23550:48:6", + "value": { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "23580:3:6", + "nodeType": "YulIdentifier", + "src": "23580:3:6" + }, + { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "23589:3:6", + "nodeType": "YulIdentifier", + "src": "23589:3:6" + }, + { + "kind": "number", + "nativeSrc": "23594:2:6", + "nodeType": "YulLiteral", + "src": "23594:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23585:3:6", + "nodeType": "YulIdentifier", + "src": "23585:3:6" + }, + "nativeSrc": "23585:12:6", + "nodeType": "YulFunctionCall", + "src": "23585:12:6" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "23559:20:6", + "nodeType": "YulIdentifier", + "src": "23559:20:6" + }, + "nativeSrc": "23559:39:6", + "nodeType": "YulFunctionCall", + "src": "23559:39:6" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "23550:5:6", + "nodeType": "YulIdentifier", + "src": "23550:5:6" + } + ] + } + ] + }, + "name": "calldata_access_t_uint256", + "nativeSrc": "23482:122:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "baseRef", + "nativeSrc": "23517:7:6", + "nodeType": "YulTypedName", + "src": "23517:7:6", + "type": "" + }, + { + "name": "ptr", + "nativeSrc": "23526:3:6", + "nodeType": "YulTypedName", + "src": "23526:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "23534:5:6", + "nodeType": "YulTypedName", + "src": "23534:5:6", + "type": "" + } + ], + "src": "23482:122:6" + }, + { + "body": { + "nativeSrc": "23665:53:6", + "nodeType": "YulBlock", + "src": "23665:53:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "23682:3:6", + "nodeType": "YulIdentifier", + "src": "23682:3:6" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "23705:5:6", + "nodeType": "YulIdentifier", + "src": "23705:5:6" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "23687:17:6", + "nodeType": "YulIdentifier", + "src": "23687:17:6" + }, + "nativeSrc": "23687:24:6", + "nodeType": "YulFunctionCall", + "src": "23687:24:6" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "23675:6:6", + "nodeType": "YulIdentifier", + "src": "23675:6:6" + }, + "nativeSrc": "23675:37:6", + "nodeType": "YulFunctionCall", + "src": "23675:37:6" + }, + "nativeSrc": "23675:37:6", + "nodeType": "YulExpressionStatement", + "src": "23675:37:6" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256", + "nativeSrc": "23610:108:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "23653:5:6", + "nodeType": "YulTypedName", + "src": "23653:5:6", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "23660:3:6", + "nodeType": "YulTypedName", + "src": "23660:3:6", + "type": "" + } + ], + "src": "23610:108:6" + }, + { + "body": { + "nativeSrc": "23918:439:6", + "nodeType": "YulBlock", + "src": "23918:439:6", + "statements": [ + { + "nativeSrc": "23928:26:6", + "nodeType": "YulVariableDeclaration", + "src": "23928:26:6", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "23944:3:6", + "nodeType": "YulIdentifier", + "src": "23944:3:6" + }, + { + "kind": "number", + "nativeSrc": "23949:4:6", + "nodeType": "YulLiteral", + "src": "23949:4:6", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23940:3:6", + "nodeType": "YulIdentifier", + "src": "23940:3:6" + }, + "nativeSrc": "23940:14:6", + "nodeType": "YulFunctionCall", + "src": "23940:14:6" + }, + "variables": [ + { + "name": "tail", + "nativeSrc": "23932:4:6", + "nodeType": "YulTypedName", + "src": "23932:4:6", + "type": "" + } + ] + }, + { + "nativeSrc": "23964:188:6", + "nodeType": "YulBlock", + "src": "23964:188:6", + "statements": [ + { + "nativeSrc": "23996:70:6", + "nodeType": "YulVariableDeclaration", + "src": "23996:70:6", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "24042:5:6", + "nodeType": "YulIdentifier", + "src": "24042:5:6" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "24053:5:6", + "nodeType": "YulIdentifier", + "src": "24053:5:6" + }, + { + "kind": "number", + "nativeSrc": "24060:4:6", + "nodeType": "YulLiteral", + "src": "24060:4:6", + "type": "", + "value": "0x00" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24049:3:6", + "nodeType": "YulIdentifier", + "src": "24049:3:6" + }, + "nativeSrc": "24049:16:6", + "nodeType": "YulFunctionCall", + "src": "24049:16:6" + } + ], + "functionName": { + "name": "calldata_access_t_uint256", + "nativeSrc": "24016:25:6", + "nodeType": "YulIdentifier", + "src": "24016:25:6" + }, + "nativeSrc": "24016:50:6", + "nodeType": "YulFunctionCall", + "src": "24016:50:6" + }, + "variables": [ + { + "name": "memberValue0", + "nativeSrc": "24000:12:6", + "nodeType": "YulTypedName", + "src": "24000:12:6", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memberValue0", + "nativeSrc": "24113:12:6", + "nodeType": "YulIdentifier", + "src": "24113:12:6" + }, + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "24131:3:6", + "nodeType": "YulIdentifier", + "src": "24131:3:6" + }, + { + "kind": "number", + "nativeSrc": "24136:4:6", + "nodeType": "YulLiteral", + "src": "24136:4:6", + "type": "", + "value": "0x00" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24127:3:6", + "nodeType": "YulIdentifier", + "src": "24127:3:6" + }, + "nativeSrc": "24127:14:6", + "nodeType": "YulFunctionCall", + "src": "24127:14:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256", + "nativeSrc": "24079:33:6", + "nodeType": "YulIdentifier", + "src": "24079:33:6" + }, + "nativeSrc": "24079:63:6", + "nodeType": "YulFunctionCall", + "src": "24079:63:6" + }, + "nativeSrc": "24079:63:6", + "nodeType": "YulExpressionStatement", + "src": "24079:63:6" + } + ] + }, + { + "nativeSrc": "24162:188:6", + "nodeType": "YulBlock", + "src": "24162:188:6", + "statements": [ + { + "nativeSrc": "24194:70:6", + "nodeType": "YulVariableDeclaration", + "src": "24194:70:6", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "24240:5:6", + "nodeType": "YulIdentifier", + "src": "24240:5:6" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "24251:5:6", + "nodeType": "YulIdentifier", + "src": "24251:5:6" + }, + { + "kind": "number", + "nativeSrc": "24258:4:6", + "nodeType": "YulLiteral", + "src": "24258:4:6", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24247:3:6", + "nodeType": "YulIdentifier", + "src": "24247:3:6" + }, + "nativeSrc": "24247:16:6", + "nodeType": "YulFunctionCall", + "src": "24247:16:6" + } + ], + "functionName": { + "name": "calldata_access_t_uint256", + "nativeSrc": "24214:25:6", + "nodeType": "YulIdentifier", + "src": "24214:25:6" + }, + "nativeSrc": "24214:50:6", + "nodeType": "YulFunctionCall", + "src": "24214:50:6" + }, + "variables": [ + { + "name": "memberValue0", + "nativeSrc": "24198:12:6", + "nodeType": "YulTypedName", + "src": "24198:12:6", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memberValue0", + "nativeSrc": "24311:12:6", + "nodeType": "YulIdentifier", + "src": "24311:12:6" + }, + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "24329:3:6", + "nodeType": "YulIdentifier", + "src": "24329:3:6" + }, + { + "kind": "number", + "nativeSrc": "24334:4:6", + "nodeType": "YulLiteral", + "src": "24334:4:6", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24325:3:6", + "nodeType": "YulIdentifier", + "src": "24325:3:6" + }, + "nativeSrc": "24325:14:6", + "nodeType": "YulFunctionCall", + "src": "24325:14:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256", + "nativeSrc": "24277:33:6", + "nodeType": "YulIdentifier", + "src": "24277:33:6" + }, + "nativeSrc": "24277:63:6", + "nodeType": "YulFunctionCall", + "src": "24277:63:6" + }, + "nativeSrc": "24277:63:6", + "nodeType": "YulExpressionStatement", + "src": "24277:63:6" + } + ] + } + ] + }, + "name": "abi_encode_t_struct$_AffinePoint_$468_calldata_ptr_to_t_struct$_AffinePoint_$468_memory_ptr", + "nativeSrc": "23804:553:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "23905:5:6", + "nodeType": "YulTypedName", + "src": "23905:5:6", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "23912:3:6", + "nodeType": "YulTypedName", + "src": "23912:3:6", + "type": "" + } + ], + "src": "23804:553:6" + }, + { + "body": { + "nativeSrc": "24406:43:6", + "nodeType": "YulBlock", + "src": "24406:43:6", + "statements": [ + { + "nativeSrc": "24416:27:6", + "nodeType": "YulAssignment", + "src": "24416:27:6", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "24431:5:6", + "nodeType": "YulIdentifier", + "src": "24431:5:6" + }, + { + "kind": "number", + "nativeSrc": "24438:4:6", + "nodeType": "YulLiteral", + "src": "24438:4:6", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "24427:3:6", + "nodeType": "YulIdentifier", + "src": "24427:3:6" + }, + "nativeSrc": "24427:16:6", + "nodeType": "YulFunctionCall", + "src": "24427:16:6" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "24416:7:6", + "nodeType": "YulIdentifier", + "src": "24416:7:6" + } + ] + } + ] + }, + "name": "cleanup_t_uint8", + "nativeSrc": "24363:86:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "24388:5:6", + "nodeType": "YulTypedName", + "src": "24388:5:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "24398:7:6", + "nodeType": "YulTypedName", + "src": "24398:7:6", + "type": "" + } + ], + "src": "24363:86:6" + }, + { + "body": { + "nativeSrc": "24496:77:6", + "nodeType": "YulBlock", + "src": "24496:77:6", + "statements": [ + { + "body": { + "nativeSrc": "24551:16:6", + "nodeType": "YulBlock", + "src": "24551:16:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "24560:1:6", + "nodeType": "YulLiteral", + "src": "24560:1:6", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "24563:1:6", + "nodeType": "YulLiteral", + "src": "24563:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "24553:6:6", + "nodeType": "YulIdentifier", + "src": "24553:6:6" + }, + "nativeSrc": "24553:12:6", + "nodeType": "YulFunctionCall", + "src": "24553:12:6" + }, + "nativeSrc": "24553:12:6", + "nodeType": "YulExpressionStatement", + "src": "24553:12:6" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "24519:5:6", + "nodeType": "YulIdentifier", + "src": "24519:5:6" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "24542:5:6", + "nodeType": "YulIdentifier", + "src": "24542:5:6" + } + ], + "functionName": { + "name": "cleanup_t_uint8", + "nativeSrc": "24526:15:6", + "nodeType": "YulIdentifier", + "src": "24526:15:6" + }, + "nativeSrc": "24526:22:6", + "nodeType": "YulFunctionCall", + "src": "24526:22:6" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "24516:2:6", + "nodeType": "YulIdentifier", + "src": "24516:2:6" + }, + "nativeSrc": "24516:33:6", + "nodeType": "YulFunctionCall", + "src": "24516:33:6" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "24509:6:6", + "nodeType": "YulIdentifier", + "src": "24509:6:6" + }, + "nativeSrc": "24509:41:6", + "nodeType": "YulFunctionCall", + "src": "24509:41:6" + }, + "nativeSrc": "24506:61:6", + "nodeType": "YulIf", + "src": "24506:61:6" + } + ] + }, + "name": "validator_revert_t_uint8", + "nativeSrc": "24455:118:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "24489:5:6", + "nodeType": "YulTypedName", + "src": "24489:5:6", + "type": "" + } + ], + "src": "24455:118:6" + }, + { + "body": { + "nativeSrc": "24629:85:6", + "nodeType": "YulBlock", + "src": "24629:85:6", + "statements": [ + { + "nativeSrc": "24639:29:6", + "nodeType": "YulAssignment", + "src": "24639:29:6", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "24661:6:6", + "nodeType": "YulIdentifier", + "src": "24661:6:6" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "24648:12:6", + "nodeType": "YulIdentifier", + "src": "24648:12:6" + }, + "nativeSrc": "24648:20:6", + "nodeType": "YulFunctionCall", + "src": "24648:20:6" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "24639:5:6", + "nodeType": "YulIdentifier", + "src": "24639:5:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "24702:5:6", + "nodeType": "YulIdentifier", + "src": "24702:5:6" + } + ], + "functionName": { + "name": "validator_revert_t_uint8", + "nativeSrc": "24677:24:6", + "nodeType": "YulIdentifier", + "src": "24677:24:6" + }, + "nativeSrc": "24677:31:6", + "nodeType": "YulFunctionCall", + "src": "24677:31:6" + }, + "nativeSrc": "24677:31:6", + "nodeType": "YulExpressionStatement", + "src": "24677:31:6" + } + ] + }, + "name": "abi_decode_t_uint8", + "nativeSrc": "24579:135:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "24607:6:6", + "nodeType": "YulTypedName", + "src": "24607:6:6", + "type": "" + }, + { + "name": "end", + "nativeSrc": "24615:3:6", + "nodeType": "YulTypedName", + "src": "24615:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "24623:5:6", + "nodeType": "YulTypedName", + "src": "24623:5:6", + "type": "" + } + ], + "src": "24579:135:6" + }, + { + "body": { + "nativeSrc": "24776:62:6", + "nodeType": "YulBlock", + "src": "24776:62:6", + "statements": [ + { + "nativeSrc": "24786:46:6", + "nodeType": "YulAssignment", + "src": "24786:46:6", + "value": { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "24814:3:6", + "nodeType": "YulIdentifier", + "src": "24814:3:6" + }, + { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "24823:3:6", + "nodeType": "YulIdentifier", + "src": "24823:3:6" + }, + { + "kind": "number", + "nativeSrc": "24828:2:6", + "nodeType": "YulLiteral", + "src": "24828:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24819:3:6", + "nodeType": "YulIdentifier", + "src": "24819:3:6" + }, + "nativeSrc": "24819:12:6", + "nodeType": "YulFunctionCall", + "src": "24819:12:6" + } + ], + "functionName": { + "name": "abi_decode_t_uint8", + "nativeSrc": "24795:18:6", + "nodeType": "YulIdentifier", + "src": "24795:18:6" + }, + "nativeSrc": "24795:37:6", + "nodeType": "YulFunctionCall", + "src": "24795:37:6" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "24786:5:6", + "nodeType": "YulIdentifier", + "src": "24786:5:6" + } + ] + } + ] + }, + "name": "calldata_access_t_uint8", + "nativeSrc": "24720:118:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "baseRef", + "nativeSrc": "24753:7:6", + "nodeType": "YulTypedName", + "src": "24753:7:6", + "type": "" + }, + { + "name": "ptr", + "nativeSrc": "24762:3:6", + "nodeType": "YulTypedName", + "src": "24762:3:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "24770:5:6", + "nodeType": "YulTypedName", + "src": "24770:5:6", + "type": "" + } + ], + "src": "24720:118:6" + }, + { + "body": { + "nativeSrc": "24895:51:6", + "nodeType": "YulBlock", + "src": "24895:51:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "24912:3:6", + "nodeType": "YulIdentifier", + "src": "24912:3:6" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "24933:5:6", + "nodeType": "YulIdentifier", + "src": "24933:5:6" + } + ], + "functionName": { + "name": "cleanup_t_uint8", + "nativeSrc": "24917:15:6", + "nodeType": "YulIdentifier", + "src": "24917:15:6" + }, + "nativeSrc": "24917:22:6", + "nodeType": "YulFunctionCall", + "src": "24917:22:6" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "24905:6:6", + "nodeType": "YulIdentifier", + "src": "24905:6:6" + }, + "nativeSrc": "24905:35:6", + "nodeType": "YulFunctionCall", + "src": "24905:35:6" + }, + "nativeSrc": "24905:35:6", + "nodeType": "YulExpressionStatement", + "src": "24905:35:6" + } + ] + }, + "name": "abi_encode_t_uint8_to_t_uint8", + "nativeSrc": "24844:102:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "24883:5:6", + "nodeType": "YulTypedName", + "src": "24883:5:6", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "24890:3:6", + "nodeType": "YulTypedName", + "src": "24890:3:6", + "type": "" + } + ], + "src": "24844:102:6" + }, + { + "body": { + "nativeSrc": "25148:731:6", + "nodeType": "YulBlock", + "src": "25148:731:6", + "statements": [ + { + "nativeSrc": "25158:26:6", + "nodeType": "YulVariableDeclaration", + "src": "25158:26:6", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "25174:3:6", + "nodeType": "YulIdentifier", + "src": "25174:3:6" + }, + { + "kind": "number", + "nativeSrc": "25179:4:6", + "nodeType": "YulLiteral", + "src": "25179:4:6", + "type": "", + "value": "0x80" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25170:3:6", + "nodeType": "YulIdentifier", + "src": "25170:3:6" + }, + "nativeSrc": "25170:14:6", + "nodeType": "YulFunctionCall", + "src": "25170:14:6" + }, + "variables": [ + { + "name": "tail", + "nativeSrc": "25162:4:6", + "nodeType": "YulTypedName", + "src": "25162:4:6", + "type": "" + } + ] + }, + { + "nativeSrc": "25194:279:6", + "nodeType": "YulBlock", + "src": "25194:279:6", + "statements": [ + { + "nativeSrc": "25229:100:6", + "nodeType": "YulVariableDeclaration", + "src": "25229:100:6", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "25305:5:6", + "nodeType": "YulIdentifier", + "src": "25305:5:6" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "25316:5:6", + "nodeType": "YulIdentifier", + "src": "25316:5:6" + }, + { + "kind": "number", + "nativeSrc": "25323:4:6", + "nodeType": "YulLiteral", + "src": "25323:4:6", + "type": "", + "value": "0x00" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25312:3:6", + "nodeType": "YulIdentifier", + "src": "25312:3:6" + }, + "nativeSrc": "25312:16:6", + "nodeType": "YulFunctionCall", + "src": "25312:16:6" + } + ], + "functionName": { + "name": "calldata_access_t_struct$_AffinePoint_$468_calldata_ptr", + "nativeSrc": "25249:55:6", + "nodeType": "YulIdentifier", + "src": "25249:55:6" + }, + "nativeSrc": "25249:80:6", + "nodeType": "YulFunctionCall", + "src": "25249:80:6" + }, + "variables": [ + { + "name": "memberValue0", + "nativeSrc": "25233:12:6", + "nodeType": "YulTypedName", + "src": "25233:12:6", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memberValue0", + "nativeSrc": "25434:12:6", + "nodeType": "YulIdentifier", + "src": "25434:12:6" + }, + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "25452:3:6", + "nodeType": "YulIdentifier", + "src": "25452:3:6" + }, + { + "kind": "number", + "nativeSrc": "25457:4:6", + "nodeType": "YulLiteral", + "src": "25457:4:6", + "type": "", + "value": "0x00" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25448:3:6", + "nodeType": "YulIdentifier", + "src": "25448:3:6" + }, + "nativeSrc": "25448:14:6", + "nodeType": "YulFunctionCall", + "src": "25448:14:6" + } + ], + "functionName": { + "name": "abi_encode_t_struct$_AffinePoint_$468_calldata_ptr_to_t_struct$_AffinePoint_$468_memory_ptr", + "nativeSrc": "25342:91:6", + "nodeType": "YulIdentifier", + "src": "25342:91:6" + }, + "nativeSrc": "25342:121:6", + "nodeType": "YulFunctionCall", + "src": "25342:121:6" + }, + "nativeSrc": "25342:121:6", + "nodeType": "YulExpressionStatement", + "src": "25342:121:6" + } + ] + }, + { + "nativeSrc": "25483:188:6", + "nodeType": "YulBlock", + "src": "25483:188:6", + "statements": [ + { + "nativeSrc": "25515:70:6", + "nodeType": "YulVariableDeclaration", + "src": "25515:70:6", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "25561:5:6", + "nodeType": "YulIdentifier", + "src": "25561:5:6" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "25572:5:6", + "nodeType": "YulIdentifier", + "src": "25572:5:6" + }, + { + "kind": "number", + "nativeSrc": "25579:4:6", + "nodeType": "YulLiteral", + "src": "25579:4:6", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25568:3:6", + "nodeType": "YulIdentifier", + "src": "25568:3:6" + }, + "nativeSrc": "25568:16:6", + "nodeType": "YulFunctionCall", + "src": "25568:16:6" + } + ], + "functionName": { + "name": "calldata_access_t_uint256", + "nativeSrc": "25535:25:6", + "nodeType": "YulIdentifier", + "src": "25535:25:6" + }, + "nativeSrc": "25535:50:6", + "nodeType": "YulFunctionCall", + "src": "25535:50:6" + }, + "variables": [ + { + "name": "memberValue0", + "nativeSrc": "25519:12:6", + "nodeType": "YulTypedName", + "src": "25519:12:6", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memberValue0", + "nativeSrc": "25632:12:6", + "nodeType": "YulIdentifier", + "src": "25632:12:6" + }, + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "25650:3:6", + "nodeType": "YulIdentifier", + "src": "25650:3:6" + }, + { + "kind": "number", + "nativeSrc": "25655:4:6", + "nodeType": "YulLiteral", + "src": "25655:4:6", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25646:3:6", + "nodeType": "YulIdentifier", + "src": "25646:3:6" + }, + "nativeSrc": "25646:14:6", + "nodeType": "YulFunctionCall", + "src": "25646:14:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256", + "nativeSrc": "25598:33:6", + "nodeType": "YulIdentifier", + "src": "25598:33:6" + }, + "nativeSrc": "25598:63:6", + "nodeType": "YulFunctionCall", + "src": "25598:63:6" + }, + "nativeSrc": "25598:63:6", + "nodeType": "YulExpressionStatement", + "src": "25598:63:6" + } + ] + }, + { + "nativeSrc": "25681:191:6", + "nodeType": "YulBlock", + "src": "25681:191:6", + "statements": [ + { + "nativeSrc": "25722:68:6", + "nodeType": "YulVariableDeclaration", + "src": "25722:68:6", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "25766:5:6", + "nodeType": "YulIdentifier", + "src": "25766:5:6" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "25777:5:6", + "nodeType": "YulIdentifier", + "src": "25777:5:6" + }, + { + "kind": "number", + "nativeSrc": "25784:4:6", + "nodeType": "YulLiteral", + "src": "25784:4:6", + "type": "", + "value": "0x60" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25773:3:6", + "nodeType": "YulIdentifier", + "src": "25773:3:6" + }, + "nativeSrc": "25773:16:6", + "nodeType": "YulFunctionCall", + "src": "25773:16:6" + } + ], + "functionName": { + "name": "calldata_access_t_uint8", + "nativeSrc": "25742:23:6", + "nodeType": "YulIdentifier", + "src": "25742:23:6" + }, + "nativeSrc": "25742:48:6", + "nodeType": "YulFunctionCall", + "src": "25742:48:6" + }, + "variables": [ + { + "name": "memberValue0", + "nativeSrc": "25726:12:6", + "nodeType": "YulTypedName", + "src": "25726:12:6", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memberValue0", + "nativeSrc": "25833:12:6", + "nodeType": "YulIdentifier", + "src": "25833:12:6" + }, + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "25851:3:6", + "nodeType": "YulIdentifier", + "src": "25851:3:6" + }, + { + "kind": "number", + "nativeSrc": "25856:4:6", + "nodeType": "YulLiteral", + "src": "25856:4:6", + "type": "", + "value": "0x60" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25847:3:6", + "nodeType": "YulIdentifier", + "src": "25847:3:6" + }, + "nativeSrc": "25847:14:6", + "nodeType": "YulFunctionCall", + "src": "25847:14:6" + } + ], + "functionName": { + "name": "abi_encode_t_uint8_to_t_uint8", + "nativeSrc": "25803:29:6", + "nodeType": "YulIdentifier", + "src": "25803:29:6" + }, + "nativeSrc": "25803:59:6", + "nodeType": "YulFunctionCall", + "src": "25803:59:6" + }, + "nativeSrc": "25803:59:6", + "nodeType": "YulExpressionStatement", + "src": "25803:59:6" + } + ] + } + ] + }, + "name": "abi_encode_t_struct$_Signature_$476_calldata_ptr_to_t_struct$_Signature_$476_memory_ptr_fromStack", + "nativeSrc": "25028:851:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "25135:5:6", + "nodeType": "YulTypedName", + "src": "25135:5:6", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "25142:3:6", + "nodeType": "YulTypedName", + "src": "25142:3:6", + "type": "" + } + ], + "src": "25028:851:6" + }, + { + "body": { + "nativeSrc": "26065:261:6", + "nodeType": "YulBlock", + "src": "26065:261:6", + "statements": [ + { + "nativeSrc": "26075:27:6", + "nodeType": "YulAssignment", + "src": "26075:27:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "26087:9:6", + "nodeType": "YulIdentifier", + "src": "26087:9:6" + }, + { + "kind": "number", + "nativeSrc": "26098:3:6", + "nodeType": "YulLiteral", + "src": "26098:3:6", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26083:3:6", + "nodeType": "YulIdentifier", + "src": "26083:3:6" + }, + "nativeSrc": "26083:19:6", + "nodeType": "YulFunctionCall", + "src": "26083:19:6" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "26075:4:6", + "nodeType": "YulIdentifier", + "src": "26075:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "26156:6:6", + "nodeType": "YulIdentifier", + "src": "26156:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "26169:9:6", + "nodeType": "YulIdentifier", + "src": "26169:9:6" + }, + { + "kind": "number", + "nativeSrc": "26180:1:6", + "nodeType": "YulLiteral", + "src": "26180:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26165:3:6", + "nodeType": "YulIdentifier", + "src": "26165:3:6" + }, + "nativeSrc": "26165:17:6", + "nodeType": "YulFunctionCall", + "src": "26165:17:6" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "26112:43:6", + "nodeType": "YulIdentifier", + "src": "26112:43:6" + }, + "nativeSrc": "26112:71:6", + "nodeType": "YulFunctionCall", + "src": "26112:71:6" + }, + "nativeSrc": "26112:71:6", + "nodeType": "YulExpressionStatement", + "src": "26112:71:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "26291:6:6", + "nodeType": "YulIdentifier", + "src": "26291:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "26304:9:6", + "nodeType": "YulIdentifier", + "src": "26304:9:6" + }, + { + "kind": "number", + "nativeSrc": "26315:2:6", + "nodeType": "YulLiteral", + "src": "26315:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26300:3:6", + "nodeType": "YulIdentifier", + "src": "26300:3:6" + }, + "nativeSrc": "26300:18:6", + "nodeType": "YulFunctionCall", + "src": "26300:18:6" + } + ], + "functionName": { + "name": "abi_encode_t_struct$_Signature_$476_calldata_ptr_to_t_struct$_Signature_$476_memory_ptr_fromStack", + "nativeSrc": "26193:97:6", + "nodeType": "YulIdentifier", + "src": "26193:97:6" + }, + "nativeSrc": "26193:126:6", + "nodeType": "YulFunctionCall", + "src": "26193:126:6" + }, + "nativeSrc": "26193:126:6", + "nodeType": "YulExpressionStatement", + "src": "26193:126:6" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_struct$_Signature_$476_calldata_ptr__to_t_address_t_struct$_Signature_$476_memory_ptr__fromStack_reversed", + "nativeSrc": "25885:441:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "26029:9:6", + "nodeType": "YulTypedName", + "src": "26029:9:6", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "26041:6:6", + "nodeType": "YulTypedName", + "src": "26041:6:6", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "26049:6:6", + "nodeType": "YulTypedName", + "src": "26049:6:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "26060:4:6", + "nodeType": "YulTypedName", + "src": "26060:4:6", + "type": "" + } + ], + "src": "25885:441:6" + }, + { + "body": { + "nativeSrc": "26458:206:6", + "nodeType": "YulBlock", + "src": "26458:206:6", + "statements": [ + { + "nativeSrc": "26468:26:6", + "nodeType": "YulAssignment", + "src": "26468:26:6", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "26480:9:6", + "nodeType": "YulIdentifier", + "src": "26480:9:6" + }, + { + "kind": "number", + "nativeSrc": "26491:2:6", + "nodeType": "YulLiteral", + "src": "26491:2:6", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26476:3:6", + "nodeType": "YulIdentifier", + "src": "26476:3:6" + }, + "nativeSrc": "26476:18:6", + "nodeType": "YulFunctionCall", + "src": "26476:18:6" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "26468:4:6", + "nodeType": "YulIdentifier", + "src": "26468:4:6" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "26548:6:6", + "nodeType": "YulIdentifier", + "src": "26548:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "26561:9:6", + "nodeType": "YulIdentifier", + "src": "26561:9:6" + }, + { + "kind": "number", + "nativeSrc": "26572:1:6", + "nodeType": "YulLiteral", + "src": "26572:1:6", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26557:3:6", + "nodeType": "YulIdentifier", + "src": "26557:3:6" + }, + "nativeSrc": "26557:17:6", + "nodeType": "YulFunctionCall", + "src": "26557:17:6" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "26504:43:6", + "nodeType": "YulIdentifier", + "src": "26504:43:6" + }, + "nativeSrc": "26504:71:6", + "nodeType": "YulFunctionCall", + "src": "26504:71:6" + }, + "nativeSrc": "26504:71:6", + "nodeType": "YulExpressionStatement", + "src": "26504:71:6" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "26629:6:6", + "nodeType": "YulIdentifier", + "src": "26629:6:6" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "26642:9:6", + "nodeType": "YulIdentifier", + "src": "26642:9:6" + }, + { + "kind": "number", + "nativeSrc": "26653:2:6", + "nodeType": "YulLiteral", + "src": "26653:2:6", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26638:3:6", + "nodeType": "YulIdentifier", + "src": "26638:3:6" + }, + "nativeSrc": "26638:18:6", + "nodeType": "YulFunctionCall", + "src": "26638:18:6" + } + ], + "functionName": { + "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nativeSrc": "26585:43:6", + "nodeType": "YulIdentifier", + "src": "26585:43:6" + }, + "nativeSrc": "26585:72:6", + "nodeType": "YulFunctionCall", + "src": "26585:72:6" + }, + "nativeSrc": "26585:72:6", + "nodeType": "YulExpressionStatement", + "src": "26585:72:6" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed", + "nativeSrc": "26332:332:6", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "26422:9:6", + "nodeType": "YulTypedName", + "src": "26422:9:6", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "26434:6:6", + "nodeType": "YulTypedName", + "src": "26434:6:6", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "26442:6:6", + "nodeType": "YulTypedName", + "src": "26442:6:6", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "26453:4:6", + "nodeType": "YulTypedName", + "src": "26453:4:6", + "type": "" + } + ], + "src": "26332:332:6" + } + ] + }, + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { 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 cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\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 abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_uint256t_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\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_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes4(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\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 abi_decode_t_bytes32(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes32(value)\n }\n\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\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_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\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_decode_tuple_t_bytes32t_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\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_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() {\n revert(0, 0)\n }\n\n function revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() {\n revert(0, 0)\n }\n\n // struct ChainSignatures.ErrorResponse[]\n function abi_decode_t_array$_t_struct$_ErrorResponse_$487_calldata_ptr_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_array$_t_struct$_ErrorResponse_$487_calldata_ptr_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0, value1 := abi_decode_t_array$_t_struct$_ErrorResponse_$487_calldata_ptr_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(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 allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\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 size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_calldata_to_memory_with_cleanup(src, dst, length) {\n\n calldatacopy(dst, src, length)\n mstore(add(dst, length), 0)\n\n }\n\n function abi_decode_available_length_t_string_memory_ptr(src, length, end) -> array {\n array := allocate_memory(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_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory_with_cleanup(src, dst, length)\n }\n\n // string\n function abi_decode_t_string_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_string_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function cleanup_t_uint32(value) -> cleaned {\n cleaned := and(value, 0xffffffff)\n }\n\n function validator_revert_t_uint32(value) {\n if iszero(eq(value, cleanup_t_uint32(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint32(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint32(value)\n }\n\n // struct ChainSignatures.SignRequest\n function abi_decode_t_struct$_SignRequest_$463_memory_ptr(headStart, end) -> value {\n if slt(sub(end, headStart), 0xc0) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n value := allocate_memory(0xc0)\n\n {\n // payload\n\n let offset := 0\n\n mstore(add(value, 0x00), abi_decode_t_bytes32(add(headStart, offset), end))\n\n }\n\n {\n // path\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x20), abi_decode_t_string_memory_ptr(add(headStart, offset), end))\n\n }\n\n {\n // keyVersion\n\n let offset := 64\n\n mstore(add(value, 0x40), abi_decode_t_uint32(add(headStart, offset), end))\n\n }\n\n {\n // algo\n\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x60), abi_decode_t_string_memory_ptr(add(headStart, offset), end))\n\n }\n\n {\n // dest\n\n let offset := calldataload(add(headStart, 128))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0x80), abi_decode_t_string_memory_ptr(add(headStart, offset), end))\n\n }\n\n {\n // params\n\n let offset := calldataload(add(headStart, 160))\n if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n mstore(add(value, 0xa0), abi_decode_t_string_memory_ptr(add(headStart, offset), end))\n\n }\n\n }\n\n function abi_decode_tuple_t_struct$_SignRequest_$463_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_struct$_SignRequest_$463_memory_ptr(add(headStart, offset), dataEnd)\n }\n\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_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 // struct ChainSignatures.Response[]\n function abi_decode_t_array$_t_struct$_Response_$482_calldata_ptr_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert_error_15abf5612cd996bc235ba1e55a4a30ac60e6bb601ff7ba4ad3f179b6be8d0490() }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0xa0)), end) { revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef() }\n }\n\n function abi_decode_tuple_t_array$_t_struct$_Response_$482_calldata_ptr_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0, value1 := abi_decode_t_array$_t_struct$_Response_$482_calldata_ptr_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\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 store_literal_in_memory_5cbb24ca678c0bc148b6d1d734942e230f1d3686258ae74c758d5ae27e1715ef(memPtr) {\n\n mstore(add(memPtr, 0), \"Invalid receiver address\")\n\n }\n\n function abi_encode_t_stringliteral_5cbb24ca678c0bc148b6d1d734942e230f1d3686258ae74c758d5ae27e1715ef_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 24)\n store_literal_in_memory_5cbb24ca678c0bc148b6d1d734942e230f1d3686258ae74c758d5ae27e1715ef(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_5cbb24ca678c0bc148b6d1d734942e230f1d3686258ae74c758d5ae27e1715ef__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_5cbb24ca678c0bc148b6d1d734942e230f1d3686258ae74c758d5ae27e1715ef_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_4f0d1e793d33195774e5dfb612185a73ecb950f1d617bffa7795fc28978dd45a(memPtr) {\n\n mstore(add(memPtr, 0), \"Withdraw amount must be smaller \")\n\n mstore(add(memPtr, 32), \"than total balance in contract\")\n\n }\n\n function abi_encode_t_stringliteral_4f0d1e793d33195774e5dfb612185a73ecb950f1d617bffa7795fc28978dd45a_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 62)\n store_literal_in_memory_4f0d1e793d33195774e5dfb612185a73ecb950f1d617bffa7795fc28978dd45a(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_4f0d1e793d33195774e5dfb612185a73ecb950f1d617bffa7795fc28978dd45a__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_4f0d1e793d33195774e5dfb612185a73ecb950f1d617bffa7795fc28978dd45a_to_t_string_memory_ptr_fromStack( tail)\n\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 store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470(memPtr) {\n\n }\n\n function abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_bytes_memory_ptr_nonPadded_inplace_fromStack(pos, 0)\n store_literal_in_memory_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470(pos)\n end := add(pos, 0)\n }\n\n function abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos ) -> end {\n\n pos := abi_encode_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_to_t_bytes_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n end := pos\n }\n\n function store_literal_in_memory_25adaa6d082ce15f901e0d8a3d393e7462ef9edf2e6bc8321fa14d1615b6fc51(memPtr) {\n\n mstore(add(memPtr, 0), \"Transfer failed\")\n\n }\n\n function abi_encode_t_stringliteral_25adaa6d082ce15f901e0d8a3d393e7462ef9edf2e6bc8321fa14d1615b6fc51_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 15)\n store_literal_in_memory_25adaa6d082ce15f901e0d8a3d393e7462ef9edf2e6bc8321fa14d1615b6fc51(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_25adaa6d082ce15f901e0d8a3d393e7462ef9edf2e6bc8321fa14d1615b6fc51__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_25adaa6d082ce15f901e0d8a3d393e7462ef9edf2e6bc8321fa14d1615b6fc51_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad() {\n revert(0, 0)\n }\n\n function revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a() {\n revert(0, 0)\n }\n\n function revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e() {\n revert(0, 0)\n }\n\n function access_calldata_tail_t_struct$_ErrorResponse_$487_calldata_ptr(base_ref, ptr_to_tail) -> addr {\n let rel_offset_of_tail := calldataload(ptr_to_tail)\n if iszero(slt(rel_offset_of_tail, sub(sub(calldatasize(), base_ref), sub(0x40, 1)))) { revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad() }\n addr := add(base_ref, rel_offset_of_tail)\n\n }\n\n function access_calldata_tail_t_string_calldata_ptr(base_ref, ptr_to_tail) -> addr, length {\n let rel_offset_of_tail := calldataload(ptr_to_tail)\n if iszero(slt(rel_offset_of_tail, sub(sub(calldatasize(), base_ref), sub(0x20, 1)))) { revert_error_356d538aaf70fba12156cc466564b792649f8f3befb07b071c91142253e175ad() }\n addr := add(base_ref, rel_offset_of_tail)\n\n length := calldataload(addr)\n if gt(length, 0xffffffffffffffff) { revert_error_1e55d03107e9c4f1b5e21c76a16fba166a461117ab153bcce65e6a4ea8e5fc8a() }\n addr := add(addr, 32)\n if sgt(addr, sub(calldatasize(), mul(length, 0x01))) { revert_error_977805620ff29572292dee35f70b0f3f3f73d3fdd0e9f4d7a901c2e43ab18a2e() }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\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_with_cleanup(start, pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_address_t_string_calldata_ptr__to_t_address_t_string_memory_ptr__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_fromStack(value1, value2, tail)\n\n }\n\n function store_literal_in_memory_f8fcaef683f0d1614f3145343efc9a3d2cb7c83cead426db44ecb090c666d824(memPtr) {\n\n mstore(add(memPtr, 0), \"Insufficient deposit\")\n\n }\n\n function abi_encode_t_stringliteral_f8fcaef683f0d1614f3145343efc9a3d2cb7c83cead426db44ecb090c666d824_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 20)\n store_literal_in_memory_f8fcaef683f0d1614f3145343efc9a3d2cb7c83cead426db44ecb090c666d824(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_f8fcaef683f0d1614f3145343efc9a3d2cb7c83cead426db44ecb090c666d824__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_f8fcaef683f0d1614f3145343efc9a3d2cb7c83cead426db44ecb090c666d824_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_t_uint32_to_t_uint32_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint32(value))\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function copy_memory_to_memory_with_cleanup(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 mstore(add(dst, length), 0)\n\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_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_address_t_bytes32_t_uint32_t_uint256_t_uint256_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__to_t_address_t_bytes32_t_uint32_t_uint256_t_uint256_t_string_memory_ptr_t_string_memory_ptr_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, 288)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint32_to_t_uint32_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value3, add(headStart, 96))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value4, add(headStart, 128))\n\n mstore(add(headStart, 160), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value5, tail)\n\n mstore(add(headStart, 192), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value6, tail)\n\n mstore(add(headStart, 224), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value7, tail)\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 }\n\n function calldata_access_t_struct$_AffinePoint_$468_calldata_ptr(baseRef, ptr) -> value {\n value := ptr\n }\n\n function calldata_access_t_uint256(baseRef, ptr) -> value {\n value := abi_decode_t_uint256(ptr, add(ptr, 32))\n }\n\n function abi_encode_t_uint256_to_t_uint256(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n // struct ChainSignatures.AffinePoint -> struct ChainSignatures.AffinePoint\n function abi_encode_t_struct$_AffinePoint_$468_calldata_ptr_to_t_struct$_AffinePoint_$468_memory_ptr(value, pos) {\n let tail := add(pos, 0x40)\n\n {\n // x\n\n let memberValue0 := calldata_access_t_uint256(value, add(value, 0x00))\n abi_encode_t_uint256_to_t_uint256(memberValue0, add(pos, 0x00))\n }\n\n {\n // y\n\n let memberValue0 := calldata_access_t_uint256(value, add(value, 0x20))\n abi_encode_t_uint256_to_t_uint256(memberValue0, add(pos, 0x20))\n }\n\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function validator_revert_t_uint8(value) {\n if iszero(eq(value, cleanup_t_uint8(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint8(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint8(value)\n }\n\n function calldata_access_t_uint8(baseRef, ptr) -> value {\n value := abi_decode_t_uint8(ptr, add(ptr, 32))\n }\n\n function abi_encode_t_uint8_to_t_uint8(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n // struct ChainSignatures.Signature -> struct ChainSignatures.Signature\n function abi_encode_t_struct$_Signature_$476_calldata_ptr_to_t_struct$_Signature_$476_memory_ptr_fromStack(value, pos) {\n let tail := add(pos, 0x80)\n\n {\n // bigR\n\n let memberValue0 := calldata_access_t_struct$_AffinePoint_$468_calldata_ptr(value, add(value, 0x00))\n abi_encode_t_struct$_AffinePoint_$468_calldata_ptr_to_t_struct$_AffinePoint_$468_memory_ptr(memberValue0, add(pos, 0x00))\n }\n\n {\n // s\n\n let memberValue0 := calldata_access_t_uint256(value, add(value, 0x40))\n abi_encode_t_uint256_to_t_uint256(memberValue0, add(pos, 0x40))\n }\n\n {\n // recoveryId\n\n let memberValue0 := calldata_access_t_uint8(value, add(value, 0x60))\n abi_encode_t_uint8_to_t_uint8(memberValue0, add(pos, 0x60))\n }\n\n }\n\n function abi_encode_tuple_t_address_t_struct$_Signature_$476_calldata_ptr__to_t_address_t_struct$_Signature_$476_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 160)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_struct$_Signature_$476_calldata_ptr_to_t_struct$_Signature_$476_memory_ptr_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__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_bytes32_to_t_bytes32_fromStack(value1, add(headStart, 32))\n\n }\n\n}\n", + "id": 6, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "6080604052600436106100c15760003560e01c80635f45af881161007f578063a217fddf11610059578063a217fddf14610266578063ae650b9514610291578063d547741f146102bc578063fb0dc126146102e5576100c1565b80635f45af88146101e457806391d148541461020d578063a03b5c3b1461024a576100c1565b8062f714ce146100c657806301ffc9a7146100ef578063248a9ca31461012c5780632f2ff15d1461016957806336568abe1461019257806343ec0d4c146101bb575b600080fd5b3480156100d257600080fd5b506100ed60048036038101906100e89190610c08565b61030e565b005b3480156100fb57600080fd5b5061011660048036038101906101119190610ca0565b6104cd565b6040516101239190610ce8565b60405180910390f35b34801561013857600080fd5b50610153600480360381019061014e9190610d39565b610547565b6040516101609190610d75565b60405180910390f35b34801561017557600080fd5b50610190600480360381019061018b9190610d90565b610566565b005b34801561019e57600080fd5b506101b960048036038101906101b49190610d90565b610588565b005b3480156101c757600080fd5b506101e260048036038101906101dd9190610e35565b610603565b005b3480156101f057600080fd5b5061020b60048036038101906102069190610e82565b6106b9565b005b34801561021957600080fd5b50610234600480360381019061022f9190610d90565b6106d1565b6040516102419190610ce8565b60405180910390f35b610264600480360381019061025f9190611146565b61073b565b005b34801561027257600080fd5b5061027b6107e2565b6040516102889190610d75565b60405180910390f35b34801561029d57600080fd5b506102a66107e9565b6040516102b3919061119e565b60405180910390f35b3480156102c857600080fd5b506102e360048036038101906102de9190610d90565b6107f3565b005b3480156102f157600080fd5b5061030c6004803603810190610307919061120f565b610815565b005b6000801b61031b816108a6565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361038a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610381906112b9565b60405180910390fd5b478311156103cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c49061134b565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16846040516103f39061139c565b60006040518083038185875af1925050503d8060008114610430576040519150601f19603f3d011682016040523d82523d6000602084013e610435565b606091505b5050905080610479576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610470906113fd565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff167f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364856040516104bf919061119e565b60405180910390a250505050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610540575061053f826108ba565b5b9050919050565b6000806000838152602001908152602001600020600101549050919050565b61056f82610547565b610578816108a6565b6105828383610924565b50505050565b610590610a15565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146105f4576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6105fe8282610a1d565b505050565b60005b828290508110156106b4578282828181106106245761062361141d565b5b9050602002810190610636919061145b565b600001357f3a8c98eb820de2bc0f92e6c44a3bc0245111e8d203e7aa5e8f2cb783b61ca1243385858581811061066f5761066e61141d565b5b9050602002810190610681919061145b565b80602001906106909190611483565b60405161069f93929190611522565b60405180910390a28080600101915050610606565b505050565b6000801b6106c6816108a6565b816001819055505050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600154341015610780576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610777906115a0565b60405180910390fd5b7f6c77c4e5e031dca0c4944909e0d4d343c9c5b16eda4ef1d4be0762693e026722338260000151836040015134468660200151876060015188608001518960a001516040516107d79998979695949392919061163d565b60405180910390a150565b6000801b81565b6000600154905090565b6107fc82610547565b610805816108a6565b61080f8383610a1d565b50505050565b60005b828290508110156108a1578282828181106108365761083561141d565b5b905060a00201600001357f8fefda2f6c146df62efa1de95f8ff0b9c29ae07b9846e61fbce6e618897397ff338585858181106108755761087461141d565b5b905060a0020160200160405161088c92919061180f565b60405180910390a28080600101915050610818565b505050565b6108b7816108b2610a15565b610b0f565b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600061093083836106d1565b610a0a57600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506109a7610a15565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050610a0f565b600090505b92915050565b600033905090565b6000610a2983836106d1565b15610b0457600080600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610aa1610a15565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050610b09565b600090505b92915050565b610b1982826106d1565b610b5c5780826040517fe2517d3f000000000000000000000000000000000000000000000000000000008152600401610b53929190611838565b60405180910390fd5b5050565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b610b8781610b74565b8114610b9257600080fd5b50565b600081359050610ba481610b7e565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bd582610baa565b9050919050565b610be581610bca565b8114610bf057600080fd5b50565b600081359050610c0281610bdc565b92915050565b60008060408385031215610c1f57610c1e610b6a565b5b6000610c2d85828601610b95565b9250506020610c3e85828601610bf3565b9150509250929050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610c7d81610c48565b8114610c8857600080fd5b50565b600081359050610c9a81610c74565b92915050565b600060208284031215610cb657610cb5610b6a565b5b6000610cc484828501610c8b565b91505092915050565b60008115159050919050565b610ce281610ccd565b82525050565b6000602082019050610cfd6000830184610cd9565b92915050565b6000819050919050565b610d1681610d03565b8114610d2157600080fd5b50565b600081359050610d3381610d0d565b92915050565b600060208284031215610d4f57610d4e610b6a565b5b6000610d5d84828501610d24565b91505092915050565b610d6f81610d03565b82525050565b6000602082019050610d8a6000830184610d66565b92915050565b60008060408385031215610da757610da6610b6a565b5b6000610db585828601610d24565b9250506020610dc685828601610bf3565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f840112610df557610df4610dd0565b5b8235905067ffffffffffffffff811115610e1257610e11610dd5565b5b602083019150836020820283011115610e2e57610e2d610dda565b5b9250929050565b60008060208385031215610e4c57610e4b610b6a565b5b600083013567ffffffffffffffff811115610e6a57610e69610b6f565b5b610e7685828601610ddf565b92509250509250929050565b600060208284031215610e9857610e97610b6a565b5b6000610ea684828501610b95565b91505092915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610efd82610eb4565b810181811067ffffffffffffffff82111715610f1c57610f1b610ec5565b5b80604052505050565b6000610f2f610b60565b9050610f3b8282610ef4565b919050565b600080fd5b600080fd5b600067ffffffffffffffff821115610f6557610f64610ec5565b5b610f6e82610eb4565b9050602081019050919050565b82818337600083830152505050565b6000610f9d610f9884610f4a565b610f25565b905082815260208101848484011115610fb957610fb8610f45565b5b610fc4848285610f7b565b509392505050565b600082601f830112610fe157610fe0610dd0565b5b8135610ff1848260208601610f8a565b91505092915050565b600063ffffffff82169050919050565b61101381610ffa565b811461101e57600080fd5b50565b6000813590506110308161100a565b92915050565b600060c0828403121561104c5761104b610eaf565b5b61105660c0610f25565b9050600061106684828501610d24565b600083015250602082013567ffffffffffffffff81111561108a57611089610f40565b5b61109684828501610fcc565b60208301525060406110aa84828501611021565b604083015250606082013567ffffffffffffffff8111156110ce576110cd610f40565b5b6110da84828501610fcc565b606083015250608082013567ffffffffffffffff8111156110fe576110fd610f40565b5b61110a84828501610fcc565b60808301525060a082013567ffffffffffffffff81111561112e5761112d610f40565b5b61113a84828501610fcc565b60a08301525092915050565b60006020828403121561115c5761115b610b6a565b5b600082013567ffffffffffffffff81111561117a57611179610b6f565b5b61118684828501611036565b91505092915050565b61119881610b74565b82525050565b60006020820190506111b3600083018461118f565b92915050565b60008083601f8401126111cf576111ce610dd0565b5b8235905067ffffffffffffffff8111156111ec576111eb610dd5565b5b6020830191508360a082028301111561120857611207610dda565b5b9250929050565b6000806020838503121561122657611225610b6a565b5b600083013567ffffffffffffffff81111561124457611243610b6f565b5b611250858286016111b9565b92509250509250929050565b600082825260208201905092915050565b7f496e76616c696420726563656976657220616464726573730000000000000000600082015250565b60006112a360188361125c565b91506112ae8261126d565b602082019050919050565b600060208201905081810360008301526112d281611296565b9050919050565b7f576974686472617720616d6f756e74206d75737420626520736d616c6c65722060008201527f7468616e20746f74616c2062616c616e636520696e20636f6e74726163740000602082015250565b6000611335603e8361125c565b9150611340826112d9565b604082019050919050565b6000602082019050818103600083015261136481611328565b9050919050565b600081905092915050565b50565b600061138660008361136b565b915061139182611376565b600082019050919050565b60006113a782611379565b9150819050919050565b7f5472616e73666572206661696c65640000000000000000000000000000000000600082015250565b60006113e7600f8361125c565b91506113f2826113b1565b602082019050919050565b60006020820190508181036000830152611416816113da565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b600080fd5b600080fd5b6000823560016040038336030381126114775761147661144c565b5b80830191505092915050565b600080833560016020038436030381126114a05761149f61144c565b5b80840192508235915067ffffffffffffffff8211156114c2576114c1611451565b5b6020830192506001820236038313156114de576114dd611456565b5b509250929050565b6114ef81610bca565b82525050565b6000611501838561125c565b935061150e838584610f7b565b61151783610eb4565b840190509392505050565b600060408201905061153760008301866114e6565b818103602083015261154a8184866114f5565b9050949350505050565b7f496e73756666696369656e74206465706f736974000000000000000000000000600082015250565b600061158a60148361125c565b915061159582611554565b602082019050919050565b600060208201905081810360008301526115b98161157d565b9050919050565b6115c981610ffa565b82525050565b600081519050919050565b60005b838110156115f85780820151818401526020810190506115dd565b60008484015250505050565b600061160f826115cf565b611619818561125c565b93506116298185602086016115da565b61163281610eb4565b840191505092915050565b600061012082019050611653600083018c6114e6565b611660602083018b610d66565b61166d604083018a6115c0565b61167a606083018961118f565b611687608083018861118f565b81810360a08301526116998187611604565b905081810360c08301526116ad8186611604565b905081810360e08301526116c18185611604565b90508181036101008301526116d68184611604565b90509a9950505050505050505050565b600082905092915050565b60006117006020840184610b95565b905092915050565b61171181610b74565b82525050565b6040820161172860008301836116f1565b6117356000850182611708565b5061174360208301836116f1565b6117506020850182611708565b50505050565b600060ff82169050919050565b61176c81611756565b811461177757600080fd5b50565b60008135905061178981611763565b92915050565b600061179e602084018461177a565b905092915050565b6117af81611756565b82525050565b608082016117c660008301836116e6565b6117d36000850182611717565b506117e160408301836116f1565b6117ee6040850182611708565b506117fc606083018361178f565b61180960608501826117a6565b50505050565b600060a08201905061182460008301856114e6565b61183160208301846117b5565b9392505050565b600060408201905061184d60008301856114e6565b61185a6020830184610d66565b939250505056fea26469706673582212202eea9aaacf9dd7810b1f570cb63d664bd79569b59fd396dcd9da436007fb4cf364736f6c634300081b0033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0xC1 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x5F45AF88 GT PUSH2 0x7F JUMPI DUP1 PUSH4 0xA217FDDF GT PUSH2 0x59 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x266 JUMPI DUP1 PUSH4 0xAE650B95 EQ PUSH2 0x291 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x2BC JUMPI DUP1 PUSH4 0xFB0DC126 EQ PUSH2 0x2E5 JUMPI PUSH2 0xC1 JUMP JUMPDEST DUP1 PUSH4 0x5F45AF88 EQ PUSH2 0x1E4 JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x20D JUMPI DUP1 PUSH4 0xA03B5C3B EQ PUSH2 0x24A JUMPI PUSH2 0xC1 JUMP JUMPDEST DUP1 PUSH3 0xF714CE EQ PUSH2 0xC6 JUMPI DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0xEF JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x12C JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x169 JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x192 JUMPI DUP1 PUSH4 0x43EC0D4C EQ PUSH2 0x1BB JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xD2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xED PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xE8 SWAP2 SWAP1 PUSH2 0xC08 JUMP JUMPDEST PUSH2 0x30E JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xFB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x116 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x111 SWAP2 SWAP1 PUSH2 0xCA0 JUMP JUMPDEST PUSH2 0x4CD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x123 SWAP2 SWAP1 PUSH2 0xCE8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x138 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x153 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x14E SWAP2 SWAP1 PUSH2 0xD39 JUMP JUMPDEST PUSH2 0x547 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x160 SWAP2 SWAP1 PUSH2 0xD75 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x175 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x190 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x18B SWAP2 SWAP1 PUSH2 0xD90 JUMP JUMPDEST PUSH2 0x566 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x19E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B9 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1B4 SWAP2 SWAP1 PUSH2 0xD90 JUMP JUMPDEST PUSH2 0x588 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1E2 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1DD SWAP2 SWAP1 PUSH2 0xE35 JUMP JUMPDEST PUSH2 0x603 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x20B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x206 SWAP2 SWAP1 PUSH2 0xE82 JUMP JUMPDEST PUSH2 0x6B9 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x219 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x234 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x22F SWAP2 SWAP1 PUSH2 0xD90 JUMP JUMPDEST PUSH2 0x6D1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x241 SWAP2 SWAP1 PUSH2 0xCE8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x264 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x25F SWAP2 SWAP1 PUSH2 0x1146 JUMP JUMPDEST PUSH2 0x73B JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x272 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x27B PUSH2 0x7E2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x288 SWAP2 SWAP1 PUSH2 0xD75 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x29D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A6 PUSH2 0x7E9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B3 SWAP2 SWAP1 PUSH2 0x119E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2DE SWAP2 SWAP1 PUSH2 0xD90 JUMP JUMPDEST PUSH2 0x7F3 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x30C PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x307 SWAP2 SWAP1 PUSH2 0x120F JUMP JUMPDEST PUSH2 0x815 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 SHL PUSH2 0x31B DUP2 PUSH2 0x8A6 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x38A JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x381 SWAP1 PUSH2 0x12B9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST SELFBALANCE DUP4 GT ISZERO PUSH2 0x3CD JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3C4 SWAP1 PUSH2 0x134B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH1 0x40 MLOAD PUSH2 0x3F3 SWAP1 PUSH2 0x139C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP8 GAS CALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x430 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x435 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP POP SWAP1 POP DUP1 PUSH2 0x479 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x470 SWAP1 PUSH2 0x13FD JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x884EDAD9CE6FA2440D8A54CC123490EB96D2768479D49FF9C7366125A9424364 DUP6 PUSH1 0x40 MLOAD PUSH2 0x4BF SWAP2 SWAP1 PUSH2 0x119E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x7965DB0B00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x540 JUMPI POP PUSH2 0x53F DUP3 PUSH2 0x8BA JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x56F DUP3 PUSH2 0x547 JUMP JUMPDEST PUSH2 0x578 DUP2 PUSH2 0x8A6 JUMP JUMPDEST PUSH2 0x582 DUP4 DUP4 PUSH2 0x924 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x590 PUSH2 0xA15 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x5F4 JUMPI PUSH1 0x40 MLOAD PUSH32 0x6697B23200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x5FE DUP3 DUP3 PUSH2 0xA1D JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP3 SWAP1 POP DUP2 LT ISZERO PUSH2 0x6B4 JUMPI DUP3 DUP3 DUP3 DUP2 DUP2 LT PUSH2 0x624 JUMPI PUSH2 0x623 PUSH2 0x141D JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x636 SWAP2 SWAP1 PUSH2 0x145B JUMP JUMPDEST PUSH1 0x0 ADD CALLDATALOAD PUSH32 0x3A8C98EB820DE2BC0F92E6C44A3BC0245111E8D203E7AA5E8F2CB783B61CA124 CALLER DUP6 DUP6 DUP6 DUP2 DUP2 LT PUSH2 0x66F JUMPI PUSH2 0x66E PUSH2 0x141D JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x681 SWAP2 SWAP1 PUSH2 0x145B JUMP JUMPDEST DUP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x690 SWAP2 SWAP1 PUSH2 0x1483 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x69F SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1522 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x606 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL PUSH2 0x6C6 DUP2 PUSH2 0x8A6 JUMP JUMPDEST DUP2 PUSH1 0x1 DUP2 SWAP1 SSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 SLOAD CALLVALUE LT ISZERO PUSH2 0x780 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x777 SWAP1 PUSH2 0x15A0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x6C77C4E5E031DCA0C4944909E0D4D343C9C5B16EDA4EF1D4BE0762693E026722 CALLER DUP3 PUSH1 0x0 ADD MLOAD DUP4 PUSH1 0x40 ADD MLOAD CALLVALUE CHAINID DUP7 PUSH1 0x20 ADD MLOAD DUP8 PUSH1 0x60 ADD MLOAD DUP9 PUSH1 0x80 ADD MLOAD DUP10 PUSH1 0xA0 ADD MLOAD PUSH1 0x40 MLOAD PUSH2 0x7D7 SWAP10 SWAP9 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x163D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x7FC DUP3 PUSH2 0x547 JUMP JUMPDEST PUSH2 0x805 DUP2 PUSH2 0x8A6 JUMP JUMPDEST PUSH2 0x80F DUP4 DUP4 PUSH2 0xA1D JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP3 SWAP1 POP DUP2 LT ISZERO PUSH2 0x8A1 JUMPI DUP3 DUP3 DUP3 DUP2 DUP2 LT PUSH2 0x836 JUMPI PUSH2 0x835 PUSH2 0x141D JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0xA0 MUL ADD PUSH1 0x0 ADD CALLDATALOAD PUSH32 0x8FEFDA2F6C146DF62EFA1DE95F8FF0B9C29AE07B9846E61FBCE6E618897397FF CALLER DUP6 DUP6 DUP6 DUP2 DUP2 LT PUSH2 0x875 JUMPI PUSH2 0x874 PUSH2 0x141D JUMP JUMPDEST JUMPDEST SWAP1 POP PUSH1 0xA0 MUL ADD PUSH1 0x20 ADD PUSH1 0x40 MLOAD PUSH2 0x88C SWAP3 SWAP2 SWAP1 PUSH2 0x180F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x818 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x8B7 DUP2 PUSH2 0x8B2 PUSH2 0xA15 JUMP JUMPDEST PUSH2 0xB0F JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x930 DUP4 DUP4 PUSH2 0x6D1 JUMP JUMPDEST PUSH2 0xA0A JUMPI PUSH1 0x1 PUSH1 0x0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0x9A7 PUSH2 0xA15 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0x2F8788117E7EFF1D82E926EC794901D17C78024A50270940304540A733656F0D PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x1 SWAP1 POP PUSH2 0xA0F JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA29 DUP4 DUP4 PUSH2 0x6D1 JUMP JUMPDEST ISZERO PUSH2 0xB04 JUMPI PUSH1 0x0 DUP1 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH2 0xAA1 PUSH2 0xA15 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH32 0xF6391F5C32D9C69D2A47EA670B442974B53935D1EDC7FD64EB21E047A839171B PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 PUSH1 0x1 SWAP1 POP PUSH2 0xB09 JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xB19 DUP3 DUP3 PUSH2 0x6D1 JUMP JUMPDEST PUSH2 0xB5C JUMPI DUP1 DUP3 PUSH1 0x40 MLOAD PUSH32 0xE2517D3F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB53 SWAP3 SWAP2 SWAP1 PUSH2 0x1838 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB87 DUP2 PUSH2 0xB74 JUMP JUMPDEST DUP2 EQ PUSH2 0xB92 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xBA4 DUP2 PUSH2 0xB7E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBD5 DUP3 PUSH2 0xBAA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBE5 DUP2 PUSH2 0xBCA JUMP JUMPDEST DUP2 EQ PUSH2 0xBF0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC02 DUP2 PUSH2 0xBDC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xC1F JUMPI PUSH2 0xC1E PUSH2 0xB6A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xC2D DUP6 DUP3 DUP7 ADD PUSH2 0xB95 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xC3E DUP6 DUP3 DUP7 ADD PUSH2 0xBF3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xC7D DUP2 PUSH2 0xC48 JUMP JUMPDEST DUP2 EQ PUSH2 0xC88 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xC9A DUP2 PUSH2 0xC74 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xCB6 JUMPI PUSH2 0xCB5 PUSH2 0xB6A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xCC4 DUP5 DUP3 DUP6 ADD PUSH2 0xC8B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xCE2 DUP2 PUSH2 0xCCD JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xCFD PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xCD9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD16 DUP2 PUSH2 0xD03 JUMP JUMPDEST DUP2 EQ PUSH2 0xD21 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0xD33 DUP2 PUSH2 0xD0D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xD4F JUMPI PUSH2 0xD4E PUSH2 0xB6A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xD5D DUP5 DUP3 DUP6 ADD PUSH2 0xD24 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xD6F DUP2 PUSH2 0xD03 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0xD8A PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0xD66 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xDA7 JUMPI PUSH2 0xDA6 PUSH2 0xB6A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xDB5 DUP6 DUP3 DUP7 ADD PUSH2 0xD24 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0xDC6 DUP6 DUP3 DUP7 ADD PUSH2 0xBF3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0xDF5 JUMPI PUSH2 0xDF4 PUSH2 0xDD0 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xE12 JUMPI PUSH2 0xE11 PUSH2 0xDD5 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0xE2E JUMPI PUSH2 0xE2D PUSH2 0xDDA JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0xE4C JUMPI PUSH2 0xE4B PUSH2 0xB6A JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xE6A JUMPI PUSH2 0xE69 PUSH2 0xB6F JUMP JUMPDEST JUMPDEST PUSH2 0xE76 DUP6 DUP3 DUP7 ADD PUSH2 0xDDF JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xE98 JUMPI PUSH2 0xE97 PUSH2 0xB6A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xEA6 DUP5 DUP3 DUP6 ADD PUSH2 0xB95 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0xEFD DUP3 PUSH2 0xEB4 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0xF1C JUMPI PUSH2 0xF1B PUSH2 0xEC5 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF2F PUSH2 0xB60 JUMP JUMPDEST SWAP1 POP PUSH2 0xF3B DUP3 DUP3 PUSH2 0xEF4 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0xF65 JUMPI PUSH2 0xF64 PUSH2 0xEC5 JUMP JUMPDEST JUMPDEST PUSH2 0xF6E DUP3 PUSH2 0xEB4 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF9D PUSH2 0xF98 DUP5 PUSH2 0xF4A JUMP JUMPDEST PUSH2 0xF25 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0xFB9 JUMPI PUSH2 0xFB8 PUSH2 0xF45 JUMP JUMPDEST JUMPDEST PUSH2 0xFC4 DUP5 DUP3 DUP6 PUSH2 0xF7B JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xFE1 JUMPI PUSH2 0xFE0 PUSH2 0xDD0 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0xFF1 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0xF8A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH4 0xFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1013 DUP2 PUSH2 0xFFA JUMP JUMPDEST DUP2 EQ PUSH2 0x101E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1030 DUP2 PUSH2 0x100A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xC0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x104C JUMPI PUSH2 0x104B PUSH2 0xEAF JUMP JUMPDEST JUMPDEST PUSH2 0x1056 PUSH1 0xC0 PUSH2 0xF25 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1066 DUP5 DUP3 DUP6 ADD PUSH2 0xD24 JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x108A JUMPI PUSH2 0x1089 PUSH2 0xF40 JUMP JUMPDEST JUMPDEST PUSH2 0x1096 DUP5 DUP3 DUP6 ADD PUSH2 0xFCC JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x10AA DUP5 DUP3 DUP6 ADD PUSH2 0x1021 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x10CE JUMPI PUSH2 0x10CD PUSH2 0xF40 JUMP JUMPDEST JUMPDEST PUSH2 0x10DA DUP5 DUP3 DUP6 ADD PUSH2 0xFCC JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x10FE JUMPI PUSH2 0x10FD PUSH2 0xF40 JUMP JUMPDEST JUMPDEST PUSH2 0x110A DUP5 DUP3 DUP6 ADD PUSH2 0xFCC JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH1 0xA0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x112E JUMPI PUSH2 0x112D PUSH2 0xF40 JUMP JUMPDEST JUMPDEST PUSH2 0x113A DUP5 DUP3 DUP6 ADD PUSH2 0xFCC JUMP JUMPDEST PUSH1 0xA0 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x115C JUMPI PUSH2 0x115B PUSH2 0xB6A JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x117A JUMPI PUSH2 0x1179 PUSH2 0xB6F JUMP JUMPDEST JUMPDEST PUSH2 0x1186 DUP5 DUP3 DUP6 ADD PUSH2 0x1036 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1198 DUP2 PUSH2 0xB74 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x11B3 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x118F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x11CF JUMPI PUSH2 0x11CE PUSH2 0xDD0 JUMP JUMPDEST JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x11EC JUMPI PUSH2 0x11EB PUSH2 0xDD5 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0xA0 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x1208 JUMPI PUSH2 0x1207 PUSH2 0xDDA JUMP JUMPDEST JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1226 JUMPI PUSH2 0x1225 PUSH2 0xB6A JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1244 JUMPI PUSH2 0x1243 PUSH2 0xB6F JUMP JUMPDEST JUMPDEST PUSH2 0x1250 DUP6 DUP3 DUP7 ADD PUSH2 0x11B9 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x496E76616C696420726563656976657220616464726573730000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x12A3 PUSH1 0x18 DUP4 PUSH2 0x125C JUMP JUMPDEST SWAP2 POP PUSH2 0x12AE DUP3 PUSH2 0x126D JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x12D2 DUP2 PUSH2 0x1296 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x576974686472617720616D6F756E74206D75737420626520736D616C6C657220 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7468616E20746F74616C2062616C616E636520696E20636F6E74726163740000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1335 PUSH1 0x3E DUP4 PUSH2 0x125C JUMP JUMPDEST SWAP2 POP PUSH2 0x1340 DUP3 PUSH2 0x12D9 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1364 DUP2 PUSH2 0x1328 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1386 PUSH1 0x0 DUP4 PUSH2 0x136B JUMP JUMPDEST SWAP2 POP PUSH2 0x1391 DUP3 PUSH2 0x1376 JUMP JUMPDEST PUSH1 0x0 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x13A7 DUP3 PUSH2 0x1379 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x5472616E73666572206661696C65640000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x13E7 PUSH1 0xF DUP4 PUSH2 0x125C JUMP JUMPDEST SWAP2 POP PUSH2 0x13F2 DUP3 PUSH2 0x13B1 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1416 DUP2 PUSH2 0x13DA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP3 CALLDATALOAD PUSH1 0x1 PUSH1 0x40 SUB DUP4 CALLDATASIZE SUB SUB DUP2 SLT PUSH2 0x1477 JUMPI PUSH2 0x1476 PUSH2 0x144C JUMP JUMPDEST JUMPDEST DUP1 DUP4 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1 PUSH1 0x20 SUB DUP5 CALLDATASIZE SUB SUB DUP2 SLT PUSH2 0x14A0 JUMPI PUSH2 0x149F PUSH2 0x144C JUMP JUMPDEST JUMPDEST DUP1 DUP5 ADD SWAP3 POP DUP3 CALLDATALOAD SWAP2 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x14C2 JUMPI PUSH2 0x14C1 PUSH2 0x1451 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP4 ADD SWAP3 POP PUSH1 0x1 DUP3 MUL CALLDATASIZE SUB DUP4 SGT ISZERO PUSH2 0x14DE JUMPI PUSH2 0x14DD PUSH2 0x1456 JUMP JUMPDEST JUMPDEST POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x14EF DUP2 PUSH2 0xBCA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1501 DUP4 DUP6 PUSH2 0x125C JUMP JUMPDEST SWAP4 POP PUSH2 0x150E DUP4 DUP6 DUP5 PUSH2 0xF7B JUMP JUMPDEST PUSH2 0x1517 DUP4 PUSH2 0xEB4 JUMP JUMPDEST DUP5 ADD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x1537 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x14E6 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x154A DUP2 DUP5 DUP7 PUSH2 0x14F5 JUMP JUMPDEST SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH32 0x496E73756666696369656E74206465706F736974000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x158A PUSH1 0x14 DUP4 PUSH2 0x125C JUMP JUMPDEST SWAP2 POP PUSH2 0x1595 DUP3 PUSH2 0x1554 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x15B9 DUP2 PUSH2 0x157D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x15C9 DUP2 PUSH2 0xFFA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x15F8 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x15DD JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x160F DUP3 PUSH2 0x15CF JUMP JUMPDEST PUSH2 0x1619 DUP2 DUP6 PUSH2 0x125C JUMP JUMPDEST SWAP4 POP PUSH2 0x1629 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x15DA JUMP JUMPDEST PUSH2 0x1632 DUP2 PUSH2 0xEB4 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x120 DUP3 ADD SWAP1 POP PUSH2 0x1653 PUSH1 0x0 DUP4 ADD DUP13 PUSH2 0x14E6 JUMP JUMPDEST PUSH2 0x1660 PUSH1 0x20 DUP4 ADD DUP12 PUSH2 0xD66 JUMP JUMPDEST PUSH2 0x166D PUSH1 0x40 DUP4 ADD DUP11 PUSH2 0x15C0 JUMP JUMPDEST PUSH2 0x167A PUSH1 0x60 DUP4 ADD DUP10 PUSH2 0x118F JUMP JUMPDEST PUSH2 0x1687 PUSH1 0x80 DUP4 ADD DUP9 PUSH2 0x118F JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0xA0 DUP4 ADD MSTORE PUSH2 0x1699 DUP2 DUP8 PUSH2 0x1604 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0xC0 DUP4 ADD MSTORE PUSH2 0x16AD DUP2 DUP7 PUSH2 0x1604 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0xE0 DUP4 ADD MSTORE PUSH2 0x16C1 DUP2 DUP6 PUSH2 0x1604 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH2 0x100 DUP4 ADD MSTORE PUSH2 0x16D6 DUP2 DUP5 PUSH2 0x1604 JUMP JUMPDEST SWAP1 POP SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1700 PUSH1 0x20 DUP5 ADD DUP5 PUSH2 0xB95 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1711 DUP2 PUSH2 0xB74 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x40 DUP3 ADD PUSH2 0x1728 PUSH1 0x0 DUP4 ADD DUP4 PUSH2 0x16F1 JUMP JUMPDEST PUSH2 0x1735 PUSH1 0x0 DUP6 ADD DUP3 PUSH2 0x1708 JUMP JUMPDEST POP PUSH2 0x1743 PUSH1 0x20 DUP4 ADD DUP4 PUSH2 0x16F1 JUMP JUMPDEST PUSH2 0x1750 PUSH1 0x20 DUP6 ADD DUP3 PUSH2 0x1708 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x176C DUP2 PUSH2 0x1756 JUMP JUMPDEST DUP2 EQ PUSH2 0x1777 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1789 DUP2 PUSH2 0x1763 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x179E PUSH1 0x20 DUP5 ADD DUP5 PUSH2 0x177A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x17AF DUP2 PUSH2 0x1756 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x80 DUP3 ADD PUSH2 0x17C6 PUSH1 0x0 DUP4 ADD DUP4 PUSH2 0x16E6 JUMP JUMPDEST PUSH2 0x17D3 PUSH1 0x0 DUP6 ADD DUP3 PUSH2 0x1717 JUMP JUMPDEST POP PUSH2 0x17E1 PUSH1 0x40 DUP4 ADD DUP4 PUSH2 0x16F1 JUMP JUMPDEST PUSH2 0x17EE PUSH1 0x40 DUP6 ADD DUP3 PUSH2 0x1708 JUMP JUMPDEST POP PUSH2 0x17FC PUSH1 0x60 DUP4 ADD DUP4 PUSH2 0x178F JUMP JUMPDEST PUSH2 0x1809 PUSH1 0x60 DUP6 ADD DUP3 PUSH2 0x17A6 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x1824 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x14E6 JUMP JUMPDEST PUSH2 0x1831 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x17B5 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x184D PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x14E6 JUMP JUMPDEST PUSH2 0x185A PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0xD66 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2E 0xEA SWAP11 0xAA 0xCF SWAP14 0xD7 DUP2 SIGNEXTEND 0x1F JUMPI 0xC 0xB6 RETURNDATASIZE PUSH7 0x4BD79569B59FD3 SWAP7 0xDC 0xD9 0xDA NUMBER PUSH1 0x7 0xFB 0x4C RETURN PUSH5 0x736F6C6343 STOP ADDMOD SHL STOP CALLER ", + "sourceMap": "261:5345:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5100:504;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2565:202:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3810:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4226:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5328:245;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4104:291:5;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4765:141;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2854:136:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3100:430:5;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2187:49:0;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4536:103:5;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4642:138:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3666:294:5;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5100:504;2232:4:0;5194:18:5;;2464:16:0;2475:4;2464:10;:16::i;:::-;5253:1:5::1;5232:23;;:9;:23;;::::0;5224:60:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;5326:21;5315:7;:32;;5294:141;;;;;;;;;;;;:::i;:::-;;;;;;;;;5447:12;5473:9;5465:23;;5496:7;5465:43;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5446:62;;;5526:7;5518:35;;;;;;;;;;;;:::i;:::-;;;;;;;;;5578:9;5569:28;;;5589:7;5569:28;;;;;;:::i;:::-;;;;;;;;5214:390;5100:504:::0;;;:::o;2565:202:0:-;2650:4;2688:32;2673:47;;;:11;:47;;;;:87;;;;2724:36;2748:11;2724:23;:36::i;:::-;2673:87;2666:94;;2565:202;;;:::o;3810:120::-;3875:7;3901:6;:12;3908:4;3901:12;;;;;;;;;;;:22;;;3894:29;;3810:120;;;:::o;4226:136::-;4300:18;4313:4;4300:12;:18::i;:::-;2464:16;2475:4;2464:10;:16::i;:::-;4330:25:::1;4341:4;4347:7;4330:10;:25::i;:::-;;4226:136:::0;;;:::o;5328:245::-;5443:12;:10;:12::i;:::-;5421:34;;:18;:34;;;5417:102;;5478:30;;;;;;;;;;;;;;5417:102;5529:37;5541:4;5547:18;5529:11;:37::i;:::-;;5328:245;;:::o;4104:291:5:-;4184:9;4179:210;4203:7;;:14;;4199:1;:18;4179:210;;;4275:7;;4283:1;4275:10;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;:20;;;4243:135;4313:10;4341:7;;4349:1;4341:10;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;:23;;;;;;;;:::i;:::-;4243:135;;;;;;;;:::i;:::-;;;;;;;;4219:3;;;;;;;4179:210;;;;4104:291;;:::o;4765:141::-;2232:4:0;4843:18:5;;2464:16:0;2475:4;2464:10;:16::i;:::-;4892:7:5::1;4873:16;:26;;;;4765:141:::0;;:::o;2854:136:0:-;2931:4;2954:6;:12;2961:4;2954:12;;;;;;;;;;;:20;;:29;2975:7;2954:29;;;;;;;;;;;;;;;;;;;;;;;;;2947:36;;2854:136;;;;:::o;3100:430:5:-;3191:16;;3178:9;:29;;3170:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;3248:275;3280:10;3304:8;:16;;;3334:8;:19;;;3367:9;3390:13;3417:8;:13;;;3444:8;:13;;;3471:8;:13;;;3498:8;:15;;;3248:275;;;;;;;;;;;;;;:::i;:::-;;;;;;;;3100:430;:::o;2187:49:0:-;2232:4;2187:49;;;:::o;4536:103:5:-;4590:7;4616:16;;4609:23;;4536:103;:::o;4642:138:0:-;4717:18;4730:4;4717:12;:18::i;:::-;2464:16;2475:4;2464:10;:16::i;:::-;4747:26:::1;4759:4;4765:7;4747:11;:26::i;:::-;;4642:138:::0;;;:::o;3666:294:5:-;3739:9;3734:220;3758:10;;:17;;3754:1;:21;3734:220;;;3837:10;;3848:1;3837:13;;;;;;;:::i;:::-;;;;;;;:23;;;3801:142;3878:10;3906;;3917:1;3906:13;;;;;;;:::i;:::-;;;;;;;:23;;3801:142;;;;;;;:::i;:::-;;;;;;;;3777:3;;;;;;;3734:220;;;;3666:294;;:::o;3199:103:0:-;3265:30;3276:4;3282:12;:10;:12::i;:::-;3265:10;:30::i;:::-;3199:103;:::o;763:146:3:-;839:4;877:25;862:40;;;:11;:40;;;;855:47;;763:146;;;:::o;6179:316:0:-;6256:4;6277:22;6285:4;6291:7;6277;:22::i;:::-;6272:217;;6347:4;6315:6;:12;6322:4;6315:12;;;;;;;;;;;:20;;:29;6336:7;6315:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;6397:12;:10;:12::i;:::-;6370:40;;6388:7;6370:40;;6382:4;6370:40;;;;;;;;;;6431:4;6424:11;;;;6272:217;6473:5;6466:12;;6179:316;;;;;:::o;656:96:2:-;709:7;735:10;728:17;;656:96;:::o;6730:317:0:-;6808:4;6828:22;6836:4;6842:7;6828;:22::i;:::-;6824:217;;;6898:5;6866:6;:12;6873:4;6866:12;;;;;;;;;;;:20;;:29;6887:7;6866:29;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;6949:12;:10;:12::i;:::-;6922:40;;6940:7;6922:40;;6934:4;6922:40;;;;;;;;;;6983:4;6976:11;;;;6824:217;7025:5;7018:12;;6730:317;;;;;:::o;3432:197::-;3520:22;3528:4;3534:7;3520;:22::i;:::-;3515:108;;3598:7;3607:4;3565:47;;;;;;;;;;;;:::i;:::-;;;;;;;;3515:108;3432:197;;:::o;7:75:6:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:126::-;727:7;767:42;760:5;756:54;745:65;;690:126;;;:::o;822:96::-;859:7;888:24;906:5;888:24;:::i;:::-;877:35;;822:96;;;:::o;924:122::-;997:24;1015:5;997:24;:::i;:::-;990:5;987:35;977:63;;1036:1;1033;1026:12;977:63;924:122;:::o;1052:139::-;1098:5;1136:6;1123:20;1114:29;;1152:33;1179:5;1152:33;:::i;:::-;1052:139;;;;:::o;1197:474::-;1265:6;1273;1322:2;1310:9;1301:7;1297:23;1293:32;1290:119;;;1328:79;;:::i;:::-;1290:119;1448:1;1473:53;1518:7;1509:6;1498:9;1494:22;1473:53;:::i;:::-;1463:63;;1419:117;1575:2;1601:53;1646:7;1637:6;1626:9;1622:22;1601:53;:::i;:::-;1591:63;;1546:118;1197:474;;;;;:::o;1677:149::-;1713:7;1753:66;1746:5;1742:78;1731:89;;1677:149;;;:::o;1832:120::-;1904:23;1921:5;1904:23;:::i;:::-;1897:5;1894:34;1884:62;;1942:1;1939;1932:12;1884:62;1832:120;:::o;1958:137::-;2003:5;2041:6;2028:20;2019:29;;2057:32;2083:5;2057:32;:::i;:::-;1958:137;;;;:::o;2101:327::-;2159:6;2208:2;2196:9;2187:7;2183:23;2179:32;2176:119;;;2214:79;;:::i;:::-;2176:119;2334:1;2359:52;2403:7;2394:6;2383:9;2379:22;2359:52;:::i;:::-;2349:62;;2305:116;2101:327;;;;:::o;2434:90::-;2468:7;2511:5;2504:13;2497:21;2486:32;;2434:90;;;:::o;2530:109::-;2611:21;2626:5;2611:21;:::i;:::-;2606:3;2599:34;2530:109;;:::o;2645:210::-;2732:4;2770:2;2759:9;2755:18;2747:26;;2783:65;2845:1;2834:9;2830:17;2821:6;2783:65;:::i;:::-;2645:210;;;;:::o;2861:77::-;2898:7;2927:5;2916:16;;2861:77;;;:::o;2944:122::-;3017:24;3035:5;3017:24;:::i;:::-;3010:5;3007:35;2997:63;;3056:1;3053;3046:12;2997:63;2944:122;:::o;3072:139::-;3118:5;3156:6;3143:20;3134:29;;3172:33;3199:5;3172:33;:::i;:::-;3072:139;;;;:::o;3217:329::-;3276:6;3325:2;3313:9;3304:7;3300:23;3296:32;3293:119;;;3331:79;;:::i;:::-;3293:119;3451:1;3476:53;3521:7;3512:6;3501:9;3497:22;3476:53;:::i;:::-;3466:63;;3422:117;3217:329;;;;:::o;3552:118::-;3639:24;3657:5;3639:24;:::i;:::-;3634:3;3627:37;3552:118;;:::o;3676:222::-;3769:4;3807:2;3796:9;3792:18;3784:26;;3820:71;3888:1;3877:9;3873:17;3864:6;3820:71;:::i;:::-;3676:222;;;;:::o;3904:474::-;3972:6;3980;4029:2;4017:9;4008:7;4004:23;4000:32;3997:119;;;4035:79;;:::i;:::-;3997:119;4155:1;4180:53;4225:7;4216:6;4205:9;4201:22;4180:53;:::i;:::-;4170:63;;4126:117;4282:2;4308:53;4353:7;4344:6;4333:9;4329:22;4308:53;:::i;:::-;4298:63;;4253:118;3904:474;;;;;:::o;4384:117::-;4493:1;4490;4483:12;4507:117;4616:1;4613;4606:12;4630:117;4739:1;4736;4729:12;4799:600;4904:8;4914:6;4964:3;4957:4;4949:6;4945:17;4941:27;4931:122;;4972:79;;:::i;:::-;4931:122;5085:6;5072:20;5062:30;;5115:18;5107:6;5104:30;5101:117;;;5137:79;;:::i;:::-;5101:117;5251:4;5243:6;5239:17;5227:29;;5305:3;5297:4;5289:6;5285:17;5275:8;5271:32;5268:41;5265:128;;;5312:79;;:::i;:::-;5265:128;4799:600;;;;;:::o;5405:623::-;5523:6;5531;5580:2;5568:9;5559:7;5555:23;5551:32;5548:119;;;5586:79;;:::i;:::-;5548:119;5734:1;5723:9;5719:17;5706:31;5764:18;5756:6;5753:30;5750:117;;;5786:79;;:::i;:::-;5750:117;5899:112;6003:7;5994:6;5983:9;5979:22;5899:112;:::i;:::-;5881:130;;;;5677:344;5405:623;;;;;:::o;6034:329::-;6093:6;6142:2;6130:9;6121:7;6117:23;6113:32;6110:119;;;6148:79;;:::i;:::-;6110:119;6268:1;6293:53;6338:7;6329:6;6318:9;6314:22;6293:53;:::i;:::-;6283:63;;6239:117;6034:329;;;;:::o;6369:117::-;6478:1;6475;6468:12;6492:102;6533:6;6584:2;6580:7;6575:2;6568:5;6564:14;6560:28;6550:38;;6492:102;;;:::o;6600:180::-;6648:77;6645:1;6638:88;6745:4;6742:1;6735:15;6769:4;6766:1;6759:15;6786:281;6869:27;6891:4;6869:27;:::i;:::-;6861:6;6857:40;6999:6;6987:10;6984:22;6963:18;6951:10;6948:34;6945:62;6942:88;;;7010:18;;:::i;:::-;6942:88;7050:10;7046:2;7039:22;6829:238;6786:281;;:::o;7073:129::-;7107:6;7134:20;;:::i;:::-;7124:30;;7163:33;7191:4;7183:6;7163:33;:::i;:::-;7073:129;;;:::o;7208:117::-;7317:1;7314;7307:12;7331:117;7440:1;7437;7430:12;7454:308;7516:4;7606:18;7598:6;7595:30;7592:56;;;7628:18;;:::i;:::-;7592:56;7666:29;7688:6;7666:29;:::i;:::-;7658:37;;7750:4;7744;7740:15;7732:23;;7454:308;;;:::o;7768:148::-;7866:6;7861:3;7856;7843:30;7907:1;7898:6;7893:3;7889:16;7882:27;7768:148;;;:::o;7922:425::-;8000:5;8025:66;8041:49;8083:6;8041:49;:::i;:::-;8025:66;:::i;:::-;8016:75;;8114:6;8107:5;8100:21;8152:4;8145:5;8141:16;8190:3;8181:6;8176:3;8172:16;8169:25;8166:112;;;8197:79;;:::i;:::-;8166:112;8287:54;8334:6;8329:3;8324;8287:54;:::i;:::-;8006:341;7922:425;;;;;:::o;8367:340::-;8423:5;8472:3;8465:4;8457:6;8453:17;8449:27;8439:122;;8480:79;;:::i;:::-;8439:122;8597:6;8584:20;8622:79;8697:3;8689:6;8682:4;8674:6;8670:17;8622:79;:::i;:::-;8613:88;;8429:278;8367:340;;;;:::o;8713:93::-;8749:7;8789:10;8782:5;8778:22;8767:33;;8713:93;;;:::o;8812:120::-;8884:23;8901:5;8884:23;:::i;:::-;8877:5;8874:34;8864:62;;8922:1;8919;8912:12;8864:62;8812:120;:::o;8938:137::-;8983:5;9021:6;9008:20;8999:29;;9037:32;9063:5;9037:32;:::i;:::-;8938:137;;;;:::o;9123:1913::-;9200:5;9244:4;9232:9;9227:3;9223:19;9219:30;9216:117;;;9252:79;;:::i;:::-;9216:117;9351:21;9367:4;9351:21;:::i;:::-;9342:30;;9434:1;9474:49;9519:3;9510:6;9499:9;9495:22;9474:49;:::i;:::-;9467:4;9460:5;9456:16;9449:75;9382:153;9622:2;9611:9;9607:18;9594:32;9653:18;9645:6;9642:30;9639:117;;;9675:79;;:::i;:::-;9639:117;9795:59;9850:3;9841:6;9830:9;9826:22;9795:59;:::i;:::-;9788:4;9781:5;9777:16;9770:85;9545:321;9931:2;9972:48;10016:3;10007:6;9996:9;9992:22;9972:48;:::i;:::-;9965:4;9958:5;9954:16;9947:74;9876:156;10119:2;10108:9;10104:18;10091:32;10150:18;10142:6;10139:30;10136:117;;;10172:79;;:::i;:::-;10136:117;10292:59;10347:3;10338:6;10327:9;10323:22;10292:59;:::i;:::-;10285:4;10278:5;10274:16;10267:85;10042:321;10450:3;10439:9;10435:19;10422:33;10482:18;10474:6;10471:30;10468:117;;;10504:79;;:::i;:::-;10468:117;10624:59;10679:3;10670:6;10659:9;10655:22;10624:59;:::i;:::-;10617:4;10610:5;10606:16;10599:85;10373:322;10784:3;10773:9;10769:19;10756:33;10816:18;10808:6;10805:30;10802:117;;;10838:79;;:::i;:::-;10802:117;10958:59;11013:3;11004:6;10993:9;10989:22;10958:59;:::i;:::-;10951:4;10944:5;10940:16;10933:85;10705:324;9123:1913;;;;:::o;11042:545::-;11129:6;11178:2;11166:9;11157:7;11153:23;11149:32;11146:119;;;11184:79;;:::i;:::-;11146:119;11332:1;11321:9;11317:17;11304:31;11362:18;11354:6;11351:30;11348:117;;;11384:79;;:::i;:::-;11348:117;11489:81;11562:7;11553:6;11542:9;11538:22;11489:81;:::i;:::-;11479:91;;11275:305;11042:545;;;;:::o;11593:118::-;11680:24;11698:5;11680:24;:::i;:::-;11675:3;11668:37;11593:118;;:::o;11717:222::-;11810:4;11848:2;11837:9;11833:18;11825:26;;11861:71;11929:1;11918:9;11914:17;11905:6;11861:71;:::i;:::-;11717:222;;;;:::o;11986:595::-;12086:8;12096:6;12146:3;12139:4;12131:6;12127:17;12123:27;12113:122;;12154:79;;:::i;:::-;12113:122;12267:6;12254:20;12244:30;;12297:18;12289:6;12286:30;12283:117;;;12319:79;;:::i;:::-;12283:117;12433:4;12425:6;12421:17;12409:29;;12487:3;12479:4;12471:6;12467:17;12457:8;12453:32;12450:41;12447:128;;;12494:79;;:::i;:::-;12447:128;11986:595;;;;;:::o;12587:613::-;12700:6;12708;12757:2;12745:9;12736:7;12732:23;12728:32;12725:119;;;12763:79;;:::i;:::-;12725:119;12911:1;12900:9;12896:17;12883:31;12941:18;12933:6;12930:30;12927:117;;;12963:79;;:::i;:::-;12927:117;13076:107;13175:7;13166:6;13155:9;13151:22;13076:107;:::i;:::-;13058:125;;;;12854:339;12587:613;;;;;:::o;13206:169::-;13290:11;13324:6;13319:3;13312:19;13364:4;13359:3;13355:14;13340:29;;13206:169;;;;:::o;13381:174::-;13521:26;13517:1;13509:6;13505:14;13498:50;13381:174;:::o;13561:366::-;13703:3;13724:67;13788:2;13783:3;13724:67;:::i;:::-;13717:74;;13800:93;13889:3;13800:93;:::i;:::-;13918:2;13913:3;13909:12;13902:19;;13561:366;;;:::o;13933:419::-;14099:4;14137:2;14126:9;14122:18;14114:26;;14186:9;14180:4;14176:20;14172:1;14161:9;14157:17;14150:47;14214:131;14340:4;14214:131;:::i;:::-;14206:139;;13933:419;;;:::o;14358:249::-;14498:34;14494:1;14486:6;14482:14;14475:58;14567:32;14562:2;14554:6;14550:15;14543:57;14358:249;:::o;14613:366::-;14755:3;14776:67;14840:2;14835:3;14776:67;:::i;:::-;14769:74;;14852:93;14941:3;14852:93;:::i;:::-;14970:2;14965:3;14961:12;14954:19;;14613:366;;;:::o;14985:419::-;15151:4;15189:2;15178:9;15174:18;15166:26;;15238:9;15232:4;15228:20;15224:1;15213:9;15209:17;15202:47;15266:131;15392:4;15266:131;:::i;:::-;15258:139;;14985:419;;;:::o;15410:147::-;15511:11;15548:3;15533:18;;15410:147;;;;:::o;15563:114::-;;:::o;15683:398::-;15842:3;15863:83;15944:1;15939:3;15863:83;:::i;:::-;15856:90;;15955:93;16044:3;15955:93;:::i;:::-;16073:1;16068:3;16064:11;16057:18;;15683:398;;;:::o;16087:379::-;16271:3;16293:147;16436:3;16293:147;:::i;:::-;16286:154;;16457:3;16450:10;;16087:379;;;:::o;16472:165::-;16612:17;16608:1;16600:6;16596:14;16589:41;16472:165;:::o;16643:366::-;16785:3;16806:67;16870:2;16865:3;16806:67;:::i;:::-;16799:74;;16882:93;16971:3;16882:93;:::i;:::-;17000:2;16995:3;16991:12;16984:19;;16643:366;;;:::o;17015:419::-;17181:4;17219:2;17208:9;17204:18;17196:26;;17268:9;17262:4;17258:20;17254:1;17243:9;17239:17;17232:47;17296:131;17422:4;17296:131;:::i;:::-;17288:139;;17015:419;;;:::o;17440:180::-;17488:77;17485:1;17478:88;17585:4;17582:1;17575:15;17609:4;17606:1;17599:15;17626:117;17735:1;17732;17725:12;17749:117;17858:1;17855;17848:12;17872:117;17981:1;17978;17971:12;17995:398;18093:4;18147:11;18134:25;18247:1;18241:4;18237:12;18226:8;18210:14;18206:29;18202:48;18182:18;18178:73;18168:168;;18255:79;;:::i;:::-;18168:168;18367:18;18357:8;18353:33;18345:41;;18098:295;17995:398;;;;:::o;18399:725::-;18477:4;18483:6;18539:11;18526:25;18639:1;18633:4;18629:12;18618:8;18602:14;18598:29;18594:48;18574:18;18570:73;18560:168;;18647:79;;:::i;:::-;18560:168;18759:18;18749:8;18745:33;18737:41;;18811:4;18798:18;18788:28;;18839:18;18831:6;18828:30;18825:117;;;18861:79;;:::i;:::-;18825:117;18969:2;18963:4;18959:13;18951:21;;19026:4;19018:6;19014:17;18998:14;18994:38;18988:4;18984:49;18981:136;;;19036:79;;:::i;:::-;18981:136;18490:634;18399:725;;;;;:::o;19130:118::-;19217:24;19235:5;19217:24;:::i;:::-;19212:3;19205:37;19130:118;;:::o;19278:317::-;19376:3;19397:71;19461:6;19456:3;19397:71;:::i;:::-;19390:78;;19478:56;19527:6;19522:3;19515:5;19478:56;:::i;:::-;19559:29;19581:6;19559:29;:::i;:::-;19554:3;19550:39;19543:46;;19278:317;;;;;:::o;19601:443::-;19752:4;19790:2;19779:9;19775:18;19767:26;;19803:71;19871:1;19860:9;19856:17;19847:6;19803:71;:::i;:::-;19921:9;19915:4;19911:20;19906:2;19895:9;19891:18;19884:48;19949:88;20032:4;20023:6;20015;19949:88;:::i;:::-;19941:96;;19601:443;;;;;;:::o;20050:170::-;20190:22;20186:1;20178:6;20174:14;20167:46;20050:170;:::o;20226:366::-;20368:3;20389:67;20453:2;20448:3;20389:67;:::i;:::-;20382:74;;20465:93;20554:3;20465:93;:::i;:::-;20583:2;20578:3;20574:12;20567:19;;20226:366;;;:::o;20598:419::-;20764:4;20802:2;20791:9;20787:18;20779:26;;20851:9;20845:4;20841:20;20837:1;20826:9;20822:17;20815:47;20879:131;21005:4;20879:131;:::i;:::-;20871:139;;20598:419;;;:::o;21023:115::-;21108:23;21125:5;21108:23;:::i;:::-;21103:3;21096:36;21023:115;;:::o;21144:99::-;21196:6;21230:5;21224:12;21214:22;;21144:99;;;:::o;21249:248::-;21331:1;21341:113;21355:6;21352:1;21349:13;21341:113;;;21440:1;21435:3;21431:11;21425:18;21421:1;21416:3;21412:11;21405:39;21377:2;21374:1;21370:10;21365:15;;21341:113;;;21488:1;21479:6;21474:3;21470:16;21463:27;21311:186;21249:248;;;:::o;21503:377::-;21591:3;21619:39;21652:5;21619:39;:::i;:::-;21674:71;21738:6;21733:3;21674:71;:::i;:::-;21667:78;;21754:65;21812:6;21807:3;21800:4;21793:5;21789:16;21754:65;:::i;:::-;21844:29;21866:6;21844:29;:::i;:::-;21839:3;21835:39;21828:46;;21595:285;21503:377;;;;:::o;21886:1468::-;22281:4;22319:3;22308:9;22304:19;22296:27;;22333:71;22401:1;22390:9;22386:17;22377:6;22333:71;:::i;:::-;22414:72;22482:2;22471:9;22467:18;22458:6;22414:72;:::i;:::-;22496:70;22562:2;22551:9;22547:18;22538:6;22496:70;:::i;:::-;22576:72;22644:2;22633:9;22629:18;22620:6;22576:72;:::i;:::-;22658:73;22726:3;22715:9;22711:19;22702:6;22658:73;:::i;:::-;22779:9;22773:4;22769:20;22763:3;22752:9;22748:19;22741:49;22807:78;22880:4;22871:6;22807:78;:::i;:::-;22799:86;;22933:9;22927:4;22923:20;22917:3;22906:9;22902:19;22895:49;22961:78;23034:4;23025:6;22961:78;:::i;:::-;22953:86;;23087:9;23081:4;23077:20;23071:3;23060:9;23056:19;23049:49;23115:78;23188:4;23179:6;23115:78;:::i;:::-;23107:86;;23241:9;23235:4;23231:20;23225:3;23214:9;23210:19;23203:49;23269:78;23342:4;23333:6;23269:78;:::i;:::-;23261:86;;21886:1468;;;;;;;;;;;;:::o;23360:116::-;23442:5;23467:3;23458:12;;23360:116;;;;:::o;23482:122::-;23534:5;23559:39;23594:2;23589:3;23585:12;23580:3;23559:39;:::i;:::-;23550:48;;23482:122;;;;:::o;23610:108::-;23687:24;23705:5;23687:24;:::i;:::-;23682:3;23675:37;23610:108;;:::o;23804:553::-;23949:4;23944:3;23940:14;24016:50;24060:4;24053:5;24049:16;24042:5;24016:50;:::i;:::-;24079:63;24136:4;24131:3;24127:14;24113:12;24079:63;:::i;:::-;23964:188;24214:50;24258:4;24251:5;24247:16;24240:5;24214:50;:::i;:::-;24277:63;24334:4;24329:3;24325:14;24311:12;24277:63;:::i;:::-;24162:188;23918:439;23804:553;;:::o;24363:86::-;24398:7;24438:4;24431:5;24427:16;24416:27;;24363:86;;;:::o;24455:118::-;24526:22;24542:5;24526:22;:::i;:::-;24519:5;24516:33;24506:61;;24563:1;24560;24553:12;24506:61;24455:118;:::o;24579:135::-;24623:5;24661:6;24648:20;24639:29;;24677:31;24702:5;24677:31;:::i;:::-;24579:135;;;;:::o;24720:118::-;24770:5;24795:37;24828:2;24823:3;24819:12;24814:3;24795:37;:::i;:::-;24786:46;;24720:118;;;;:::o;24844:102::-;24917:22;24933:5;24917:22;:::i;:::-;24912:3;24905:35;24844:102;;:::o;25028:851::-;25179:4;25174:3;25170:14;25249:80;25323:4;25316:5;25312:16;25305:5;25249:80;:::i;:::-;25342:121;25457:4;25452:3;25448:14;25434:12;25342:121;:::i;:::-;25194:279;25535:50;25579:4;25572:5;25568:16;25561:5;25535:50;:::i;:::-;25598:63;25655:4;25650:3;25646:14;25632:12;25598:63;:::i;:::-;25483:188;25742:48;25784:4;25777:5;25773:16;25766:5;25742:48;:::i;:::-;25803:59;25856:4;25851:3;25847:14;25833:12;25803:59;:::i;:::-;25681:191;25148:731;25028:851;;:::o;25885:441::-;26060:4;26098:3;26087:9;26083:19;26075:27;;26112:71;26180:1;26169:9;26165:17;26156:6;26112:71;:::i;:::-;26193:126;26315:2;26304:9;26300:18;26291:6;26193:126;:::i;:::-;25885:441;;;;;:::o;26332:332::-;26453:4;26491:2;26480:9;26476:18;26468:26;;26504:71;26572:1;26561:9;26557:17;26548:6;26504:71;:::i;:::-;26585:72;26653:2;26642:9;26638:18;26629:6;26585:72;:::i;:::-;26332:332;;;;;:::o" + }, + "methodIdentifiers": { + "DEFAULT_ADMIN_ROLE()": "a217fddf", + "getRoleAdmin(bytes32)": "248a9ca3", + "getSignatureDeposit()": "ae650b95", + "grantRole(bytes32,address)": "2f2ff15d", + "hasRole(bytes32,address)": "91d14854", + "renounceRole(bytes32,address)": "36568abe", + "respond((bytes32,((uint256,uint256),uint256,uint8))[])": "fb0dc126", + "respondError((bytes32,string)[])": "43ec0d4c", + "revokeRole(bytes32,address)": "d547741f", + "setSignatureDeposit(uint256)": "5f45af88", + "sign((bytes32,string,uint32,string,string,string))": "a03b5c3b", + "supportsInterface(bytes4)": "01ffc9a7", + "withdraw(uint256,address)": "00f714ce" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_mpc_network\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_signatureDeposit\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"responder\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"SignatureError\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"payload\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"keyVersion\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"deposit\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"algo\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"dest\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"params\",\"type\":\"string\"}],\"name\":\"SignatureRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"responder\",\"type\":\"address\"},{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"}],\"internalType\":\"struct ChainSignatures.AffinePoint\",\"name\":\"bigR\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"s\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"recoveryId\",\"type\":\"uint8\"}],\"indexed\":false,\"internalType\":\"struct ChainSignatures.Signature\",\"name\":\"signature\",\"type\":\"tuple\"}],\"name\":\"SignatureResponded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSignatureDeposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"}],\"internalType\":\"struct ChainSignatures.AffinePoint\",\"name\":\"bigR\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"s\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"recoveryId\",\"type\":\"uint8\"}],\"internalType\":\"struct ChainSignatures.Signature\",\"name\":\"signature\",\"type\":\"tuple\"}],\"internalType\":\"struct ChainSignatures.Response[]\",\"name\":\"_responses\",\"type\":\"tuple[]\"}],\"name\":\"respond\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"errorMessage\",\"type\":\"string\"}],\"internalType\":\"struct ChainSignatures.ErrorResponse[]\",\"name\":\"_errors\",\"type\":\"tuple[]\"}],\"name\":\"respondError\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"setSignatureDeposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"payload\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint32\",\"name\":\"keyVersion\",\"type\":\"uint32\"},{\"internalType\":\"string\",\"name\":\"algo\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"dest\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"params\",\"type\":\"string\"}],\"internalType\":\"struct ChainSignatures.SignRequest\",\"name\":\"_request\",\"type\":\"tuple\"}],\"name\":\"sign\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract for accepting signature requests and providing responses from the Sig.Network.\",\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}]},\"events\":{\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). Expected in cases where the role was granted using the internal {AccessControl-_grantRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"SignatureError(bytes32,address,string)\":{\"details\":\"Emitted when a signature error is received.\",\"params\":{\"error\":\"The error message.\",\"requestId\":\"The ID of the request. Must be calculated off-chain.\",\"responder\":\"The address of the responder.\"}},\"SignatureRequested(address,bytes32,uint32,uint256,uint256,string,string,string,string)\":{\"details\":\"Emitted when a signature is requested.\",\"params\":{\"algo\":\"The algorithm used for signing.\",\"chainId\":\"The ID of the blockchain.\",\"deposit\":\"The deposit amount.\",\"dest\":\"The response destination.\",\"keyVersion\":\"The version of the key used for signing.\",\"params\":\"Additional parameters.\",\"path\":\"The derivation path for the user account.\",\"payload\":\"The payload to be signed.\",\"sender\":\"The address of the sender.\"}},\"SignatureResponded(bytes32,address,((uint256,uint256),uint256,uint8))\":{\"details\":\"Emitted when a signature response is received.\",\"params\":{\"requestId\":\"The ID of the request. Must be calculated off-chain.\",\"responder\":\"The address of the responder.\",\"signature\":\"The signature response.\"}},\"Withdraw(address,uint256)\":{\"details\":\"Emitted when a withdrawal is made.\",\"params\":{\"amount\":\"The amount withdrawn.\",\"owner\":\"The address of the owner.\"}}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Constructor for the ChainSignatures contract.\",\"params\":{\"_mpc_network\":\"The address of the account controlled by the MPC network.\",\"_signatureDeposit\":\"The deposit required for signature requests.\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"getSignatureDeposit()\":{\"details\":\"Function to get the current signature deposit amount.\",\"returns\":{\"_0\":\"The current signature deposit amount.\"}},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"respond((bytes32,((uint256,uint256),uint256,uint8))[])\":{\"details\":\"Function to respond to signature requests.\",\"params\":{\"_responses\":\"The array of signature responses.\"}},\"respondError((bytes32,string)[])\":{\"details\":\"Function to emit signature generation errors.\",\"params\":{\"_errors\":\"The array of signature generation errors.\"}},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"setSignatureDeposit(uint256)\":{\"details\":\"Function to set the signature deposit amount.\",\"params\":{\"_amount\":\"The new deposit amount.\"}},\"sign((bytes32,string,uint32,string,string,string))\":{\"details\":\"Function to request a signature.\",\"params\":{\"_request\":\"The signature request details.\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"withdraw(uint256,address)\":{\"details\":\"Function to withdraw funds from the contract.\",\"params\":{\"_amount\":\"The amount to withdraw.\",\"_receiver\":\"The address to receive the withdrawn funds.\"}}},\"title\":\"Sig.Network signing contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/ChainSignatures.sol\":\"ChainSignatures\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80\",\"dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xc1c2a7f1563b77050dc6d507db9f4ada5d042c1f6a9ddbffdc49c77cdc0a1606\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd54abb96a6156d9a761f6fdad1d3004bc48d2d4fce47f40a3f91a7ae83fc3a1\",\"dweb:/ipfs/QmUrFSGkTDJ7WaZ6qPVVe3Gn5uN2viPb7x7QQ35UX4DofX\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"contracts/ChainSignatures.sol\":{\"keccak256\":\"0xb90bd71cee9e352c23d817f723d37b7259b879b15fac1eff4c78927b4409129c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e1aed62399b70710c6e1e6006491f97be0cd4d50a951e5eab0cbe84367697f6\",\"dweb:/ipfs/QmWaktSRHrGbnF2Xu5pr4Hi5P9B1k58LQSCxBkKzEKxTcE\"]}},\"version\":1}", + "storageLayout": { + "storage": [ + { + "astId": 26, + "contract": "contracts/ChainSignatures.sol:ChainSignatures", + "label": "_roles", + "offset": 0, + "slot": "0", + "type": "t_mapping(t_bytes32,t_struct(RoleData)21_storage)" + }, + { + "astId": 489, + "contract": "contracts/ChainSignatures.sol:ChainSignatures", + "label": "signatureDeposit", + "offset": 0, + "slot": "1", + "type": "t_uint256" + } + ], + "types": { + "t_address": { + "encoding": "inplace", + "label": "address", + "numberOfBytes": "20" + }, + "t_bool": { + "encoding": "inplace", + "label": "bool", + "numberOfBytes": "1" + }, + "t_bytes32": { + "encoding": "inplace", + "label": "bytes32", + "numberOfBytes": "32" + }, + "t_mapping(t_address,t_bool)": { + "encoding": "mapping", + "key": "t_address", + "label": "mapping(address => bool)", + "numberOfBytes": "32", + "value": "t_bool" + }, + "t_mapping(t_bytes32,t_struct(RoleData)21_storage)": { + "encoding": "mapping", + "key": "t_bytes32", + "label": "mapping(bytes32 => struct AccessControl.RoleData)", + "numberOfBytes": "32", + "value": "t_struct(RoleData)21_storage" + }, + "t_struct(RoleData)21_storage": { + "encoding": "inplace", + "label": "struct AccessControl.RoleData", + "members": [ + { + "astId": 18, + "contract": "contracts/ChainSignatures.sol:ChainSignatures", + "label": "hasRole", + "offset": 0, + "slot": "0", + "type": "t_mapping(t_address,t_bool)" + }, + { + "astId": 20, + "contract": "contracts/ChainSignatures.sol:ChainSignatures", + "label": "adminRole", + "offset": 0, + "slot": "1", + "type": "t_bytes32" + } + ], + "numberOfBytes": "64" + }, + "t_uint256": { + "encoding": "inplace", + "label": "uint256", + "numberOfBytes": "32" + } + } + } + } + } + } + } +} \ No newline at end of file diff --git a/chain-signatures/contract-eth/ignition/deployments/chain-1/deployed_addresses.json b/chain-signatures/contract-eth/ignition/deployments/chain-1/deployed_addresses.json new file mode 100644 index 000000000..6721ba18f --- /dev/null +++ b/chain-signatures/contract-eth/ignition/deployments/chain-1/deployed_addresses.json @@ -0,0 +1,3 @@ +{ + "ChainSignaturesModule#ChainSignatures": "0xf8bdC0612361a1E49a8E01423d4C0cFc5dF4791A" +} diff --git a/chain-signatures/contract-eth/ignition/deployments/chain-1/journal.jsonl b/chain-signatures/contract-eth/ignition/deployments/chain-1/journal.jsonl new file mode 100644 index 000000000..826c73b53 --- /dev/null +++ b/chain-signatures/contract-eth/ignition/deployments/chain-1/journal.jsonl @@ -0,0 +1,7 @@ + +{"chainId":1,"type":"DEPLOYMENT_INITIALIZE"} +{"artifactId":"ChainSignaturesModule#ChainSignatures","constructorArgs":["0x3c0f802d66ac9fe56fa90afb0714dbc65b05a445",1200000000000000],"contractName":"ChainSignatures","dependencies":[],"from":"0xac515d2895687abc4a0904e1c371dd6b64955dff","futureId":"ChainSignaturesModule#ChainSignatures","futureType":"NAMED_ARTIFACT_CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"ChainSignaturesModule#ChainSignatures","networkInteraction":{"data":"0x608060405234801561001057600080fd5b50604051611b42380380611b428339818101604052810190610032919061025c565b6100456000801b8361005460201b60201c565b5080600181905550505061029c565b6000610066838361015160201b60201c565b61014657600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506100e36101bb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001905061014b565b600090505b92915050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600033905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006101f3826101c8565b9050919050565b610203816101e8565b811461020e57600080fd5b50565b600081519050610220816101fa565b92915050565b6000819050919050565b61023981610226565b811461024457600080fd5b50565b60008151905061025681610230565b92915050565b60008060408385031215610273576102726101c3565b5b600061028185828601610211565b925050602061029285828601610247565b9150509250929050565b611897806102ab6000396000f3fe6080604052600436106100c15760003560e01c80635f45af881161007f578063a217fddf11610059578063a217fddf14610266578063ae650b9514610291578063d547741f146102bc578063fb0dc126146102e5576100c1565b80635f45af88146101e457806391d148541461020d578063a03b5c3b1461024a576100c1565b8062f714ce146100c657806301ffc9a7146100ef578063248a9ca31461012c5780632f2ff15d1461016957806336568abe1461019257806343ec0d4c146101bb575b600080fd5b3480156100d257600080fd5b506100ed60048036038101906100e89190610c08565b61030e565b005b3480156100fb57600080fd5b5061011660048036038101906101119190610ca0565b6104cd565b6040516101239190610ce8565b60405180910390f35b34801561013857600080fd5b50610153600480360381019061014e9190610d39565b610547565b6040516101609190610d75565b60405180910390f35b34801561017557600080fd5b50610190600480360381019061018b9190610d90565b610566565b005b34801561019e57600080fd5b506101b960048036038101906101b49190610d90565b610588565b005b3480156101c757600080fd5b506101e260048036038101906101dd9190610e35565b610603565b005b3480156101f057600080fd5b5061020b60048036038101906102069190610e82565b6106b9565b005b34801561021957600080fd5b50610234600480360381019061022f9190610d90565b6106d1565b6040516102419190610ce8565b60405180910390f35b610264600480360381019061025f9190611146565b61073b565b005b34801561027257600080fd5b5061027b6107e2565b6040516102889190610d75565b60405180910390f35b34801561029d57600080fd5b506102a66107e9565b6040516102b3919061119e565b60405180910390f35b3480156102c857600080fd5b506102e360048036038101906102de9190610d90565b6107f3565b005b3480156102f157600080fd5b5061030c6004803603810190610307919061120f565b610815565b005b6000801b61031b816108a6565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361038a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610381906112b9565b60405180910390fd5b478311156103cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103c49061134b565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16846040516103f39061139c565b60006040518083038185875af1925050503d8060008114610430576040519150601f19603f3d011682016040523d82523d6000602084013e610435565b606091505b5050905080610479576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610470906113fd565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff167f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364856040516104bf919061119e565b60405180910390a250505050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610540575061053f826108ba565b5b9050919050565b6000806000838152602001908152602001600020600101549050919050565b61056f82610547565b610578816108a6565b6105828383610924565b50505050565b610590610a15565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146105f4576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6105fe8282610a1d565b505050565b60005b828290508110156106b4578282828181106106245761062361141d565b5b9050602002810190610636919061145b565b600001357f3a8c98eb820de2bc0f92e6c44a3bc0245111e8d203e7aa5e8f2cb783b61ca1243385858581811061066f5761066e61141d565b5b9050602002810190610681919061145b565b80602001906106909190611483565b60405161069f93929190611522565b60405180910390a28080600101915050610606565b505050565b6000801b6106c6816108a6565b816001819055505050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600154341015610780576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610777906115a0565b60405180910390fd5b7f6c77c4e5e031dca0c4944909e0d4d343c9c5b16eda4ef1d4be0762693e026722338260000151836040015134468660200151876060015188608001518960a001516040516107d79998979695949392919061163d565b60405180910390a150565b6000801b81565b6000600154905090565b6107fc82610547565b610805816108a6565b61080f8383610a1d565b50505050565b60005b828290508110156108a1578282828181106108365761083561141d565b5b905060a00201600001357f8fefda2f6c146df62efa1de95f8ff0b9c29ae07b9846e61fbce6e618897397ff338585858181106108755761087461141d565b5b905060a0020160200160405161088c92919061180f565b60405180910390a28080600101915050610818565b505050565b6108b7816108b2610a15565b610b0f565b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600061093083836106d1565b610a0a57600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506109a7610a15565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050610a0f565b600090505b92915050565b600033905090565b6000610a2983836106d1565b15610b0457600080600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610aa1610a15565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050610b09565b600090505b92915050565b610b1982826106d1565b610b5c5780826040517fe2517d3f000000000000000000000000000000000000000000000000000000008152600401610b53929190611838565b60405180910390fd5b5050565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b610b8781610b74565b8114610b9257600080fd5b50565b600081359050610ba481610b7e565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610bd582610baa565b9050919050565b610be581610bca565b8114610bf057600080fd5b50565b600081359050610c0281610bdc565b92915050565b60008060408385031215610c1f57610c1e610b6a565b5b6000610c2d85828601610b95565b9250506020610c3e85828601610bf3565b9150509250929050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610c7d81610c48565b8114610c8857600080fd5b50565b600081359050610c9a81610c74565b92915050565b600060208284031215610cb657610cb5610b6a565b5b6000610cc484828501610c8b565b91505092915050565b60008115159050919050565b610ce281610ccd565b82525050565b6000602082019050610cfd6000830184610cd9565b92915050565b6000819050919050565b610d1681610d03565b8114610d2157600080fd5b50565b600081359050610d3381610d0d565b92915050565b600060208284031215610d4f57610d4e610b6a565b5b6000610d5d84828501610d24565b91505092915050565b610d6f81610d03565b82525050565b6000602082019050610d8a6000830184610d66565b92915050565b60008060408385031215610da757610da6610b6a565b5b6000610db585828601610d24565b9250506020610dc685828601610bf3565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f840112610df557610df4610dd0565b5b8235905067ffffffffffffffff811115610e1257610e11610dd5565b5b602083019150836020820283011115610e2e57610e2d610dda565b5b9250929050565b60008060208385031215610e4c57610e4b610b6a565b5b600083013567ffffffffffffffff811115610e6a57610e69610b6f565b5b610e7685828601610ddf565b92509250509250929050565b600060208284031215610e9857610e97610b6a565b5b6000610ea684828501610b95565b91505092915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610efd82610eb4565b810181811067ffffffffffffffff82111715610f1c57610f1b610ec5565b5b80604052505050565b6000610f2f610b60565b9050610f3b8282610ef4565b919050565b600080fd5b600080fd5b600067ffffffffffffffff821115610f6557610f64610ec5565b5b610f6e82610eb4565b9050602081019050919050565b82818337600083830152505050565b6000610f9d610f9884610f4a565b610f25565b905082815260208101848484011115610fb957610fb8610f45565b5b610fc4848285610f7b565b509392505050565b600082601f830112610fe157610fe0610dd0565b5b8135610ff1848260208601610f8a565b91505092915050565b600063ffffffff82169050919050565b61101381610ffa565b811461101e57600080fd5b50565b6000813590506110308161100a565b92915050565b600060c0828403121561104c5761104b610eaf565b5b61105660c0610f25565b9050600061106684828501610d24565b600083015250602082013567ffffffffffffffff81111561108a57611089610f40565b5b61109684828501610fcc565b60208301525060406110aa84828501611021565b604083015250606082013567ffffffffffffffff8111156110ce576110cd610f40565b5b6110da84828501610fcc565b606083015250608082013567ffffffffffffffff8111156110fe576110fd610f40565b5b61110a84828501610fcc565b60808301525060a082013567ffffffffffffffff81111561112e5761112d610f40565b5b61113a84828501610fcc565b60a08301525092915050565b60006020828403121561115c5761115b610b6a565b5b600082013567ffffffffffffffff81111561117a57611179610b6f565b5b61118684828501611036565b91505092915050565b61119881610b74565b82525050565b60006020820190506111b3600083018461118f565b92915050565b60008083601f8401126111cf576111ce610dd0565b5b8235905067ffffffffffffffff8111156111ec576111eb610dd5565b5b6020830191508360a082028301111561120857611207610dda565b5b9250929050565b6000806020838503121561122657611225610b6a565b5b600083013567ffffffffffffffff81111561124457611243610b6f565b5b611250858286016111b9565b92509250509250929050565b600082825260208201905092915050565b7f496e76616c696420726563656976657220616464726573730000000000000000600082015250565b60006112a360188361125c565b91506112ae8261126d565b602082019050919050565b600060208201905081810360008301526112d281611296565b9050919050565b7f576974686472617720616d6f756e74206d75737420626520736d616c6c65722060008201527f7468616e20746f74616c2062616c616e636520696e20636f6e74726163740000602082015250565b6000611335603e8361125c565b9150611340826112d9565b604082019050919050565b6000602082019050818103600083015261136481611328565b9050919050565b600081905092915050565b50565b600061138660008361136b565b915061139182611376565b600082019050919050565b60006113a782611379565b9150819050919050565b7f5472616e73666572206661696c65640000000000000000000000000000000000600082015250565b60006113e7600f8361125c565b91506113f2826113b1565b602082019050919050565b60006020820190508181036000830152611416816113da565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b600080fd5b600080fd5b6000823560016040038336030381126114775761147661144c565b5b80830191505092915050565b600080833560016020038436030381126114a05761149f61144c565b5b80840192508235915067ffffffffffffffff8211156114c2576114c1611451565b5b6020830192506001820236038313156114de576114dd611456565b5b509250929050565b6114ef81610bca565b82525050565b6000611501838561125c565b935061150e838584610f7b565b61151783610eb4565b840190509392505050565b600060408201905061153760008301866114e6565b818103602083015261154a8184866114f5565b9050949350505050565b7f496e73756666696369656e74206465706f736974000000000000000000000000600082015250565b600061158a60148361125c565b915061159582611554565b602082019050919050565b600060208201905081810360008301526115b98161157d565b9050919050565b6115c981610ffa565b82525050565b600081519050919050565b60005b838110156115f85780820151818401526020810190506115dd565b60008484015250505050565b600061160f826115cf565b611619818561125c565b93506116298185602086016115da565b61163281610eb4565b840191505092915050565b600061012082019050611653600083018c6114e6565b611660602083018b610d66565b61166d604083018a6115c0565b61167a606083018961118f565b611687608083018861118f565b81810360a08301526116998187611604565b905081810360c08301526116ad8186611604565b905081810360e08301526116c18185611604565b90508181036101008301526116d68184611604565b90509a9950505050505050505050565b600082905092915050565b60006117006020840184610b95565b905092915050565b61171181610b74565b82525050565b6040820161172860008301836116f1565b6117356000850182611708565b5061174360208301836116f1565b6117506020850182611708565b50505050565b600060ff82169050919050565b61176c81611756565b811461177757600080fd5b50565b60008135905061178981611763565b92915050565b600061179e602084018461177a565b905092915050565b6117af81611756565b82525050565b608082016117c660008301836116e6565b6117d36000850182611717565b506117e160408301836116f1565b6117ee6040850182611708565b506117fc606083018361178f565b61180960608501826117a6565b50505050565b600060a08201905061182460008301856114e6565b61183160208301846117b5565b9392505050565b600060408201905061184d60008301856114e6565b61185a6020830184610d66565b939250505056fea26469706673582212202eea9aaacf9dd7810b1f570cb63d664bd79569b59fd396dcd9da436007fb4cf364736f6c634300081b00330000000000000000000000003c0f802d66ac9fe56fa90afb0714dbc65b05a44500000000000000000000000000000000000000000000000000044364c5bb0000","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"ChainSignaturesModule#ChainSignatures","networkInteractionId":1,"nonce":7,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"1360786395"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"882901"}},"hash":"0x02a606f0a786ade1380f4d6b97db1607f7143181a3bac7698bc36ede3ee14ba7"},"type":"TRANSACTION_SEND"} +{"futureId":"ChainSignaturesModule#ChainSignatures","hash":"0x02a606f0a786ade1380f4d6b97db1607f7143181a3bac7698bc36ede3ee14ba7","networkInteractionId":1,"receipt":{"blockHash":"0x3b0d130425488d0625ecfbf81a13b869e5360201b0b431da2aa87234ccbbe4c4","blockNumber":21889979,"contractAddress":"0xf8bdC0612361a1E49a8E01423d4C0cFc5dF4791A","logs":[{"address":"0xf8bdC0612361a1E49a8E01423d4C0cFc5dF4791A","data":"0x","logIndex":487,"topics":["0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000003c0f802d66ac9fe56fa90afb0714dbc65b05a445","0x000000000000000000000000ac515d2895687abc4a0904e1c371dd6b64955dff"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"ChainSignaturesModule#ChainSignatures","result":{"address":"0xf8bdC0612361a1E49a8E01423d4C0cFc5dF4791A","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} \ No newline at end of file diff --git a/chain-signatures/contract-eth/ignition/modules/chainSignatures.js b/chain-signatures/contract-eth/ignition/modules/chainSignatures.js index 5f12503d6..b99a781ed 100644 --- a/chain-signatures/contract-eth/ignition/modules/chainSignatures.js +++ b/chain-signatures/contract-eth/ignition/modules/chainSignatures.js @@ -1,6 +1,6 @@ const { buildModule } = require("@nomicfoundation/hardhat-ignition/modules"); -const DEFAULT_ADMIN = "0x3Aa5ebB10DC797CAC828524e59A333d0A371443c"; +const DEFAULT_ADMIN = "0x3c0f802d66ac9fe56fa90afb0714dbc65b05a445"; const DEFAULT_DEPOSIT_AMOUNT = "1200000000000000"; module.exports = buildModule("ChainSignaturesModule", (m) => { diff --git a/chain-signatures/contract-eth/ignition/params.json b/chain-signatures/contract-eth/ignition/params.json index 120876b7c..02d69bb9b 100644 --- a/chain-signatures/contract-eth/ignition/params.json +++ b/chain-signatures/contract-eth/ignition/params.json @@ -1,6 +1,6 @@ { "ChainSignaturesModule": { - "admin": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", + "admin": "0x3c0f802d66ac9fe56fa90afb0714dbc65b05a445", "deposit_amount": 1200000000000000 } } \ No newline at end of file diff --git a/chain-signatures/contract-eth/scripts/requestSign.js b/chain-signatures/contract-eth/scripts/requestSign.js index 1738ec975..bd960e877 100644 --- a/chain-signatures/contract-eth/scripts/requestSign.js +++ b/chain-signatures/contract-eth/scripts/requestSign.js @@ -11,8 +11,11 @@ async function main() { } else if (network === 'sepolia') { const deployments = require('../ignition/deployments/chain-11155111/deployed_addresses.json'); contractAddress = deployments[Object.keys(deployments).pop()]; - } else { - throw new Error('Unsupported network specified. Use "localhost" or "sepolia"'); + } else if (network === 'mainnet') { + const deployments = require('../ignition/deployments/chain-1/deployed_addresses.json'); + contractAddress = deployments[Object.keys(deployments).pop()]; + }else { + throw new Error('Unsupported network specified. Use "localhost" or "sepolia" or "mainnet"'); } console.log("network", network, "contractAddress", contractAddress);