diff --git a/orderbook-rs/src/orderbook/abi/IOrderBookV3.json b/orderbook-rs/src/orderbook/abi/IOrderBookV3.json new file mode 100644 index 000000000..e472574bb --- /dev/null +++ b/orderbook-rs/src/orderbook/abi/IOrderBookV3.json @@ -0,0 +1,7232 @@ +{ + "abi": [ + { + "type": "function", + "name": "addOrder", + "inputs": [ + { + "name": "config", + "type": "tuple", + "internalType": "struct OrderConfigV2", + "components": [ + { + "name": "validInputs", + "type": "tuple[]", + "internalType": "struct IO[]", + "components": [ + { + "name": "token", + "type": "address", + "internalType": "address" + }, + { + "name": "decimals", + "type": "uint8", + "internalType": "uint8" + }, + { + "name": "vaultId", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "name": "validOutputs", + "type": "tuple[]", + "internalType": "struct IO[]", + "components": [ + { + "name": "token", + "type": "address", + "internalType": "address" + }, + { + "name": "decimals", + "type": "uint8", + "internalType": "uint8" + }, + { + "name": "vaultId", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "name": "evaluableConfig", + "type": "tuple", + "internalType": "struct EvaluableConfigV3", + "components": [ + { + "name": "deployer", + "type": "address", + "internalType": "contract IExpressionDeployerV3" + }, + { + "name": "bytecode", + "type": "bytes", + "internalType": "bytes" + }, + { + "name": "constants", + "type": "uint256[]", + "internalType": "uint256[]" + } + ] + }, + { + "name": "meta", + "type": "bytes", + "internalType": "bytes" + } + ] + } + ], + "outputs": [ + { + "name": "stateChanged", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "clear", + "inputs": [ + { + "name": "alice", + "type": "tuple", + "internalType": "struct OrderV2", + "components": [ + { + "name": "owner", + "type": "address", + "internalType": "address" + }, + { + "name": "handleIO", + "type": "bool", + "internalType": "bool" + }, + { + "name": "evaluable", + "type": "tuple", + "internalType": "struct EvaluableV2", + "components": [ + { + "name": "interpreter", + "type": "address", + "internalType": "contract IInterpreterV2" + }, + { + "name": "store", + "type": "address", + "internalType": "contract IInterpreterStoreV1" + }, + { + "name": "expression", + "type": "address", + "internalType": "address" + } + ] + }, + { + "name": "validInputs", + "type": "tuple[]", + "internalType": "struct IO[]", + "components": [ + { + "name": "token", + "type": "address", + "internalType": "address" + }, + { + "name": "decimals", + "type": "uint8", + "internalType": "uint8" + }, + { + "name": "vaultId", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "name": "validOutputs", + "type": "tuple[]", + "internalType": "struct IO[]", + "components": [ + { + "name": "token", + "type": "address", + "internalType": "address" + }, + { + "name": "decimals", + "type": "uint8", + "internalType": "uint8" + }, + { + "name": "vaultId", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + }, + { + "name": "bob", + "type": "tuple", + "internalType": "struct OrderV2", + "components": [ + { + "name": "owner", + "type": "address", + "internalType": "address" + }, + { + "name": "handleIO", + "type": "bool", + "internalType": "bool" + }, + { + "name": "evaluable", + "type": "tuple", + "internalType": "struct EvaluableV2", + "components": [ + { + "name": "interpreter", + "type": "address", + "internalType": "contract IInterpreterV2" + }, + { + "name": "store", + "type": "address", + "internalType": "contract IInterpreterStoreV1" + }, + { + "name": "expression", + "type": "address", + "internalType": "address" + } + ] + }, + { + "name": "validInputs", + "type": "tuple[]", + "internalType": "struct IO[]", + "components": [ + { + "name": "token", + "type": "address", + "internalType": "address" + }, + { + "name": "decimals", + "type": "uint8", + "internalType": "uint8" + }, + { + "name": "vaultId", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "name": "validOutputs", + "type": "tuple[]", + "internalType": "struct IO[]", + "components": [ + { + "name": "token", + "type": "address", + "internalType": "address" + }, + { + "name": "decimals", + "type": "uint8", + "internalType": "uint8" + }, + { + "name": "vaultId", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + }, + { + "name": "clearConfig", + "type": "tuple", + "internalType": "struct ClearConfig", + "components": [ + { + "name": "aliceInputIOIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "aliceOutputIOIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "bobInputIOIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "bobOutputIOIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "aliceBountyVaultId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "bobBountyVaultId", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "name": "aliceSignedContext", + "type": "tuple[]", + "internalType": "struct SignedContextV1[]", + "components": [ + { + "name": "signer", + "type": "address", + "internalType": "address" + }, + { + "name": "context", + "type": "uint256[]", + "internalType": "uint256[]" + }, + { + "name": "signature", + "type": "bytes", + "internalType": "bytes" + } + ] + }, + { + "name": "bobSignedContext", + "type": "tuple[]", + "internalType": "struct SignedContextV1[]", + "components": [ + { + "name": "signer", + "type": "address", + "internalType": "address" + }, + { + "name": "context", + "type": "uint256[]", + "internalType": "uint256[]" + }, + { + "name": "signature", + "type": "bytes", + "internalType": "bytes" + } + ] + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "deposit", + "inputs": [ + { + "name": "token", + "type": "address", + "internalType": "address" + }, + { + "name": "vaultId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "flashFee", + "inputs": [ + { + "name": "token", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "flashLoan", + "inputs": [ + { + "name": "receiver", + "type": "address", + "internalType": "contract IERC3156FlashBorrower" + }, + { + "name": "token", + "type": "address", + "internalType": "address" + }, + { + "name": "amount", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "data", + "type": "bytes", + "internalType": "bytes" + } + ], + "outputs": [ + { + "name": "", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "maxFlashLoan", + "inputs": [ + { + "name": "token", + "type": "address", + "internalType": "address" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "orderExists", + "inputs": [ + { + "name": "orderHash", + "type": "bytes32", + "internalType": "bytes32" + } + ], + "outputs": [ + { + "name": "exists", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "removeOrder", + "inputs": [ + { + "name": "order", + "type": "tuple", + "internalType": "struct OrderV2", + "components": [ + { + "name": "owner", + "type": "address", + "internalType": "address" + }, + { + "name": "handleIO", + "type": "bool", + "internalType": "bool" + }, + { + "name": "evaluable", + "type": "tuple", + "internalType": "struct EvaluableV2", + "components": [ + { + "name": "interpreter", + "type": "address", + "internalType": "contract IInterpreterV2" + }, + { + "name": "store", + "type": "address", + "internalType": "contract IInterpreterStoreV1" + }, + { + "name": "expression", + "type": "address", + "internalType": "address" + } + ] + }, + { + "name": "validInputs", + "type": "tuple[]", + "internalType": "struct IO[]", + "components": [ + { + "name": "token", + "type": "address", + "internalType": "address" + }, + { + "name": "decimals", + "type": "uint8", + "internalType": "uint8" + }, + { + "name": "vaultId", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "name": "validOutputs", + "type": "tuple[]", + "internalType": "struct IO[]", + "components": [ + { + "name": "token", + "type": "address", + "internalType": "address" + }, + { + "name": "decimals", + "type": "uint8", + "internalType": "uint8" + }, + { + "name": "vaultId", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + } + ], + "outputs": [ + { + "name": "stateChanged", + "type": "bool", + "internalType": "bool" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "takeOrders", + "inputs": [ + { + "name": "config", + "type": "tuple", + "internalType": "struct TakeOrdersConfigV2", + "components": [ + { + "name": "minimumInput", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "maximumInput", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "maximumIORatio", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "orders", + "type": "tuple[]", + "internalType": "struct TakeOrderConfigV2[]", + "components": [ + { + "name": "order", + "type": "tuple", + "internalType": "struct OrderV2", + "components": [ + { + "name": "owner", + "type": "address", + "internalType": "address" + }, + { + "name": "handleIO", + "type": "bool", + "internalType": "bool" + }, + { + "name": "evaluable", + "type": "tuple", + "internalType": "struct EvaluableV2", + "components": [ + { + "name": "interpreter", + "type": "address", + "internalType": "contract IInterpreterV2" + }, + { + "name": "store", + "type": "address", + "internalType": "contract IInterpreterStoreV1" + }, + { + "name": "expression", + "type": "address", + "internalType": "address" + } + ] + }, + { + "name": "validInputs", + "type": "tuple[]", + "internalType": "struct IO[]", + "components": [ + { + "name": "token", + "type": "address", + "internalType": "address" + }, + { + "name": "decimals", + "type": "uint8", + "internalType": "uint8" + }, + { + "name": "vaultId", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "name": "validOutputs", + "type": "tuple[]", + "internalType": "struct IO[]", + "components": [ + { + "name": "token", + "type": "address", + "internalType": "address" + }, + { + "name": "decimals", + "type": "uint8", + "internalType": "uint8" + }, + { + "name": "vaultId", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + }, + { + "name": "inputIOIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "outputIOIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "signedContext", + "type": "tuple[]", + "internalType": "struct SignedContextV1[]", + "components": [ + { + "name": "signer", + "type": "address", + "internalType": "address" + }, + { + "name": "context", + "type": "uint256[]", + "internalType": "uint256[]" + }, + { + "name": "signature", + "type": "bytes", + "internalType": "bytes" + } + ] + } + ] + }, + { + "name": "data", + "type": "bytes", + "internalType": "bytes" + } + ] + } + ], + "outputs": [ + { + "name": "totalInput", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "totalOutput", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "vaultBalance", + "inputs": [ + { + "name": "owner", + "type": "address", + "internalType": "address" + }, + { + "name": "token", + "type": "address", + "internalType": "address" + }, + { + "name": "id", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "balance", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "withdraw", + "inputs": [ + { + "name": "token", + "type": "address", + "internalType": "address" + }, + { + "name": "vaultId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "targetAmount", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "event", + "name": "AddOrder", + "inputs": [ + { + "name": "sender", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "expressionDeployer", + "type": "address", + "indexed": false, + "internalType": "contract IExpressionDeployerV3" + }, + { + "name": "order", + "type": "tuple", + "indexed": false, + "internalType": "struct OrderV2", + "components": [ + { + "name": "owner", + "type": "address", + "internalType": "address" + }, + { + "name": "handleIO", + "type": "bool", + "internalType": "bool" + }, + { + "name": "evaluable", + "type": "tuple", + "internalType": "struct EvaluableV2", + "components": [ + { + "name": "interpreter", + "type": "address", + "internalType": "contract IInterpreterV2" + }, + { + "name": "store", + "type": "address", + "internalType": "contract IInterpreterStoreV1" + }, + { + "name": "expression", + "type": "address", + "internalType": "address" + } + ] + }, + { + "name": "validInputs", + "type": "tuple[]", + "internalType": "struct IO[]", + "components": [ + { + "name": "token", + "type": "address", + "internalType": "address" + }, + { + "name": "decimals", + "type": "uint8", + "internalType": "uint8" + }, + { + "name": "vaultId", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "name": "validOutputs", + "type": "tuple[]", + "internalType": "struct IO[]", + "components": [ + { + "name": "token", + "type": "address", + "internalType": "address" + }, + { + "name": "decimals", + "type": "uint8", + "internalType": "uint8" + }, + { + "name": "vaultId", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + }, + { + "name": "orderHash", + "type": "bytes32", + "indexed": false, + "internalType": "bytes32" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "AfterClear", + "inputs": [ + { + "name": "sender", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "clearStateChange", + "type": "tuple", + "indexed": false, + "internalType": "struct ClearStateChange", + "components": [ + { + "name": "aliceOutput", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "bobOutput", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "aliceInput", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "bobInput", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Clear", + "inputs": [ + { + "name": "sender", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "alice", + "type": "tuple", + "indexed": false, + "internalType": "struct OrderV2", + "components": [ + { + "name": "owner", + "type": "address", + "internalType": "address" + }, + { + "name": "handleIO", + "type": "bool", + "internalType": "bool" + }, + { + "name": "evaluable", + "type": "tuple", + "internalType": "struct EvaluableV2", + "components": [ + { + "name": "interpreter", + "type": "address", + "internalType": "contract IInterpreterV2" + }, + { + "name": "store", + "type": "address", + "internalType": "contract IInterpreterStoreV1" + }, + { + "name": "expression", + "type": "address", + "internalType": "address" + } + ] + }, + { + "name": "validInputs", + "type": "tuple[]", + "internalType": "struct IO[]", + "components": [ + { + "name": "token", + "type": "address", + "internalType": "address" + }, + { + "name": "decimals", + "type": "uint8", + "internalType": "uint8" + }, + { + "name": "vaultId", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "name": "validOutputs", + "type": "tuple[]", + "internalType": "struct IO[]", + "components": [ + { + "name": "token", + "type": "address", + "internalType": "address" + }, + { + "name": "decimals", + "type": "uint8", + "internalType": "uint8" + }, + { + "name": "vaultId", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + }, + { + "name": "bob", + "type": "tuple", + "indexed": false, + "internalType": "struct OrderV2", + "components": [ + { + "name": "owner", + "type": "address", + "internalType": "address" + }, + { + "name": "handleIO", + "type": "bool", + "internalType": "bool" + }, + { + "name": "evaluable", + "type": "tuple", + "internalType": "struct EvaluableV2", + "components": [ + { + "name": "interpreter", + "type": "address", + "internalType": "contract IInterpreterV2" + }, + { + "name": "store", + "type": "address", + "internalType": "contract IInterpreterStoreV1" + }, + { + "name": "expression", + "type": "address", + "internalType": "address" + } + ] + }, + { + "name": "validInputs", + "type": "tuple[]", + "internalType": "struct IO[]", + "components": [ + { + "name": "token", + "type": "address", + "internalType": "address" + }, + { + "name": "decimals", + "type": "uint8", + "internalType": "uint8" + }, + { + "name": "vaultId", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "name": "validOutputs", + "type": "tuple[]", + "internalType": "struct IO[]", + "components": [ + { + "name": "token", + "type": "address", + "internalType": "address" + }, + { + "name": "decimals", + "type": "uint8", + "internalType": "uint8" + }, + { + "name": "vaultId", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + }, + { + "name": "clearConfig", + "type": "tuple", + "indexed": false, + "internalType": "struct ClearConfig", + "components": [ + { + "name": "aliceInputIOIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "aliceOutputIOIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "bobInputIOIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "bobOutputIOIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "aliceBountyVaultId", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "bobBountyVaultId", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Context", + "inputs": [ + { + "name": "sender", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "context", + "type": "uint256[][]", + "indexed": false, + "internalType": "uint256[][]" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Deposit", + "inputs": [ + { + "name": "sender", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "token", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "vaultId", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "OrderExceedsMaxRatio", + "inputs": [ + { + "name": "sender", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "owner", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "orderHash", + "type": "bytes32", + "indexed": false, + "internalType": "bytes32" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "OrderNotFound", + "inputs": [ + { + "name": "sender", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "owner", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "orderHash", + "type": "bytes32", + "indexed": false, + "internalType": "bytes32" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "OrderZeroAmount", + "inputs": [ + { + "name": "sender", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "owner", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "orderHash", + "type": "bytes32", + "indexed": false, + "internalType": "bytes32" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "RemoveOrder", + "inputs": [ + { + "name": "sender", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "order", + "type": "tuple", + "indexed": false, + "internalType": "struct OrderV2", + "components": [ + { + "name": "owner", + "type": "address", + "internalType": "address" + }, + { + "name": "handleIO", + "type": "bool", + "internalType": "bool" + }, + { + "name": "evaluable", + "type": "tuple", + "internalType": "struct EvaluableV2", + "components": [ + { + "name": "interpreter", + "type": "address", + "internalType": "contract IInterpreterV2" + }, + { + "name": "store", + "type": "address", + "internalType": "contract IInterpreterStoreV1" + }, + { + "name": "expression", + "type": "address", + "internalType": "address" + } + ] + }, + { + "name": "validInputs", + "type": "tuple[]", + "internalType": "struct IO[]", + "components": [ + { + "name": "token", + "type": "address", + "internalType": "address" + }, + { + "name": "decimals", + "type": "uint8", + "internalType": "uint8" + }, + { + "name": "vaultId", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "name": "validOutputs", + "type": "tuple[]", + "internalType": "struct IO[]", + "components": [ + { + "name": "token", + "type": "address", + "internalType": "address" + }, + { + "name": "decimals", + "type": "uint8", + "internalType": "uint8" + }, + { + "name": "vaultId", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + }, + { + "name": "orderHash", + "type": "bytes32", + "indexed": false, + "internalType": "bytes32" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "TakeOrder", + "inputs": [ + { + "name": "sender", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "config", + "type": "tuple", + "indexed": false, + "internalType": "struct TakeOrderConfigV2", + "components": [ + { + "name": "order", + "type": "tuple", + "internalType": "struct OrderV2", + "components": [ + { + "name": "owner", + "type": "address", + "internalType": "address" + }, + { + "name": "handleIO", + "type": "bool", + "internalType": "bool" + }, + { + "name": "evaluable", + "type": "tuple", + "internalType": "struct EvaluableV2", + "components": [ + { + "name": "interpreter", + "type": "address", + "internalType": "contract IInterpreterV2" + }, + { + "name": "store", + "type": "address", + "internalType": "contract IInterpreterStoreV1" + }, + { + "name": "expression", + "type": "address", + "internalType": "address" + } + ] + }, + { + "name": "validInputs", + "type": "tuple[]", + "internalType": "struct IO[]", + "components": [ + { + "name": "token", + "type": "address", + "internalType": "address" + }, + { + "name": "decimals", + "type": "uint8", + "internalType": "uint8" + }, + { + "name": "vaultId", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "name": "validOutputs", + "type": "tuple[]", + "internalType": "struct IO[]", + "components": [ + { + "name": "token", + "type": "address", + "internalType": "address" + }, + { + "name": "decimals", + "type": "uint8", + "internalType": "uint8" + }, + { + "name": "vaultId", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ] + }, + { + "name": "inputIOIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "outputIOIndex", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "signedContext", + "type": "tuple[]", + "internalType": "struct SignedContextV1[]", + "components": [ + { + "name": "signer", + "type": "address", + "internalType": "address" + }, + { + "name": "context", + "type": "uint256[]", + "internalType": "uint256[]" + }, + { + "name": "signature", + "type": "bytes", + "internalType": "bytes" + } + ] + } + ] + }, + { + "name": "input", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "output", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "Withdraw", + "inputs": [ + { + "name": "sender", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "token", + "type": "address", + "indexed": false, + "internalType": "address" + }, + { + "name": "vaultId", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "targetAmount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "amount", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "error", + "name": "OrderNoHandleIO", + "inputs": [] + }, + { + "type": "error", + "name": "OrderNoInputs", + "inputs": [] + }, + { + "type": "error", + "name": "OrderNoOutputs", + "inputs": [] + }, + { + "type": "error", + "name": "OrderNoSources", + "inputs": [] + }, + { + "type": "error", + "name": "ZeroDepositAmount", + "inputs": [ + { + "name": "sender", + "type": "address", + "internalType": "address" + }, + { + "name": "token", + "type": "address", + "internalType": "address" + }, + { + "name": "vaultId", + "type": "uint256", + "internalType": "uint256" + } + ] + }, + { + "type": "error", + "name": "ZeroWithdrawTargetAmount", + "inputs": [ + { + "name": "sender", + "type": "address", + "internalType": "address" + }, + { + "name": "token", + "type": "address", + "internalType": "address" + }, + { + "name": "vaultId", + "type": "uint256", + "internalType": "uint256" + } + ] + } + ], + "bytecode": { + "object": "0x", + "sourceMap": "", + "linkReferences": {} + }, + "deployedBytecode": { + "object": "0x", + "sourceMap": "", + "linkReferences": {} + }, + "methodIdentifiers": { + "addOrder(((address,uint8,uint256)[],(address,uint8,uint256)[],(address,bytes,uint256[]),bytes))": "847a1bc9", + "clear((address,bool,(address,address,address),(address,uint8,uint256)[],(address,uint8,uint256)[]),(address,bool,(address,address,address),(address,uint8,uint256)[],(address,uint8,uint256)[]),(uint256,uint256,uint256,uint256,uint256,uint256),(address,uint256[],bytes)[],(address,uint256[],bytes)[])": "9e18968b", + "deposit(address,uint256,uint256)": "0efe6a8b", + "flashFee(address,uint256)": "d9d98ce4", + "flashLoan(address,address,uint256,bytes)": "5cffe9de", + "maxFlashLoan(address)": "613255ab", + "orderExists(bytes32)": "2cb77e9f", + "removeOrder((address,bool,(address,address,address),(address,uint8,uint256)[],(address,uint8,uint256)[]))": "e23746a3", + "takeOrders((uint256,uint256,uint256,((address,bool,(address,address,address),(address,uint8,uint256)[],(address,uint8,uint256)[]),uint256,uint256,(address,uint256[],bytes)[])[],bytes))": "8a44689c", + "vaultBalance(address,address,uint256)": "d97b2e48", + "withdraw(address,uint256,uint256)": "b5c5f672" + }, + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"OrderNoHandleIO\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OrderNoInputs\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OrderNoOutputs\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OrderNoSources\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"vaultId\",\"type\":\"uint256\"}],\"name\":\"ZeroDepositAmount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"vaultId\",\"type\":\"uint256\"}],\"name\":\"ZeroWithdrawTargetAmount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"contract IExpressionDeployerV3\",\"name\":\"expressionDeployer\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"handleIO\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"contract IInterpreterV2\",\"name\":\"interpreter\",\"type\":\"address\"},{\"internalType\":\"contract IInterpreterStoreV1\",\"name\":\"store\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"expression\",\"type\":\"address\"}],\"internalType\":\"struct EvaluableV2\",\"name\":\"evaluable\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"vaultId\",\"type\":\"uint256\"}],\"internalType\":\"struct IO[]\",\"name\":\"validInputs\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"vaultId\",\"type\":\"uint256\"}],\"internalType\":\"struct IO[]\",\"name\":\"validOutputs\",\"type\":\"tuple[]\"}],\"indexed\":false,\"internalType\":\"struct OrderV2\",\"name\":\"order\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"orderHash\",\"type\":\"bytes32\"}],\"name\":\"AddOrder\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"aliceOutput\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bobOutput\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"aliceInput\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bobInput\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"struct ClearStateChange\",\"name\":\"clearStateChange\",\"type\":\"tuple\"}],\"name\":\"AfterClear\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"handleIO\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"contract IInterpreterV2\",\"name\":\"interpreter\",\"type\":\"address\"},{\"internalType\":\"contract IInterpreterStoreV1\",\"name\":\"store\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"expression\",\"type\":\"address\"}],\"internalType\":\"struct EvaluableV2\",\"name\":\"evaluable\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"vaultId\",\"type\":\"uint256\"}],\"internalType\":\"struct IO[]\",\"name\":\"validInputs\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"vaultId\",\"type\":\"uint256\"}],\"internalType\":\"struct IO[]\",\"name\":\"validOutputs\",\"type\":\"tuple[]\"}],\"indexed\":false,\"internalType\":\"struct OrderV2\",\"name\":\"alice\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"handleIO\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"contract IInterpreterV2\",\"name\":\"interpreter\",\"type\":\"address\"},{\"internalType\":\"contract IInterpreterStoreV1\",\"name\":\"store\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"expression\",\"type\":\"address\"}],\"internalType\":\"struct EvaluableV2\",\"name\":\"evaluable\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"vaultId\",\"type\":\"uint256\"}],\"internalType\":\"struct IO[]\",\"name\":\"validInputs\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"vaultId\",\"type\":\"uint256\"}],\"internalType\":\"struct IO[]\",\"name\":\"validOutputs\",\"type\":\"tuple[]\"}],\"indexed\":false,\"internalType\":\"struct OrderV2\",\"name\":\"bob\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"aliceInputIOIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"aliceOutputIOIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bobInputIOIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bobOutputIOIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"aliceBountyVaultId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bobBountyVaultId\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"struct ClearConfig\",\"name\":\"clearConfig\",\"type\":\"tuple\"}],\"name\":\"Clear\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[][]\",\"name\":\"context\",\"type\":\"uint256[][]\"}],\"name\":\"Context\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"vaultId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"orderHash\",\"type\":\"bytes32\"}],\"name\":\"OrderExceedsMaxRatio\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"orderHash\",\"type\":\"bytes32\"}],\"name\":\"OrderNotFound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"orderHash\",\"type\":\"bytes32\"}],\"name\":\"OrderZeroAmount\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"handleIO\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"contract IInterpreterV2\",\"name\":\"interpreter\",\"type\":\"address\"},{\"internalType\":\"contract IInterpreterStoreV1\",\"name\":\"store\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"expression\",\"type\":\"address\"}],\"internalType\":\"struct EvaluableV2\",\"name\":\"evaluable\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"vaultId\",\"type\":\"uint256\"}],\"internalType\":\"struct IO[]\",\"name\":\"validInputs\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"vaultId\",\"type\":\"uint256\"}],\"internalType\":\"struct IO[]\",\"name\":\"validOutputs\",\"type\":\"tuple[]\"}],\"indexed\":false,\"internalType\":\"struct OrderV2\",\"name\":\"order\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"orderHash\",\"type\":\"bytes32\"}],\"name\":\"RemoveOrder\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"handleIO\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"contract IInterpreterV2\",\"name\":\"interpreter\",\"type\":\"address\"},{\"internalType\":\"contract IInterpreterStoreV1\",\"name\":\"store\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"expression\",\"type\":\"address\"}],\"internalType\":\"struct EvaluableV2\",\"name\":\"evaluable\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"vaultId\",\"type\":\"uint256\"}],\"internalType\":\"struct IO[]\",\"name\":\"validInputs\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"vaultId\",\"type\":\"uint256\"}],\"internalType\":\"struct IO[]\",\"name\":\"validOutputs\",\"type\":\"tuple[]\"}],\"internalType\":\"struct OrderV2\",\"name\":\"order\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"inputIOIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"outputIOIndex\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"context\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct SignedContextV1[]\",\"name\":\"signedContext\",\"type\":\"tuple[]\"}],\"indexed\":false,\"internalType\":\"struct TakeOrderConfigV2\",\"name\":\"config\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"input\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"output\",\"type\":\"uint256\"}],\"name\":\"TakeOrder\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"vaultId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"targetAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"vaultId\",\"type\":\"uint256\"}],\"internalType\":\"struct IO[]\",\"name\":\"validInputs\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"vaultId\",\"type\":\"uint256\"}],\"internalType\":\"struct IO[]\",\"name\":\"validOutputs\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"contract IExpressionDeployerV3\",\"name\":\"deployer\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"bytecode\",\"type\":\"bytes\"},{\"internalType\":\"uint256[]\",\"name\":\"constants\",\"type\":\"uint256[]\"}],\"internalType\":\"struct EvaluableConfigV3\",\"name\":\"evaluableConfig\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"meta\",\"type\":\"bytes\"}],\"internalType\":\"struct OrderConfigV2\",\"name\":\"config\",\"type\":\"tuple\"}],\"name\":\"addOrder\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"stateChanged\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"handleIO\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"contract IInterpreterV2\",\"name\":\"interpreter\",\"type\":\"address\"},{\"internalType\":\"contract IInterpreterStoreV1\",\"name\":\"store\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"expression\",\"type\":\"address\"}],\"internalType\":\"struct EvaluableV2\",\"name\":\"evaluable\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"vaultId\",\"type\":\"uint256\"}],\"internalType\":\"struct IO[]\",\"name\":\"validInputs\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"vaultId\",\"type\":\"uint256\"}],\"internalType\":\"struct IO[]\",\"name\":\"validOutputs\",\"type\":\"tuple[]\"}],\"internalType\":\"struct OrderV2\",\"name\":\"alice\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"handleIO\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"contract IInterpreterV2\",\"name\":\"interpreter\",\"type\":\"address\"},{\"internalType\":\"contract IInterpreterStoreV1\",\"name\":\"store\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"expression\",\"type\":\"address\"}],\"internalType\":\"struct EvaluableV2\",\"name\":\"evaluable\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"vaultId\",\"type\":\"uint256\"}],\"internalType\":\"struct IO[]\",\"name\":\"validInputs\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"vaultId\",\"type\":\"uint256\"}],\"internalType\":\"struct IO[]\",\"name\":\"validOutputs\",\"type\":\"tuple[]\"}],\"internalType\":\"struct OrderV2\",\"name\":\"bob\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"aliceInputIOIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"aliceOutputIOIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bobInputIOIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bobOutputIOIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"aliceBountyVaultId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bobBountyVaultId\",\"type\":\"uint256\"}],\"internalType\":\"struct ClearConfig\",\"name\":\"clearConfig\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"context\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct SignedContextV1[]\",\"name\":\"aliceSignedContext\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"context\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct SignedContextV1[]\",\"name\":\"bobSignedContext\",\"type\":\"tuple[]\"}],\"name\":\"clear\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"vaultId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"flashFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC3156FlashBorrower\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"flashLoan\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"maxFlashLoan\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"orderHash\",\"type\":\"bytes32\"}],\"name\":\"orderExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"handleIO\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"contract IInterpreterV2\",\"name\":\"interpreter\",\"type\":\"address\"},{\"internalType\":\"contract IInterpreterStoreV1\",\"name\":\"store\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"expression\",\"type\":\"address\"}],\"internalType\":\"struct EvaluableV2\",\"name\":\"evaluable\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"vaultId\",\"type\":\"uint256\"}],\"internalType\":\"struct IO[]\",\"name\":\"validInputs\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"vaultId\",\"type\":\"uint256\"}],\"internalType\":\"struct IO[]\",\"name\":\"validOutputs\",\"type\":\"tuple[]\"}],\"internalType\":\"struct OrderV2\",\"name\":\"order\",\"type\":\"tuple\"}],\"name\":\"removeOrder\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"stateChanged\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"minimumInput\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maximumInput\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maximumIORatio\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"handleIO\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"contract IInterpreterV2\",\"name\":\"interpreter\",\"type\":\"address\"},{\"internalType\":\"contract IInterpreterStoreV1\",\"name\":\"store\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"expression\",\"type\":\"address\"}],\"internalType\":\"struct EvaluableV2\",\"name\":\"evaluable\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"vaultId\",\"type\":\"uint256\"}],\"internalType\":\"struct IO[]\",\"name\":\"validInputs\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"vaultId\",\"type\":\"uint256\"}],\"internalType\":\"struct IO[]\",\"name\":\"validOutputs\",\"type\":\"tuple[]\"}],\"internalType\":\"struct OrderV2\",\"name\":\"order\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"inputIOIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"outputIOIndex\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"context\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct SignedContextV1[]\",\"name\":\"signedContext\",\"type\":\"tuple[]\"}],\"internalType\":\"struct TakeOrderConfigV2[]\",\"name\":\"orders\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct TakeOrdersConfigV2\",\"name\":\"config\",\"type\":\"tuple\"}],\"name\":\"takeOrders\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"totalInput\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalOutput\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"vaultBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"vaultId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"targetAmount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ZeroDepositAmount(address,address,uint256)\":[{\"params\":{\"sender\":\"`msg.sender` depositing tokens.\",\"token\":\"The token being deposited.\",\"vaultId\":\"The vault ID the tokens are being deposited under.\"}}],\"ZeroWithdrawTargetAmount(address,address,uint256)\":[{\"params\":{\"sender\":\"`msg.sender` withdrawing tokens.\",\"token\":\"The token being withdrawn.\",\"vaultId\":\"The vault ID the tokens are being withdrawn from.\"}}]},\"events\":{\"AddOrder(address,address,(address,bool,(address,address,address),(address,uint8,uint256)[],(address,uint8,uint256)[]),bytes32)\":{\"params\":{\"expressionDeployer\":\"The expression deployer that ran the integrity check for this order. This is NOT included in the `Order` itself but is important for offchain processes to ignore untrusted deployers before interacting with them.\",\"order\":\"The newly added order. MUST be handed back as-is when clearing orders and contains derived information in addition to the order config that was provided by the order owner.\",\"orderHash\":\"The hash of the order as it is recorded onchain. Only the hash is stored in Orderbook storage to avoid paying gas to store the entire order.\",\"sender\":\"`msg.sender` adding the order and is owner of the order.\"}},\"AfterClear(address,(uint256,uint256,uint256,uint256))\":{\"params\":{\"clearStateChange\":\"The final vault state changes from the clearance.\",\"sender\":\"`msg.sender` clearing the order.\"}},\"Clear(address,(address,bool,(address,address,address),(address,uint8,uint256)[],(address,uint8,uint256)[]),(address,bool,(address,address,address),(address,uint8,uint256)[],(address,uint8,uint256)[]),(uint256,uint256,uint256,uint256,uint256,uint256))\":{\"params\":{\"alice\":\"One of the orders.\",\"bob\":\"The other order.\",\"clearConfig\":\"Additional config required to process the clearance.\",\"sender\":\"`msg.sender` clearing both orders.\"}},\"Context(address,uint256[][])\":{\"params\":{\"context\":\"The context that was built.\",\"sender\":\"`msg.sender` building the context.\"}},\"Deposit(address,address,uint256,uint256)\":{\"params\":{\"amount\":\"The amount of tokens deposited.\",\"sender\":\"`msg.sender` depositing tokens. Delegated deposits are NOT supported.\",\"token\":\"The token being deposited.\",\"vaultId\":\"The vault ID the tokens are being deposited under.\"}},\"OrderExceedsMaxRatio(address,address,bytes32)\":{\"params\":{\"orderHash\":\"Hash of the order that had an excess ratio.\",\"owner\":\"Owner of the order that had an excess ratio.\",\"sender\":\"`msg.sender` clearing the order that had an excess ratio.\"}},\"OrderNotFound(address,address,bytes32)\":{\"params\":{\"orderHash\":\"Hash of the order that was not found.\",\"owner\":\"Owner of the order that was not found.\",\"sender\":\"`msg.sender` clearing the order that wasn't found.\"}},\"OrderZeroAmount(address,address,bytes32)\":{\"params\":{\"orderHash\":\"Hash of the order that evaluated to a 0 amount.\",\"owner\":\"Owner of the order that evaluated to a 0 amount.\",\"sender\":\"`msg.sender` clearing the order that had a 0 amount.\"}},\"RemoveOrder(address,(address,bool,(address,address,address),(address,uint8,uint256)[],(address,uint8,uint256)[]),bytes32)\":{\"params\":{\"order\":\"The removed order.\",\"orderHash\":\"The hash of the removed order.\",\"sender\":\"`msg.sender` removing the order and is owner of the order.\"}},\"TakeOrder(address,((address,bool,(address,address,address),(address,uint8,uint256)[],(address,uint8,uint256)[]),uint256,uint256,(address,uint256[],bytes)[]),uint256,uint256)\":{\"params\":{\"config\":\"All config defining the orders to attempt to take.\",\"input\":\"The input amount from the perspective of sender.\",\"output\":\"The output amount from the perspective of sender.\",\"sender\":\"`msg.sender` taking the orders.\"}},\"Withdraw(address,address,uint256,uint256,uint256)\":{\"params\":{\"amount\":\"The amount of tokens withdrawn, can be less than the target amount if the vault does not have the funds available to cover the target amount. For example an active order might move tokens before the withdraw completes.\",\"sender\":\"`msg.sender` withdrawing tokens. Delegated withdrawals are NOT supported.\",\"targetAmount\":\"The amount of tokens requested to withdraw.\",\"token\":\"The token being withdrawn.\",\"vaultId\":\"The vault ID the tokens are being withdrawn from.\"}}},\"kind\":\"dev\",\"methods\":{\"addOrder(((address,uint8,uint256)[],(address,uint8,uint256)[],(address,bytes,uint256[]),bytes))\":{\"params\":{\"config\":\"All config required to build an `Order`.\"},\"returns\":{\"stateChanged\":\"True if the order was added, false if it already existed.\"}},\"clear((address,bool,(address,address,address),(address,uint8,uint256)[],(address,uint8,uint256)[]),(address,bool,(address,address,address),(address,uint8,uint256)[],(address,uint8,uint256)[]),(uint256,uint256,uint256,uint256,uint256,uint256),(address,uint256[],bytes)[],(address,uint256[],bytes)[])\":{\"params\":{\"alice\":\"Some order to clear.\",\"aliceSignedContext\":\"Optional signed context that is relevant to A.\",\"bob\":\"Another order to clear.\",\"bobSignedContext\":\"Optional signed context that is relevant to B.\",\"clearConfig\":\"Additional configuration for the clearance such as how to handle the bounty payment for the `msg.sender`.\"}},\"deposit(address,uint256,uint256)\":{\"params\":{\"amount\":\"The amount of tokens to deposit.\",\"token\":\"The token to deposit.\",\"vaultId\":\"The vault ID to deposit under.\"}},\"flashFee(address,uint256)\":{\"details\":\"The fee to be charged for a given loan.\",\"params\":{\"amount\":\"The amount of tokens lent.\",\"token\":\"The loan currency.\"},\"returns\":{\"_0\":\"The amount of `token` to be charged for the loan, on top of the returned principal.\"}},\"flashLoan(address,address,uint256,bytes)\":{\"details\":\"Initiate a flash loan.\",\"params\":{\"amount\":\"The amount of tokens lent.\",\"data\":\"Arbitrary data structure, intended to contain user-defined parameters.\",\"receiver\":\"The receiver of the tokens in the loan, and the receiver of the callback.\",\"token\":\"The loan currency.\"}},\"maxFlashLoan(address)\":{\"details\":\"The amount of currency available to be lent.\",\"params\":{\"token\":\"The loan currency.\"},\"returns\":{\"_0\":\"The amount of `token` that can be borrowed.\"}},\"orderExists(bytes32)\":{\"params\":{\"orderHash\":\"The hash of the order to check.\"},\"returns\":{\"exists\":\"True if the order exists, false otherwise.\"}},\"removeOrder((address,bool,(address,address,address),(address,uint8,uint256)[],(address,uint8,uint256)[]))\":{\"params\":{\"order\":\"The `Order` data exactly as it was added.\"},\"returns\":{\"stateChanged\":\"True if the order was removed, false if it did not exist.\"}},\"takeOrders((uint256,uint256,uint256,((address,bool,(address,address,address),(address,uint8,uint256)[],(address,uint8,uint256)[]),uint256,uint256,(address,uint256[],bytes)[])[],bytes))\":{\"params\":{\"config\":\"The constraints and list of orders to take, orders are processed sequentially in order as provided, there is NO ATTEMPT onchain to predict/filter/sort these orders other than evaluating them as provided. Inputs and outputs are from the perspective of `msg.sender` except for values specified by the orders themselves which are the from the perspective of that order.\"},\"returns\":{\"totalInput\":\"Total tokens sent to `msg.sender`, taken from order vaults processed.\",\"totalOutput\":\"Total tokens taken from `msg.sender` and distributed between vaults.\"}},\"vaultBalance(address,address,uint256)\":{\"params\":{\"id\":\"The vault ID to read.\",\"owner\":\"The owner of the vault.\",\"token\":\"The token the vault is for.\"},\"returns\":{\"balance\":\"The current balance of the vault.\"}},\"withdraw(address,uint256,uint256)\":{\"params\":{\"targetAmount\":\"The amount of tokens to attempt to withdraw. MAY result in fewer tokens withdrawn if the vault balance is lower than the target amount. MAY NOT be zero, the order book MUST revert with `ZeroWithdrawTargetAmount` if the amount is zero.\",\"token\":\"The token to withdraw.\",\"vaultId\":\"The vault ID to withdraw from.\"}}},\"title\":\"IOrderBookV3\",\"version\":1},\"userdoc\":{\"errors\":{\"OrderNoHandleIO()\":[{\"notice\":\"MUST be thrown by `addOrder` if the order has no associated handle IO.\"}],\"OrderNoInputs()\":[{\"notice\":\"MUST be thrown by `addOrder` if the order has no inputs.\"}],\"OrderNoOutputs()\":[{\"notice\":\"MUST be thrown by `addOrder` if the order has no outputs.\"}],\"OrderNoSources()\":[{\"notice\":\"MUST be thrown by `addOrder` if the order has no associated calculation.\"}],\"ZeroDepositAmount(address,address,uint256)\":[{\"notice\":\"MUST be thrown by `deposit` if the amount is zero.\"}],\"ZeroWithdrawTargetAmount(address,address,uint256)\":[{\"notice\":\"MUST be thrown by `withdraw` if the amount _requested_ to withdraw is zero. The withdrawal MAY still not move any tokens if the vault balance is zero, or the withdrawal is used to repay a flash loan.\"}]},\"events\":{\"AddOrder(address,address,(address,bool,(address,address,address),(address,uint8,uint256)[],(address,uint8,uint256)[]),bytes32)\":{\"notice\":\"An order has been added to the orderbook. The order is permanently and always active according to its expression until/unless it is removed.\"},\"AfterClear(address,(uint256,uint256,uint256,uint256))\":{\"notice\":\"Emitted after two orders clear. Includes all final state changes in the vault balances, including the clearer's vaults.\"},\"Clear(address,(address,bool,(address,address,address),(address,uint8,uint256)[],(address,uint8,uint256)[]),(address,bool,(address,address,address),(address,uint8,uint256)[],(address,uint8,uint256)[]),(uint256,uint256,uint256,uint256,uint256,uint256))\":{\"notice\":\"Emitted before two orders clear. Covers both orders and includes all the state before anything is calculated.\"},\"Context(address,uint256[][])\":{\"notice\":\"Calling contracts SHOULD emit `Context` before calling `eval` if they are able. Notably `eval` MAY be called within a static call which means that events cannot be emitted, in which case this does not apply. It MAY NOT be useful to emit this multiple times for several eval calls if they all share a common context, in which case a single emit is sufficient.\"},\"Deposit(address,address,uint256,uint256)\":{\"notice\":\"Some tokens have been deposited to a vault.\"},\"OrderExceedsMaxRatio(address,address,bytes32)\":{\"notice\":\"Emitted when an order evaluates to a ratio exceeding the counterparty's maximum limit. An error rather than an error so that we allow attempting many orders in a loop and NOT rollback on a \\\"best effort\\\" basis to clear.\"},\"OrderNotFound(address,address,bytes32)\":{\"notice\":\"Emitted when attempting to match an order that either never existed or was removed. An event rather than an error so that we allow attempting many orders in a loop and NOT rollback on \\\"best effort\\\" basis to clear.\"},\"OrderZeroAmount(address,address,bytes32)\":{\"notice\":\"Emitted when an order evaluates to a zero amount. An event rather than an error so that we allow attempting many orders in a loop and NOT rollback on a \\\"best effort\\\" basis to clear.\"},\"RemoveOrder(address,(address,bool,(address,address,address),(address,uint8,uint256)[],(address,uint8,uint256)[]),bytes32)\":{\"notice\":\"An order has been removed from the orderbook. This effectively deactivates it. Orders can be added again after removal.\"},\"TakeOrder(address,((address,bool,(address,address,address),(address,uint8,uint256)[],(address,uint8,uint256)[]),uint256,uint256,(address,uint256[],bytes)[]),uint256,uint256)\":{\"notice\":\"Some order has been taken by `msg.sender`. This is the same as them placing inverse orders then immediately clearing them all, but costs less gas and is more convenient and reliable. Analogous to a market buy against the specified orders. Each order that is matched within a the `takeOrders` loop emits its own individual event.\"},\"Withdraw(address,address,uint256,uint256,uint256)\":{\"notice\":\"Some tokens have been withdrawn from a vault.\"}},\"kind\":\"user\",\"methods\":{\"addOrder(((address,uint8,uint256)[],(address,uint8,uint256)[],(address,bytes,uint256[]),bytes))\":{\"notice\":\"Given an order config, deploys the expression and builds the full `Order` for the config, then records it as an active order. Delegated adding an order is NOT supported. The `msg.sender` that adds an order is ALWAYS the owner and all resulting vault movements are their own. MUST revert with `OrderNoSources` if the order has no associated calculation and `OrderNoHandleIO` if the order has no handle IO entrypoint. The calculation MUST return at least two values from evaluation, the maximum amount and the IO ratio. The handle IO entrypoint SHOULD return zero values from evaluation. Either MAY revert during evaluation on the interpreter, which MUST prevent the order from clearing. MUST revert with `OrderNoInputs` if the order has no inputs. MUST revert with `OrderNoOutputs` if the order has no outputs. If the order already exists, the order book MUST NOT change state, which includes not emitting an event. Instead it MUST return false. If the order book modifies state it MUST emit an `AddOrder` event and return true.\"},\"clear((address,bool,(address,address,address),(address,uint8,uint256)[],(address,uint8,uint256)[]),(address,bool,(address,address,address),(address,uint8,uint256)[],(address,uint8,uint256)[]),(uint256,uint256,uint256,uint256,uint256,uint256),(address,uint256[],bytes)[],(address,uint256[],bytes)[])\":{\"notice\":\"Allows `msg.sender` to match two live orders placed earlier by non-interactive parties and claim a bounty in the process. The clearer is free to select any two live orders on the order book for matching and as long as they have compatible tokens, ratios and amounts, the orders will clear. Clearing the orders DOES NOT remove them from the orderbook, they remain live until explicitly removed by their owner. Even if the input vault balances are completely emptied, the orders remain live until removed. This allows order owners to deploy a strategy over a long period of time and periodically top up the input vaults. Clearing two orders from the same owner is disallowed. Any mismatch in the ratios between the two orders will cause either more inputs than there are available outputs (transaction will revert) or less inputs than there are available outputs. In the latter case the excess outputs are given to the `msg.sender` of clear, to the vaults they specify in the clear config. This not only incentivises \\\"automatic\\\" clear calls for both alice and bob, but incentivises _prioritising greater ratio differences_ with a larger bounty. The second point is important because it implicitly prioritises orders that are further from the current market price, thus putting constant increasing pressure on the entire system the further it drifts from the norm, no matter how esoteric the individual order expressions and sizings might be. All else equal there are several factors that would impact how reliably some order clears relative to the wider market, such as: - Bounties are effectively percentages of cleared amounts so larger orders have larger bounties and cover gas costs more easily - High gas on the network means that orders are harder to clear profitably so the negative spread of the ratios will need to be larger - Complex and stateful expressions cost more gas to evalulate so the negative spread will need to be larger - Erratic behavior of the order owner could reduce the willingness of third parties to interact if it could result in wasted gas due to orders suddently being removed before clearance etc. - Dynamic and highly volatile words used in the expression could be ignored or low priority by clearers who want to be sure that they can accurately predict the ratios that they include in their clearance - Geopolitical issues such as sanctions and regulatory restrictions could cause issues for certain owners and clearers\"},\"deposit(address,uint256,uint256)\":{\"notice\":\"Vault IDs are namespaced by the token address so there is no risk of collision between tokens. For example, vault ID 0 for token A is completely different to vault ID 0 for token B. `0` amount deposits are unsupported as underlying token contracts handle `0` value transfers differently and this would be a source of confusion. The order book MUST revert with `ZeroDepositAmount` if the amount is zero.\"},\"orderExists(bytes32)\":{\"notice\":\"Returns true if the order exists, false otherwise.\"},\"removeOrder((address,bool,(address,address,address),(address,uint8,uint256)[],(address,uint8,uint256)[]))\":{\"notice\":\"Order owner can remove their own orders. Delegated order removal is NOT supported and will revert. Removing an order multiple times or removing an order that never existed are valid, the event will be emitted and the transaction will complete with that order hash definitely, redundantly not live.\"},\"takeOrders((uint256,uint256,uint256,((address,bool,(address,address,address),(address,uint8,uint256)[],(address,uint8,uint256)[]),uint256,uint256,(address,uint256[],bytes)[])[],bytes))\":{\"notice\":\"Allows `msg.sender` to attempt to fill a list of orders in sequence without needing to place their own order and clear them. This works like a market buy but against a specific set of orders. Every order will looped over and calculated individually then filled maximally until the request input is reached for the `msg.sender`. The `msg.sender` is responsible for selecting the best orders at the time according to their criteria and MAY specify a maximum IO ratio to guard against an order spiking the ratio beyond what the `msg.sender` expected and is comfortable with. As orders may be removed and calculate their ratios dynamically, all issues fulfilling an order other than misconfiguration by the `msg.sender` are no-ops and DO NOT revert the transaction. This allows the `msg.sender` to optimistically provide a list of orders that they aren't sure will completely fill at a good price, and fallback to more reliable orders further down their list. Misconfiguration such as token mismatches are errors that revert as this is known and static at all times to the `msg.sender` so MUST be provided correctly. `msg.sender` MAY specify a minimum input that MUST be reached across all orders in the list, otherwise the transaction will revert, this MAY be set to zero. Exactly like withdraw, if there is an active flash loan for `msg.sender` they will have their outstanding loan reduced by the final input amount preferentially before sending any tokens. Notably this allows arb bots implemented as flash loan borrowers to connect orders against external liquidity directly by paying back the loan with a `takeOrders` call and outputting the result of the external trade. Rounding errors always favour the order never the `msg.sender`.\"},\"vaultBalance(address,address,uint256)\":{\"notice\":\"Get the current balance of a vault for a given owner, token and vault ID.\"},\"withdraw(address,uint256,uint256)\":{\"notice\":\"Allows the sender to withdraw any tokens from their own vaults. If the withrawer has an active flash loan debt denominated in the same token being withdrawn then Orderbook will merely reduce the debt and NOT send the amount of tokens repaid to the flashloan debt. MUST revert if the amount _requested_ to withdraw is zero. The withdrawal MAY still not move any tokens (without revert) if the vault balance is zero, or the withdrawal is used to repay a flash loan, or due to any other internal accounting.\"}},\"notice\":\"An orderbook that deploys _strategies_ represented as interpreter expressions rather than individual orders. The order book contract itself behaves similarly to an `ERC4626` vault but with much more fine grained control over how tokens are allocated and moved internally by their owners, and without any concept of \\\"shares\\\". Token owners MAY deposit and withdraw their tokens under arbitrary vault IDs on a per-token basis, then define orders that specify how tokens move between vaults according to an expression. The expression returns a maximum amount and a token input/output ratio from the perpective of the order. When two expressions intersect, as in their ratios are the inverse of each other, then tokens can move between vaults. For example, consider order A with input TKNA and output TKNB with a constant ratio of 100:1. This order in isolation has no ability to move tokens. If an order B appears with input TKNB and output TKNA and a ratio of 1:100 then this is a perfect match with order A. In this case 100 TKNA will move from order B to order A and 1 TKNB will move from order A to order B. IO ratios are always specified as input:output and are 18 decimal fixed point values. The maximum amount that can be moved in the current clearance is also set by the order expression as an 18 decimal fixed point value. Typically orders will not clear when their match is exactly 1:1 as the clearer needs to pay gas to process the match. Each order will get exactly the ratio it calculates when it does clear so if there is _overlap_ in the ratios then the clearer keeps the difference. In our above example, consider order B asking a ratio of 1:110 instead of 1:100. In this case 100 TKNA will move from order B to order A and 10 TKNA will move to the clearer's vault and 1 TKNB will move from order A to order B. In the case of fixed prices this is not very interesting as order B could more simply take order A directly for cheaper rather than involving a third party. Indeed, Orderbook supports a direct \\\"take orders\\\" method that works similar to a \\\"market buy\\\". In the case of dynamic expression based ratios, it allows both order A and order B to clear non-interactively according to their strategy, trading off active management, dealing with front-running, MEV, etc. for zero-gas and exact-ratio clearance. The general invariant for clearing and take orders is: ``` ratioA = InputA / OutputA ratioB = InputB / OutputB ratioA * ratioB = ( InputA * InputB ) / ( OutputA * OutputB ) OutputA >= InputB OutputB >= InputA \\u2234 ratioA * ratioB <= 1 ``` Orderbook is `IERC3156FlashLender` compliant with a 0 fee flash loan implementation to allow external liquidity from other onchain DEXes to match against orderbook expressions. All deposited tokens across all vaults are available for flashloan, the flashloan MAY BE REPAID BY CALLING TAKE ORDER such that Orderbook's liability to its vaults is decreased by an incoming trade from the flashloan borrower. See `ZeroExOrderBookFlashBorrower` for an example of how this works in practise. Orderbook supports many to many input/output token relationship, for example some order can specify an array of stables it would be willing to accept in return for some ETH. This removes the need for a combinatorial explosion of order strategies between like assets but introduces the issue of token decimal handling. End users understand that \\\"one\\\" USDT is roughly equal to \\\"one\\\" DAI, but onchain this is incorrect by _12 orders of magnitude_. This is because \\\"one\\\" DAI is `1e18` tokens and \\\"one\\\" USDT is `1e6` tokens. The orderbook is allowing orders to deploy expressions that define _economic equivalence_ but this doesn't map 1:1 with numeric equivalence in a many to many setup behind token decimal convensions. The solution is to require that end users who place orders provide the decimals of each token they include in their valid IO lists, and to calculate all amounts and ratios in their expressions _as though they were 18 decimal fixed point values_. Orderbook will then automatically rescale the expression values before applying the final vault movements. If an order provides the \\\"wrong\\\" decimal values for some token then it will simply calculate its own ratios and amounts incorrectly which will either lead to no matching orders or a very bad trade for the order owner. There is no way that misrepresenting decimals can attack some other order by a counterparty. Orderbook DOES NOT read decimals from tokens onchain because A. this would be gas for an external call to a cold token contract and B. the ERC20 standard specifically states NOT to read decimals from the interface onchain. Token amounts and ratios returned by calculate order MUST be 18 decimal fixed point values. Token amounts input to handle IO MUST be the exact absolute values that move between the vaults, i.e. NOT rescaled to 18 decimals. The author of the handle IO expression MUST use the token decimals and amounts to rescale themselves if they want that logic, notably the expression author will need to specify the desired rounding behaviour in the rescaling process. When two orders clear there are NO TOKEN MOVEMENTS, only internal vault balances are updated from the input and output vaults. Typically this results in less gas per clear than calling external token transfers and also avoids issues with reentrancy, allowances, external balances etc. This also means that REBASING TOKENS AND TOKENS WITH DYNAMIC BALANCE ARE NOT SUPPORTED. Orderbook ONLY WORKS IF TOKEN BALANCES ARE 1:1 WITH ADDITION/SUBTRACTION PER VAULT MOVEMENT. Dust due to rounding errors always favours the order. Output max is rounded down and IO ratios are rounded up. Input and output amounts are always converted to absolute values before applying to vault balances such that orderbook always retains fully collateralised inventory of underlying token balances to support withdrawals, with the caveat that dynamic token balanes are not supported. When an order clears it is NOT removed. Orders remain active until the owner deactivates them. This is gas efficient as order owners MAY deposit more tokens in a vault with an order against it many times and the order strategy will continue to be clearable according to its expression. As vault IDs are `uint256` values there are effectively infinite possible vaults for any token so there is no limit to how many active orders any address can have at one time. This also allows orders to be daisy chained arbitrarily where output vaults for some order are the input vaults for some other order. Expression storage is namespaced by order owner, so gets and sets are unique to each onchain address. Order owners MUST TAKE CARE not to override their storage sets globally across all their orders, which they can do most simply by hashing the order hash into their get/set keys inside the expression. This gives maximum flexibility for shared state across orders without allowing order owners to attack and overwrite values stored by orders placed by their counterparty. Note that each order specifies its own interpreter and deployer so the owner is responsible for not corrupting their own calculations with bad interpreters. This also means the Orderbook MUST assume the interpreter, and notably the interpreter's store, is malicious and guard against reentrancy etc. As Orderbook supports any expression that can run on any `IInterpreterV1` and counterparties are available to the order, order strategies are free to implement KYC/membership, tracking, distributions, stock, buybacks, etc. etc. Main differences between `IOrderBookV2` and `IOderBookV3`: - Most structs are now primitives to save gas. - Order hash is `bytes32`. - `deposit` and `withdraw` MUST revert if the amount is zero. - adding an order MUST revert if there is no calculation entrypoint. - adding an order MUST revert if there is no handle IO entrypoint. - adding an order MUST revert if there are no inputs. - adding an order MUST revert if there are no outputs. - adding and removing orders MUST return a boolean indicating if the state changed. - new `orderExists` method.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interface/unstable/IOrderBookV3.sol\":\"IOrderBookV3\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":1000000},\"remappings\":[\":@prb/test/=lib/rain.interpreter/lib/prb-math/lib/prb-test/src/\",\":axelar-gmp-sdk-solidity/=lib/sushixswap-v2/lib/axelar-gmp-sdk-solidity/\",\":bitwise/=lib/rain.interpreter/src/lib/bitwise/\",\":bytecode/=lib/rain.interpreter/src/lib/bytecode/\",\":caller/=lib/rain.interpreter/src/lib/caller/\",\":compile/=lib/rain.interpreter/src/lib/compile/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":eval/=lib/rain.interpreter/src/lib/eval/\",\":extern/=lib/rain.interpreter/src/lib/extern/\",\":forge-gas-snapshot/=lib/sushixswap-v2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":integrity/=lib/rain.interpreter/src/lib/integrity/\",\":ns/=lib/rain.interpreter/src/lib/ns/\",\":op/=lib/rain.interpreter/src/lib/op/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":parse/=lib/rain.interpreter/src/lib/parse/\",\":prb-math/=lib/rain.interpreter/lib/prb-math/src/\",\":prb-test/=lib/rain.interpreter/lib/prb-math/lib/prb-test/src/\",\":rain.chainlink/=lib/rain.interpreter/lib/rain.chainlink/src/\",\":rain.datacontract/=lib/rain.interpreter/lib/rain.datacontract/src/\",\":rain.erc1820/=lib/rain.erc1820/src/\",\":rain.extrospection/=lib/rain.factory/lib/rain.extrospection/\",\":rain.factory/=lib/rain.factory/\",\":rain.interpreter/=lib/rain.interpreter/\",\":rain.lib.hash/=lib/rain.lib.memkv/lib/rain.lib.hash/src/\",\":rain.lib.memkv/=lib/rain.lib.memkv/src/\",\":rain.lib.typecast/=lib/rain.interpreter/lib/rain.lib.typecast/src/\",\":rain.math.fixedpoint/=lib/rain.math.fixedpoint/src/\",\":rain.math.saturating/=lib/rain.math.fixedpoint/lib/rain.math.saturating/src/\",\":rain.metadata/=lib/rain.metadata/src/\",\":rain.solmem/=lib/rain.solmem/src/\",\":sol.lib.binmaskflag/=lib/rain.interpreter/lib/sol.lib.binmaskflag/src/\",\":state/=lib/rain.interpreter/src/lib/state/\",\":sushixswap-v2/=lib/sushixswap-v2/\",\":uniswap/=lib/rain.interpreter/src/lib/uniswap/\",\":v2-core/=lib/rain.interpreter/lib/v2-core/contracts/\",\":v2-periphery/=lib/rain.interpreter/lib/v2-periphery/contracts/\"]},\"sources\":{\"lib/rain.interpreter/src/interface/IInterpreterCallerV2.sol\":{\"keccak256\":\"0xd6f76317b41d50fb6b3fbfcffa5fa8b4a3bb547a17bf52244f67f5c364fcd6bc\",\"license\":\"CAL\",\"urls\":[\"bzz-raw://e7a35981e397564e85c53fab7b46bf8118328cfdb729264f946f7826c205f813\",\"dweb:/ipfs/QmfXnGW5RTDgqoMkp3k4E3eWBBS7hXWzmhw56XcfvB766E\"]},\"lib/rain.interpreter/src/interface/IInterpreterStoreV1.sol\":{\"keccak256\":\"0x8fe347844f029b84087daae66742fb10aa9e44f94ac90af696318188aa922c19\",\"license\":\"CAL\",\"urls\":[\"bzz-raw://5eea5d2116f643db3ede89fd2dc3a5d293e35aec1d62a9daf6531f88a9656fb3\",\"dweb:/ipfs/Qmdys5MsEjgpXokb5FhMg96SYB6Bmf3frtVRvX74WrbKTc\"]},\"lib/rain.interpreter/src/interface/deprecated/IExpressionDeployerV1.sol\":{\"keccak256\":\"0x5e903fdb445cc16e63bb86d53eeb49172e2472cd7344a762c6d85684aec8251d\",\"license\":\"CAL\",\"urls\":[\"bzz-raw://5dab81bd2f092f392afbb295525c3602246ab5620de7630e84dab37b955f7e4d\",\"dweb:/ipfs/QmaGiCBSf2KjwjpVtJwG4k6iGqPKYs8dq6gkUYo9EFWkTg\"]},\"lib/rain.interpreter/src/interface/deprecated/IExpressionDeployerV2.sol\":{\"keccak256\":\"0xc98ea86cd5d633d01b4136258bc0026b3d4bade652f831b482867e97df0e5365\",\"license\":\"CAL\",\"urls\":[\"bzz-raw://d412df06ddccb1be19f6e962872297395546c591ccd42ccad91559aa0e5ee214\",\"dweb:/ipfs/QmebpvwxNtv9XNoKi9y8Ldqhzy3GWY5kwoSNDQL2vJHrbg\"]},\"lib/rain.interpreter/src/interface/deprecated/IInterpreterCallerV1.sol\":{\"keccak256\":\"0xdfccb8ca0e4673ac476d1ccfcd1ffa69300f910c41352cc51c3408a58bf095b2\",\"license\":\"CAL\",\"urls\":[\"bzz-raw://9a44b64873ed13c9c7d964e1d3b66dc2e80bb457563def325551bf796db8791c\",\"dweb:/ipfs/QmWTfH9qtwki5DFRAri1ouV7NVZ1mQzraz9eRumNEbcSNU\"]},\"lib/rain.interpreter/src/interface/deprecated/IInterpreterV1.sol\":{\"keccak256\":\"0xb58d3b75312da70f4fb7896dc07d8a3d77de0638d169db4acf6c246ddab0f518\",\"license\":\"CAL\",\"urls\":[\"bzz-raw://970029663ca4321640ca0d577213e938046a3fe2995b580f9f7c8f0bfa34a3f3\",\"dweb:/ipfs/QmeZgH1RKqLgDh56FWQATBy8BCt6CyGiCuamrKY22QyCRz\"]},\"lib/rain.interpreter/src/interface/unstable/IExpressionDeployerV3.sol\":{\"keccak256\":\"0x408f6c6fa3766cf7d24ffe1c98eb57b77af5bfbe946f266fd7a3b800de4ddb79\",\"license\":\"CAL\",\"urls\":[\"bzz-raw://186b12c32030d2b7e4e81f1a11ac7c7a63b0f14b7dc1b6df50cbd2be7459bb69\",\"dweb:/ipfs/QmXRV3DGCoQtVxufMtiuXLvN3GF6YNTLyPLVVeoLL53sMg\"]},\"lib/rain.interpreter/src/interface/unstable/IInterpreterV2.sol\":{\"keccak256\":\"0xcf050192ba12f7eb129e0262cee4920cbd65bb331e7487cfc21151882464be50\",\"license\":\"CAL\",\"urls\":[\"bzz-raw://10ff84f0acf532c5e11e69b7ab41c739ce4ad0f9193d347b5cc4a34f158774a8\",\"dweb:/ipfs/QmRvfB8jCdCwDdLrLHQh8yLLLv2eowpwjfwXgy2u629xew\"]},\"lib/rain.interpreter/src/lib/caller/LibEvaluable.sol\":{\"keccak256\":\"0xc3e649c4d698822ae81c4ec0814d2dd506e601795914a7af0883c5c40678ab21\",\"license\":\"CAL\",\"urls\":[\"bzz-raw://901d9258689585e338aeb648d77ca083766c423dabc78db46285b3fb69fb12d1\",\"dweb:/ipfs/QmPVw7yuoDuqWorxpM7oWPhjSGRXhcEeu1dXQrjBDvpfrn\"]},\"src/interface/deprecated/IOrderBookV2.sol\":{\"keccak256\":\"0xc4f99b2e74b48063eb0383184446e5ad65aa158e12519949e28bed62b49d88fb\",\"license\":\"CAL\",\"urls\":[\"bzz-raw://1a2cdc0410026ffc686d4100505564a9dff28b2364cadfeb75b3eea4dde841dc\",\"dweb:/ipfs/QmXC1QtN2Go2RLH8bK9GrtsxfMLY5eKaksW53utMTaNuR8\"]},\"src/interface/ierc3156/IERC3156FlashBorrower.sol\":{\"keccak256\":\"0x493227b1bc21c04ba2506d8d63f8fab8eb828683cf41336db1076edee2e010a7\",\"license\":\"CC0\",\"urls\":[\"bzz-raw://99b27f1f11576c22462c93ab613835522dfc89a7e28e584df034b339187bc15c\",\"dweb:/ipfs/QmQZ1H8PotScE5rSbruZn97MC6pgDNTuCQcjtg8ZWU4SPB\"]},\"src/interface/ierc3156/IERC3156FlashLender.sol\":{\"keccak256\":\"0x1c14bc32c7483a68f5cb3ff65f64a8a32b279472525340033ce8e0b462fd1e72\",\"license\":\"CC0\",\"urls\":[\"bzz-raw://e25cbc0c4512d737fd9fb32f30af0f9bcccd10f28870c927057f6bcaac213dd4\",\"dweb:/ipfs/Qmey7YDkCTMXgoRDVHUbHRH6f4MJz6mBdfucp7v7bVy1ie\"]},\"src/interface/unstable/IOrderBookV3.sol\":{\"keccak256\":\"0x1aba9fbf5e9c2f410a2c24d56361718ac4ec6d62431ee07107bb83660740b6a1\",\"license\":\"CAL\",\"urls\":[\"bzz-raw://12e803376fce4b36bcb7c228faa2aa5360b85688539485212f129b3467e23852\",\"dweb:/ipfs/QmV7oBCy2idxp8pY9yhGGcqbdpfVcqgpRvpJ1wYDNg7rZT\"]}},\"version\":1}", + "metadata": { + "compiler": { + "version": "0.8.19+commit.7dd6d404" + }, + "language": "Solidity", + "output": { + "abi": [ + { + "inputs": [], + "type": "error", + "name": "OrderNoHandleIO" + }, + { + "inputs": [], + "type": "error", + "name": "OrderNoInputs" + }, + { + "inputs": [], + "type": "error", + "name": "OrderNoOutputs" + }, + { + "inputs": [], + "type": "error", + "name": "OrderNoSources" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "vaultId", + "type": "uint256" + } + ], + "type": "error", + "name": "ZeroDepositAmount" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "vaultId", + "type": "uint256" + } + ], + "type": "error", + "name": "ZeroWithdrawTargetAmount" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address", + "indexed": false + }, + { + "internalType": "contract IExpressionDeployerV3", + "name": "expressionDeployer", + "type": "address", + "indexed": false + }, + { + "internalType": "struct OrderV2", + "name": "order", + "type": "tuple", + "components": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "bool", + "name": "handleIO", + "type": "bool" + }, + { + "internalType": "struct EvaluableV2", + "name": "evaluable", + "type": "tuple", + "components": [ + { + "internalType": "contract IInterpreterV2", + "name": "interpreter", + "type": "address" + }, + { + "internalType": "contract IInterpreterStoreV1", + "name": "store", + "type": "address" + }, + { + "internalType": "address", + "name": "expression", + "type": "address" + } + ] + }, + { + "internalType": "struct IO[]", + "name": "validInputs", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "uint8", + "name": "decimals", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "vaultId", + "type": "uint256" + } + ] + }, + { + "internalType": "struct IO[]", + "name": "validOutputs", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "uint8", + "name": "decimals", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "vaultId", + "type": "uint256" + } + ] + } + ], + "indexed": false + }, + { + "internalType": "bytes32", + "name": "orderHash", + "type": "bytes32", + "indexed": false + } + ], + "type": "event", + "name": "AddOrder", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address", + "indexed": false + }, + { + "internalType": "struct ClearStateChange", + "name": "clearStateChange", + "type": "tuple", + "components": [ + { + "internalType": "uint256", + "name": "aliceOutput", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "bobOutput", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "aliceInput", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "bobInput", + "type": "uint256" + } + ], + "indexed": false + } + ], + "type": "event", + "name": "AfterClear", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address", + "indexed": false + }, + { + "internalType": "struct OrderV2", + "name": "alice", + "type": "tuple", + "components": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "bool", + "name": "handleIO", + "type": "bool" + }, + { + "internalType": "struct EvaluableV2", + "name": "evaluable", + "type": "tuple", + "components": [ + { + "internalType": "contract IInterpreterV2", + "name": "interpreter", + "type": "address" + }, + { + "internalType": "contract IInterpreterStoreV1", + "name": "store", + "type": "address" + }, + { + "internalType": "address", + "name": "expression", + "type": "address" + } + ] + }, + { + "internalType": "struct IO[]", + "name": "validInputs", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "uint8", + "name": "decimals", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "vaultId", + "type": "uint256" + } + ] + }, + { + "internalType": "struct IO[]", + "name": "validOutputs", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "uint8", + "name": "decimals", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "vaultId", + "type": "uint256" + } + ] + } + ], + "indexed": false + }, + { + "internalType": "struct OrderV2", + "name": "bob", + "type": "tuple", + "components": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "bool", + "name": "handleIO", + "type": "bool" + }, + { + "internalType": "struct EvaluableV2", + "name": "evaluable", + "type": "tuple", + "components": [ + { + "internalType": "contract IInterpreterV2", + "name": "interpreter", + "type": "address" + }, + { + "internalType": "contract IInterpreterStoreV1", + "name": "store", + "type": "address" + }, + { + "internalType": "address", + "name": "expression", + "type": "address" + } + ] + }, + { + "internalType": "struct IO[]", + "name": "validInputs", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "uint8", + "name": "decimals", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "vaultId", + "type": "uint256" + } + ] + }, + { + "internalType": "struct IO[]", + "name": "validOutputs", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "uint8", + "name": "decimals", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "vaultId", + "type": "uint256" + } + ] + } + ], + "indexed": false + }, + { + "internalType": "struct ClearConfig", + "name": "clearConfig", + "type": "tuple", + "components": [ + { + "internalType": "uint256", + "name": "aliceInputIOIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "aliceOutputIOIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "bobInputIOIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "bobOutputIOIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "aliceBountyVaultId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "bobBountyVaultId", + "type": "uint256" + } + ], + "indexed": false + } + ], + "type": "event", + "name": "Clear", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address", + "indexed": false + }, + { + "internalType": "uint256[][]", + "name": "context", + "type": "uint256[][]", + "indexed": false + } + ], + "type": "event", + "name": "Context", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address", + "indexed": false + }, + { + "internalType": "address", + "name": "token", + "type": "address", + "indexed": false + }, + { + "internalType": "uint256", + "name": "vaultId", + "type": "uint256", + "indexed": false + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256", + "indexed": false + } + ], + "type": "event", + "name": "Deposit", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address", + "indexed": false + }, + { + "internalType": "address", + "name": "owner", + "type": "address", + "indexed": false + }, + { + "internalType": "bytes32", + "name": "orderHash", + "type": "bytes32", + "indexed": false + } + ], + "type": "event", + "name": "OrderExceedsMaxRatio", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address", + "indexed": false + }, + { + "internalType": "address", + "name": "owner", + "type": "address", + "indexed": false + }, + { + "internalType": "bytes32", + "name": "orderHash", + "type": "bytes32", + "indexed": false + } + ], + "type": "event", + "name": "OrderNotFound", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address", + "indexed": false + }, + { + "internalType": "address", + "name": "owner", + "type": "address", + "indexed": false + }, + { + "internalType": "bytes32", + "name": "orderHash", + "type": "bytes32", + "indexed": false + } + ], + "type": "event", + "name": "OrderZeroAmount", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address", + "indexed": false + }, + { + "internalType": "struct OrderV2", + "name": "order", + "type": "tuple", + "components": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "bool", + "name": "handleIO", + "type": "bool" + }, + { + "internalType": "struct EvaluableV2", + "name": "evaluable", + "type": "tuple", + "components": [ + { + "internalType": "contract IInterpreterV2", + "name": "interpreter", + "type": "address" + }, + { + "internalType": "contract IInterpreterStoreV1", + "name": "store", + "type": "address" + }, + { + "internalType": "address", + "name": "expression", + "type": "address" + } + ] + }, + { + "internalType": "struct IO[]", + "name": "validInputs", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "uint8", + "name": "decimals", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "vaultId", + "type": "uint256" + } + ] + }, + { + "internalType": "struct IO[]", + "name": "validOutputs", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "uint8", + "name": "decimals", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "vaultId", + "type": "uint256" + } + ] + } + ], + "indexed": false + }, + { + "internalType": "bytes32", + "name": "orderHash", + "type": "bytes32", + "indexed": false + } + ], + "type": "event", + "name": "RemoveOrder", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address", + "indexed": false + }, + { + "internalType": "struct TakeOrderConfigV2", + "name": "config", + "type": "tuple", + "components": [ + { + "internalType": "struct OrderV2", + "name": "order", + "type": "tuple", + "components": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "bool", + "name": "handleIO", + "type": "bool" + }, + { + "internalType": "struct EvaluableV2", + "name": "evaluable", + "type": "tuple", + "components": [ + { + "internalType": "contract IInterpreterV2", + "name": "interpreter", + "type": "address" + }, + { + "internalType": "contract IInterpreterStoreV1", + "name": "store", + "type": "address" + }, + { + "internalType": "address", + "name": "expression", + "type": "address" + } + ] + }, + { + "internalType": "struct IO[]", + "name": "validInputs", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "uint8", + "name": "decimals", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "vaultId", + "type": "uint256" + } + ] + }, + { + "internalType": "struct IO[]", + "name": "validOutputs", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "uint8", + "name": "decimals", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "vaultId", + "type": "uint256" + } + ] + } + ] + }, + { + "internalType": "uint256", + "name": "inputIOIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "outputIOIndex", + "type": "uint256" + }, + { + "internalType": "struct SignedContextV1[]", + "name": "signedContext", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "signer", + "type": "address" + }, + { + "internalType": "uint256[]", + "name": "context", + "type": "uint256[]" + }, + { + "internalType": "bytes", + "name": "signature", + "type": "bytes" + } + ] + } + ], + "indexed": false + }, + { + "internalType": "uint256", + "name": "input", + "type": "uint256", + "indexed": false + }, + { + "internalType": "uint256", + "name": "output", + "type": "uint256", + "indexed": false + } + ], + "type": "event", + "name": "TakeOrder", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address", + "indexed": false + }, + { + "internalType": "address", + "name": "token", + "type": "address", + "indexed": false + }, + { + "internalType": "uint256", + "name": "vaultId", + "type": "uint256", + "indexed": false + }, + { + "internalType": "uint256", + "name": "targetAmount", + "type": "uint256", + "indexed": false + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256", + "indexed": false + } + ], + "type": "event", + "name": "Withdraw", + "anonymous": false + }, + { + "inputs": [ + { + "internalType": "struct OrderConfigV2", + "name": "config", + "type": "tuple", + "components": [ + { + "internalType": "struct IO[]", + "name": "validInputs", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "uint8", + "name": "decimals", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "vaultId", + "type": "uint256" + } + ] + }, + { + "internalType": "struct IO[]", + "name": "validOutputs", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "uint8", + "name": "decimals", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "vaultId", + "type": "uint256" + } + ] + }, + { + "internalType": "struct EvaluableConfigV3", + "name": "evaluableConfig", + "type": "tuple", + "components": [ + { + "internalType": "contract IExpressionDeployerV3", + "name": "deployer", + "type": "address" + }, + { + "internalType": "bytes", + "name": "bytecode", + "type": "bytes" + }, + { + "internalType": "uint256[]", + "name": "constants", + "type": "uint256[]" + } + ] + }, + { + "internalType": "bytes", + "name": "meta", + "type": "bytes" + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "addOrder", + "outputs": [ + { + "internalType": "bool", + "name": "stateChanged", + "type": "bool" + } + ] + }, + { + "inputs": [ + { + "internalType": "struct OrderV2", + "name": "alice", + "type": "tuple", + "components": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "bool", + "name": "handleIO", + "type": "bool" + }, + { + "internalType": "struct EvaluableV2", + "name": "evaluable", + "type": "tuple", + "components": [ + { + "internalType": "contract IInterpreterV2", + "name": "interpreter", + "type": "address" + }, + { + "internalType": "contract IInterpreterStoreV1", + "name": "store", + "type": "address" + }, + { + "internalType": "address", + "name": "expression", + "type": "address" + } + ] + }, + { + "internalType": "struct IO[]", + "name": "validInputs", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "uint8", + "name": "decimals", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "vaultId", + "type": "uint256" + } + ] + }, + { + "internalType": "struct IO[]", + "name": "validOutputs", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "uint8", + "name": "decimals", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "vaultId", + "type": "uint256" + } + ] + } + ] + }, + { + "internalType": "struct OrderV2", + "name": "bob", + "type": "tuple", + "components": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "bool", + "name": "handleIO", + "type": "bool" + }, + { + "internalType": "struct EvaluableV2", + "name": "evaluable", + "type": "tuple", + "components": [ + { + "internalType": "contract IInterpreterV2", + "name": "interpreter", + "type": "address" + }, + { + "internalType": "contract IInterpreterStoreV1", + "name": "store", + "type": "address" + }, + { + "internalType": "address", + "name": "expression", + "type": "address" + } + ] + }, + { + "internalType": "struct IO[]", + "name": "validInputs", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "uint8", + "name": "decimals", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "vaultId", + "type": "uint256" + } + ] + }, + { + "internalType": "struct IO[]", + "name": "validOutputs", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "uint8", + "name": "decimals", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "vaultId", + "type": "uint256" + } + ] + } + ] + }, + { + "internalType": "struct ClearConfig", + "name": "clearConfig", + "type": "tuple", + "components": [ + { + "internalType": "uint256", + "name": "aliceInputIOIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "aliceOutputIOIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "bobInputIOIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "bobOutputIOIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "aliceBountyVaultId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "bobBountyVaultId", + "type": "uint256" + } + ] + }, + { + "internalType": "struct SignedContextV1[]", + "name": "aliceSignedContext", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "signer", + "type": "address" + }, + { + "internalType": "uint256[]", + "name": "context", + "type": "uint256[]" + }, + { + "internalType": "bytes", + "name": "signature", + "type": "bytes" + } + ] + }, + { + "internalType": "struct SignedContextV1[]", + "name": "bobSignedContext", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "signer", + "type": "address" + }, + { + "internalType": "uint256[]", + "name": "context", + "type": "uint256[]" + }, + { + "internalType": "bytes", + "name": "signature", + "type": "bytes" + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "clear" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "vaultId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "deposit" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function", + "name": "flashFee", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "contract IERC3156FlashBorrower", + "name": "receiver", + "type": "address" + }, + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "flashLoan", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "token", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "name": "maxFlashLoan", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "orderHash", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function", + "name": "orderExists", + "outputs": [ + { + "internalType": "bool", + "name": "exists", + "type": "bool" + } + ] + }, + { + "inputs": [ + { + "internalType": "struct OrderV2", + "name": "order", + "type": "tuple", + "components": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "bool", + "name": "handleIO", + "type": "bool" + }, + { + "internalType": "struct EvaluableV2", + "name": "evaluable", + "type": "tuple", + "components": [ + { + "internalType": "contract IInterpreterV2", + "name": "interpreter", + "type": "address" + }, + { + "internalType": "contract IInterpreterStoreV1", + "name": "store", + "type": "address" + }, + { + "internalType": "address", + "name": "expression", + "type": "address" + } + ] + }, + { + "internalType": "struct IO[]", + "name": "validInputs", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "uint8", + "name": "decimals", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "vaultId", + "type": "uint256" + } + ] + }, + { + "internalType": "struct IO[]", + "name": "validOutputs", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "uint8", + "name": "decimals", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "vaultId", + "type": "uint256" + } + ] + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "removeOrder", + "outputs": [ + { + "internalType": "bool", + "name": "stateChanged", + "type": "bool" + } + ] + }, + { + "inputs": [ + { + "internalType": "struct TakeOrdersConfigV2", + "name": "config", + "type": "tuple", + "components": [ + { + "internalType": "uint256", + "name": "minimumInput", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maximumInput", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maximumIORatio", + "type": "uint256" + }, + { + "internalType": "struct TakeOrderConfigV2[]", + "name": "orders", + "type": "tuple[]", + "components": [ + { + "internalType": "struct OrderV2", + "name": "order", + "type": "tuple", + "components": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "bool", + "name": "handleIO", + "type": "bool" + }, + { + "internalType": "struct EvaluableV2", + "name": "evaluable", + "type": "tuple", + "components": [ + { + "internalType": "contract IInterpreterV2", + "name": "interpreter", + "type": "address" + }, + { + "internalType": "contract IInterpreterStoreV1", + "name": "store", + "type": "address" + }, + { + "internalType": "address", + "name": "expression", + "type": "address" + } + ] + }, + { + "internalType": "struct IO[]", + "name": "validInputs", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "uint8", + "name": "decimals", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "vaultId", + "type": "uint256" + } + ] + }, + { + "internalType": "struct IO[]", + "name": "validOutputs", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "uint8", + "name": "decimals", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "vaultId", + "type": "uint256" + } + ] + } + ] + }, + { + "internalType": "uint256", + "name": "inputIOIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "outputIOIndex", + "type": "uint256" + }, + { + "internalType": "struct SignedContextV1[]", + "name": "signedContext", + "type": "tuple[]", + "components": [ + { + "internalType": "address", + "name": "signer", + "type": "address" + }, + { + "internalType": "uint256[]", + "name": "context", + "type": "uint256[]" + }, + { + "internalType": "bytes", + "name": "signature", + "type": "bytes" + } + ] + } + ] + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ] + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "takeOrders", + "outputs": [ + { + "internalType": "uint256", + "name": "totalInput", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalOutput", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function", + "name": "vaultBalance", + "outputs": [ + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + } + ] + }, + { + "inputs": [ + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "vaultId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "targetAmount", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function", + "name": "withdraw" + } + ], + "devdoc": { + "kind": "dev", + "methods": { + "addOrder(((address,uint8,uint256)[],(address,uint8,uint256)[],(address,bytes,uint256[]),bytes))": { + "params": { + "config": "All config required to build an `Order`." + }, + "returns": { + "stateChanged": "True if the order was added, false if it already existed." + } + }, + "clear((address,bool,(address,address,address),(address,uint8,uint256)[],(address,uint8,uint256)[]),(address,bool,(address,address,address),(address,uint8,uint256)[],(address,uint8,uint256)[]),(uint256,uint256,uint256,uint256,uint256,uint256),(address,uint256[],bytes)[],(address,uint256[],bytes)[])": { + "params": { + "alice": "Some order to clear.", + "aliceSignedContext": "Optional signed context that is relevant to A.", + "bob": "Another order to clear.", + "bobSignedContext": "Optional signed context that is relevant to B.", + "clearConfig": "Additional configuration for the clearance such as how to handle the bounty payment for the `msg.sender`." + } + }, + "deposit(address,uint256,uint256)": { + "params": { + "amount": "The amount of tokens to deposit.", + "token": "The token to deposit.", + "vaultId": "The vault ID to deposit under." + } + }, + "flashFee(address,uint256)": { + "details": "The fee to be charged for a given loan.", + "params": { + "amount": "The amount of tokens lent.", + "token": "The loan currency." + }, + "returns": { + "_0": "The amount of `token` to be charged for the loan, on top of the returned principal." + } + }, + "flashLoan(address,address,uint256,bytes)": { + "details": "Initiate a flash loan.", + "params": { + "amount": "The amount of tokens lent.", + "data": "Arbitrary data structure, intended to contain user-defined parameters.", + "receiver": "The receiver of the tokens in the loan, and the receiver of the callback.", + "token": "The loan currency." + } + }, + "maxFlashLoan(address)": { + "details": "The amount of currency available to be lent.", + "params": { + "token": "The loan currency." + }, + "returns": { + "_0": "The amount of `token` that can be borrowed." + } + }, + "orderExists(bytes32)": { + "params": { + "orderHash": "The hash of the order to check." + }, + "returns": { + "exists": "True if the order exists, false otherwise." + } + }, + "removeOrder((address,bool,(address,address,address),(address,uint8,uint256)[],(address,uint8,uint256)[]))": { + "params": { + "order": "The `Order` data exactly as it was added." + }, + "returns": { + "stateChanged": "True if the order was removed, false if it did not exist." + } + }, + "takeOrders((uint256,uint256,uint256,((address,bool,(address,address,address),(address,uint8,uint256)[],(address,uint8,uint256)[]),uint256,uint256,(address,uint256[],bytes)[])[],bytes))": { + "params": { + "config": "The constraints and list of orders to take, orders are processed sequentially in order as provided, there is NO ATTEMPT onchain to predict/filter/sort these orders other than evaluating them as provided. Inputs and outputs are from the perspective of `msg.sender` except for values specified by the orders themselves which are the from the perspective of that order." + }, + "returns": { + "totalInput": "Total tokens sent to `msg.sender`, taken from order vaults processed.", + "totalOutput": "Total tokens taken from `msg.sender` and distributed between vaults." + } + }, + "vaultBalance(address,address,uint256)": { + "params": { + "id": "The vault ID to read.", + "owner": "The owner of the vault.", + "token": "The token the vault is for." + }, + "returns": { + "balance": "The current balance of the vault." + } + }, + "withdraw(address,uint256,uint256)": { + "params": { + "targetAmount": "The amount of tokens to attempt to withdraw. MAY result in fewer tokens withdrawn if the vault balance is lower than the target amount. MAY NOT be zero, the order book MUST revert with `ZeroWithdrawTargetAmount` if the amount is zero.", + "token": "The token to withdraw.", + "vaultId": "The vault ID to withdraw from." + } + } + }, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": { + "addOrder(((address,uint8,uint256)[],(address,uint8,uint256)[],(address,bytes,uint256[]),bytes))": { + "notice": "Given an order config, deploys the expression and builds the full `Order` for the config, then records it as an active order. Delegated adding an order is NOT supported. The `msg.sender` that adds an order is ALWAYS the owner and all resulting vault movements are their own. MUST revert with `OrderNoSources` if the order has no associated calculation and `OrderNoHandleIO` if the order has no handle IO entrypoint. The calculation MUST return at least two values from evaluation, the maximum amount and the IO ratio. The handle IO entrypoint SHOULD return zero values from evaluation. Either MAY revert during evaluation on the interpreter, which MUST prevent the order from clearing. MUST revert with `OrderNoInputs` if the order has no inputs. MUST revert with `OrderNoOutputs` if the order has no outputs. If the order already exists, the order book MUST NOT change state, which includes not emitting an event. Instead it MUST return false. If the order book modifies state it MUST emit an `AddOrder` event and return true." + }, + "clear((address,bool,(address,address,address),(address,uint8,uint256)[],(address,uint8,uint256)[]),(address,bool,(address,address,address),(address,uint8,uint256)[],(address,uint8,uint256)[]),(uint256,uint256,uint256,uint256,uint256,uint256),(address,uint256[],bytes)[],(address,uint256[],bytes)[])": { + "notice": "Allows `msg.sender` to match two live orders placed earlier by non-interactive parties and claim a bounty in the process. The clearer is free to select any two live orders on the order book for matching and as long as they have compatible tokens, ratios and amounts, the orders will clear. Clearing the orders DOES NOT remove them from the orderbook, they remain live until explicitly removed by their owner. Even if the input vault balances are completely emptied, the orders remain live until removed. This allows order owners to deploy a strategy over a long period of time and periodically top up the input vaults. Clearing two orders from the same owner is disallowed. Any mismatch in the ratios between the two orders will cause either more inputs than there are available outputs (transaction will revert) or less inputs than there are available outputs. In the latter case the excess outputs are given to the `msg.sender` of clear, to the vaults they specify in the clear config. This not only incentivises \"automatic\" clear calls for both alice and bob, but incentivises _prioritising greater ratio differences_ with a larger bounty. The second point is important because it implicitly prioritises orders that are further from the current market price, thus putting constant increasing pressure on the entire system the further it drifts from the norm, no matter how esoteric the individual order expressions and sizings might be. All else equal there are several factors that would impact how reliably some order clears relative to the wider market, such as: - Bounties are effectively percentages of cleared amounts so larger orders have larger bounties and cover gas costs more easily - High gas on the network means that orders are harder to clear profitably so the negative spread of the ratios will need to be larger - Complex and stateful expressions cost more gas to evalulate so the negative spread will need to be larger - Erratic behavior of the order owner could reduce the willingness of third parties to interact if it could result in wasted gas due to orders suddently being removed before clearance etc. - Dynamic and highly volatile words used in the expression could be ignored or low priority by clearers who want to be sure that they can accurately predict the ratios that they include in their clearance - Geopolitical issues such as sanctions and regulatory restrictions could cause issues for certain owners and clearers" + }, + "deposit(address,uint256,uint256)": { + "notice": "Vault IDs are namespaced by the token address so there is no risk of collision between tokens. For example, vault ID 0 for token A is completely different to vault ID 0 for token B. `0` amount deposits are unsupported as underlying token contracts handle `0` value transfers differently and this would be a source of confusion. The order book MUST revert with `ZeroDepositAmount` if the amount is zero." + }, + "orderExists(bytes32)": { + "notice": "Returns true if the order exists, false otherwise." + }, + "removeOrder((address,bool,(address,address,address),(address,uint8,uint256)[],(address,uint8,uint256)[]))": { + "notice": "Order owner can remove their own orders. Delegated order removal is NOT supported and will revert. Removing an order multiple times or removing an order that never existed are valid, the event will be emitted and the transaction will complete with that order hash definitely, redundantly not live." + }, + "takeOrders((uint256,uint256,uint256,((address,bool,(address,address,address),(address,uint8,uint256)[],(address,uint8,uint256)[]),uint256,uint256,(address,uint256[],bytes)[])[],bytes))": { + "notice": "Allows `msg.sender` to attempt to fill a list of orders in sequence without needing to place their own order and clear them. This works like a market buy but against a specific set of orders. Every order will looped over and calculated individually then filled maximally until the request input is reached for the `msg.sender`. The `msg.sender` is responsible for selecting the best orders at the time according to their criteria and MAY specify a maximum IO ratio to guard against an order spiking the ratio beyond what the `msg.sender` expected and is comfortable with. As orders may be removed and calculate their ratios dynamically, all issues fulfilling an order other than misconfiguration by the `msg.sender` are no-ops and DO NOT revert the transaction. This allows the `msg.sender` to optimistically provide a list of orders that they aren't sure will completely fill at a good price, and fallback to more reliable orders further down their list. Misconfiguration such as token mismatches are errors that revert as this is known and static at all times to the `msg.sender` so MUST be provided correctly. `msg.sender` MAY specify a minimum input that MUST be reached across all orders in the list, otherwise the transaction will revert, this MAY be set to zero. Exactly like withdraw, if there is an active flash loan for `msg.sender` they will have their outstanding loan reduced by the final input amount preferentially before sending any tokens. Notably this allows arb bots implemented as flash loan borrowers to connect orders against external liquidity directly by paying back the loan with a `takeOrders` call and outputting the result of the external trade. Rounding errors always favour the order never the `msg.sender`." + }, + "vaultBalance(address,address,uint256)": { + "notice": "Get the current balance of a vault for a given owner, token and vault ID." + }, + "withdraw(address,uint256,uint256)": { + "notice": "Allows the sender to withdraw any tokens from their own vaults. If the withrawer has an active flash loan debt denominated in the same token being withdrawn then Orderbook will merely reduce the debt and NOT send the amount of tokens repaid to the flashloan debt. MUST revert if the amount _requested_ to withdraw is zero. The withdrawal MAY still not move any tokens (without revert) if the vault balance is zero, or the withdrawal is used to repay a flash loan, or due to any other internal accounting." + } + }, + "version": 1 + } + }, + "settings": { + "remappings": [ + "@prb/test/=lib/rain.interpreter/lib/prb-math/lib/prb-test/src/", + "axelar-gmp-sdk-solidity/=lib/sushixswap-v2/lib/axelar-gmp-sdk-solidity/", + "bitwise/=lib/rain.interpreter/src/lib/bitwise/", + "bytecode/=lib/rain.interpreter/src/lib/bytecode/", + "caller/=lib/rain.interpreter/src/lib/caller/", + "compile/=lib/rain.interpreter/src/lib/compile/", + "ds-test/=lib/forge-std/lib/ds-test/src/", + "erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/", + "eval/=lib/rain.interpreter/src/lib/eval/", + "extern/=lib/rain.interpreter/src/lib/extern/", + "forge-gas-snapshot/=lib/sushixswap-v2/lib/forge-gas-snapshot/src/", + "forge-std/=lib/forge-std/src/", + "integrity/=lib/rain.interpreter/src/lib/integrity/", + "ns/=lib/rain.interpreter/src/lib/ns/", + "op/=lib/rain.interpreter/src/lib/op/", + "openzeppelin-contracts/=lib/openzeppelin-contracts/", + "openzeppelin/=lib/openzeppelin-contracts/contracts/", + "parse/=lib/rain.interpreter/src/lib/parse/", + "prb-math/=lib/rain.interpreter/lib/prb-math/src/", + "prb-test/=lib/rain.interpreter/lib/prb-math/lib/prb-test/src/", + "rain.chainlink/=lib/rain.interpreter/lib/rain.chainlink/src/", + "rain.datacontract/=lib/rain.interpreter/lib/rain.datacontract/src/", + "rain.erc1820/=lib/rain.erc1820/src/", + "rain.extrospection/=lib/rain.factory/lib/rain.extrospection/", + "rain.factory/=lib/rain.factory/", + "rain.interpreter/=lib/rain.interpreter/", + "rain.lib.hash/=lib/rain.lib.memkv/lib/rain.lib.hash/src/", + "rain.lib.memkv/=lib/rain.lib.memkv/src/", + "rain.lib.typecast/=lib/rain.interpreter/lib/rain.lib.typecast/src/", + "rain.math.fixedpoint/=lib/rain.math.fixedpoint/src/", + "rain.math.saturating/=lib/rain.math.fixedpoint/lib/rain.math.saturating/src/", + "rain.metadata/=lib/rain.metadata/src/", + "rain.solmem/=lib/rain.solmem/src/", + "sol.lib.binmaskflag/=lib/rain.interpreter/lib/sol.lib.binmaskflag/src/", + "state/=lib/rain.interpreter/src/lib/state/", + "sushixswap-v2/=lib/sushixswap-v2/", + "uniswap/=lib/rain.interpreter/src/lib/uniswap/", + "v2-core/=lib/rain.interpreter/lib/v2-core/contracts/", + "v2-periphery/=lib/rain.interpreter/lib/v2-periphery/contracts/" + ], + "optimizer": { + "enabled": true, + "runs": 1000000 + }, + "metadata": { + "bytecodeHash": "none", + "appendCBOR": false + }, + "compilationTarget": { + "src/interface/unstable/IOrderBookV3.sol": "IOrderBookV3" + }, + "libraries": {} + }, + "sources": { + "lib/rain.interpreter/src/interface/IInterpreterCallerV2.sol": { + "keccak256": "0xd6f76317b41d50fb6b3fbfcffa5fa8b4a3bb547a17bf52244f67f5c364fcd6bc", + "urls": [ + "bzz-raw://e7a35981e397564e85c53fab7b46bf8118328cfdb729264f946f7826c205f813", + "dweb:/ipfs/QmfXnGW5RTDgqoMkp3k4E3eWBBS7hXWzmhw56XcfvB766E" + ], + "license": "CAL" + }, + "lib/rain.interpreter/src/interface/IInterpreterStoreV1.sol": { + "keccak256": "0x8fe347844f029b84087daae66742fb10aa9e44f94ac90af696318188aa922c19", + "urls": [ + "bzz-raw://5eea5d2116f643db3ede89fd2dc3a5d293e35aec1d62a9daf6531f88a9656fb3", + "dweb:/ipfs/Qmdys5MsEjgpXokb5FhMg96SYB6Bmf3frtVRvX74WrbKTc" + ], + "license": "CAL" + }, + "lib/rain.interpreter/src/interface/deprecated/IExpressionDeployerV1.sol": { + "keccak256": "0x5e903fdb445cc16e63bb86d53eeb49172e2472cd7344a762c6d85684aec8251d", + "urls": [ + "bzz-raw://5dab81bd2f092f392afbb295525c3602246ab5620de7630e84dab37b955f7e4d", + "dweb:/ipfs/QmaGiCBSf2KjwjpVtJwG4k6iGqPKYs8dq6gkUYo9EFWkTg" + ], + "license": "CAL" + }, + "lib/rain.interpreter/src/interface/deprecated/IExpressionDeployerV2.sol": { + "keccak256": "0xc98ea86cd5d633d01b4136258bc0026b3d4bade652f831b482867e97df0e5365", + "urls": [ + "bzz-raw://d412df06ddccb1be19f6e962872297395546c591ccd42ccad91559aa0e5ee214", + "dweb:/ipfs/QmebpvwxNtv9XNoKi9y8Ldqhzy3GWY5kwoSNDQL2vJHrbg" + ], + "license": "CAL" + }, + "lib/rain.interpreter/src/interface/deprecated/IInterpreterCallerV1.sol": { + "keccak256": "0xdfccb8ca0e4673ac476d1ccfcd1ffa69300f910c41352cc51c3408a58bf095b2", + "urls": [ + "bzz-raw://9a44b64873ed13c9c7d964e1d3b66dc2e80bb457563def325551bf796db8791c", + "dweb:/ipfs/QmWTfH9qtwki5DFRAri1ouV7NVZ1mQzraz9eRumNEbcSNU" + ], + "license": "CAL" + }, + "lib/rain.interpreter/src/interface/deprecated/IInterpreterV1.sol": { + "keccak256": "0xb58d3b75312da70f4fb7896dc07d8a3d77de0638d169db4acf6c246ddab0f518", + "urls": [ + "bzz-raw://970029663ca4321640ca0d577213e938046a3fe2995b580f9f7c8f0bfa34a3f3", + "dweb:/ipfs/QmeZgH1RKqLgDh56FWQATBy8BCt6CyGiCuamrKY22QyCRz" + ], + "license": "CAL" + }, + "lib/rain.interpreter/src/interface/unstable/IExpressionDeployerV3.sol": { + "keccak256": "0x408f6c6fa3766cf7d24ffe1c98eb57b77af5bfbe946f266fd7a3b800de4ddb79", + "urls": [ + "bzz-raw://186b12c32030d2b7e4e81f1a11ac7c7a63b0f14b7dc1b6df50cbd2be7459bb69", + "dweb:/ipfs/QmXRV3DGCoQtVxufMtiuXLvN3GF6YNTLyPLVVeoLL53sMg" + ], + "license": "CAL" + }, + "lib/rain.interpreter/src/interface/unstable/IInterpreterV2.sol": { + "keccak256": "0xcf050192ba12f7eb129e0262cee4920cbd65bb331e7487cfc21151882464be50", + "urls": [ + "bzz-raw://10ff84f0acf532c5e11e69b7ab41c739ce4ad0f9193d347b5cc4a34f158774a8", + "dweb:/ipfs/QmRvfB8jCdCwDdLrLHQh8yLLLv2eowpwjfwXgy2u629xew" + ], + "license": "CAL" + }, + "lib/rain.interpreter/src/lib/caller/LibEvaluable.sol": { + "keccak256": "0xc3e649c4d698822ae81c4ec0814d2dd506e601795914a7af0883c5c40678ab21", + "urls": [ + "bzz-raw://901d9258689585e338aeb648d77ca083766c423dabc78db46285b3fb69fb12d1", + "dweb:/ipfs/QmPVw7yuoDuqWorxpM7oWPhjSGRXhcEeu1dXQrjBDvpfrn" + ], + "license": "CAL" + }, + "src/interface/deprecated/IOrderBookV2.sol": { + "keccak256": "0xc4f99b2e74b48063eb0383184446e5ad65aa158e12519949e28bed62b49d88fb", + "urls": [ + "bzz-raw://1a2cdc0410026ffc686d4100505564a9dff28b2364cadfeb75b3eea4dde841dc", + "dweb:/ipfs/QmXC1QtN2Go2RLH8bK9GrtsxfMLY5eKaksW53utMTaNuR8" + ], + "license": "CAL" + }, + "src/interface/ierc3156/IERC3156FlashBorrower.sol": { + "keccak256": "0x493227b1bc21c04ba2506d8d63f8fab8eb828683cf41336db1076edee2e010a7", + "urls": [ + "bzz-raw://99b27f1f11576c22462c93ab613835522dfc89a7e28e584df034b339187bc15c", + "dweb:/ipfs/QmQZ1H8PotScE5rSbruZn97MC6pgDNTuCQcjtg8ZWU4SPB" + ], + "license": "CC0" + }, + "src/interface/ierc3156/IERC3156FlashLender.sol": { + "keccak256": "0x1c14bc32c7483a68f5cb3ff65f64a8a32b279472525340033ce8e0b462fd1e72", + "urls": [ + "bzz-raw://e25cbc0c4512d737fd9fb32f30af0f9bcccd10f28870c927057f6bcaac213dd4", + "dweb:/ipfs/Qmey7YDkCTMXgoRDVHUbHRH6f4MJz6mBdfucp7v7bVy1ie" + ], + "license": "CC0" + }, + "src/interface/unstable/IOrderBookV3.sol": { + "keccak256": "0x1aba9fbf5e9c2f410a2c24d56361718ac4ec6d62431ee07107bb83660740b6a1", + "urls": [ + "bzz-raw://12e803376fce4b36bcb7c228faa2aa5360b85688539485212f129b3467e23852", + "dweb:/ipfs/QmV7oBCy2idxp8pY9yhGGcqbdpfVcqgpRvpJ1wYDNg7rZT" + ], + "license": "CAL" + } + }, + "version": 1 + }, + "ast": { + "absolutePath": "src/interface/unstable/IOrderBookV3.sol", + "id": 79290, + "exportedSymbols": { + "ClearConfig": [ + 78728 + ], + "ClearStateChange": [ + 78737 + ], + "EvaluableConfigV3": [ + 55623 + ], + "EvaluableV2": [ + 55632 + ], + "IERC3156FlashBorrower": [ + 78942 + ], + "IERC3156FlashLender": [ + 78980 + ], + "IExpressionDeployerV3": [ + 55986 + ], + "IInterpreterCallerV2": [ + 55660 + ], + "IO": [ + 78658 + ], + "IOrderBookV3": [ + 79289 + ], + "NoOrders": [ + 78997 + ], + "OrderConfigV2": [ + 79014 + ], + "OrderV2": [ + 79042 + ], + "SignedContextV1": [ + 55640 + ], + "TakeOrderConfigV2": [ + 79026 + ], + "TakeOrdersConfigV2": [ + 79055 + ], + "ZeroMaximumInput": [ + 79000 + ] + }, + "nodeType": "SourceUnit", + "src": "32:31563:181", + "nodes": [ + { + "id": 78982, + "nodeType": "PragmaDirective", + "src": "32:24:181", + "nodes": [], + "literals": [ + "solidity", + "^", + "0.8", + ".18" + ] + }, + { + "id": 78983, + "nodeType": "ImportDirective", + "src": "58:45:181", + "nodes": [], + "absolutePath": "src/interface/ierc3156/IERC3156FlashLender.sol", + "file": "../ierc3156/IERC3156FlashLender.sol", + "nameLocation": "-1:-1:-1", + "scope": 79290, + "sourceUnit": 78981, + "symbolAliases": [], + "unitAlias": "" + }, + { + "id": 78986, + "nodeType": "ImportDirective", + "src": "104:104:181", + "nodes": [], + "absolutePath": "lib/rain.interpreter/src/lib/caller/LibEvaluable.sol", + "file": "lib/rain.interpreter/src/lib/caller/LibEvaluable.sol", + "nameLocation": "-1:-1:-1", + "scope": 79290, + "sourceUnit": 57188, + "symbolAliases": [ + { + "foreign": { + "id": 78984, + "name": "IExpressionDeployerV3", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 55986, + "src": "112:21:181", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + }, + { + "foreign": { + "id": 78985, + "name": "EvaluableV2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 55632, + "src": "135:11:181", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 78990, + "nodeType": "ImportDirective", + "src": "209:147:181", + "nodes": [], + "absolutePath": "lib/rain.interpreter/src/interface/IInterpreterCallerV2.sol", + "file": "lib/rain.interpreter/src/interface/IInterpreterCallerV2.sol", + "nameLocation": "-1:-1:-1", + "scope": 79290, + "sourceUnit": 55661, + "symbolAliases": [ + { + "foreign": { + "id": 78987, + "name": "EvaluableConfigV3", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 55623, + "src": "222:17:181", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + }, + { + "foreign": { + "id": 78988, + "name": "IInterpreterCallerV2", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 55660, + "src": "245:20:181", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + }, + { + "foreign": { + "id": 78989, + "name": "SignedContextV1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 55640, + "src": "271:15:181", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 78994, + "nodeType": "ImportDirective", + "src": "428:81:181", + "nodes": [], + "absolutePath": "src/interface/deprecated/IOrderBookV2.sol", + "file": "../deprecated/IOrderBookV2.sol", + "nameLocation": "-1:-1:-1", + "scope": 79290, + "sourceUnit": 78918, + "symbolAliases": [ + { + "foreign": { + "id": 78991, + "name": "IO", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 78658, + "src": "436:2:181", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + }, + { + "foreign": { + "id": 78992, + "name": "ClearConfig", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 78728, + "src": "440:11:181", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + }, + { + "foreign": { + "id": 78993, + "name": "ClearStateChange", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 78737, + "src": "453:16:181", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "id": 78997, + "nodeType": "ErrorDefinition", + "src": "565:17:181", + "nodes": [], + "documentation": { + "id": 78995, + "nodeType": "StructuredDocumentation", + "src": "511:54:181", + "text": "Thrown when take orders is called with no orders." + }, + "errorSelector": "9c95219f", + "name": "NoOrders", + "nameLocation": "571:8:181", + "parameters": { + "id": 78996, + "nodeType": "ParameterList", + "parameters": [], + "src": "579:2:181" + } + }, + { + "id": 79000, + "nodeType": "ErrorDefinition", + "src": "649:25:181", + "nodes": [], + "documentation": { + "id": 78998, + "nodeType": "StructuredDocumentation", + "src": "584:65:181", + "text": "Thrown when take orders is called with a zero maximum input." + }, + "errorSelector": "c2ee7009", + "name": "ZeroMaximumInput", + "nameLocation": "655:16:181", + "parameters": { + "id": 78999, + "nodeType": "ParameterList", + "parameters": [], + "src": "671:2:181" + } + }, + { + "id": 79014, + "nodeType": "StructDefinition", + "src": "1470:124:181", + "nodes": [], + "canonicalName": "OrderConfigV2", + "members": [ + { + "constant": false, + "id": 79004, + "mutability": "mutable", + "name": "validInputs", + "nameLocation": "1502:11:181", + "nodeType": "VariableDeclaration", + "scope": 79014, + "src": "1497:16:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_IO_$78658_storage_$dyn_storage_ptr", + "typeString": "struct IO[]" + }, + "typeName": { + "baseType": { + "id": 79002, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 79001, + "name": "IO", + "nameLocations": [ + "1497:2:181" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 78658, + "src": "1497:2:181" + }, + "referencedDeclaration": 78658, + "src": "1497:2:181", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IO_$78658_storage_ptr", + "typeString": "struct IO" + } + }, + "id": 79003, + "nodeType": "ArrayTypeName", + "src": "1497:4:181", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_IO_$78658_storage_$dyn_storage_ptr", + "typeString": "struct IO[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 79008, + "mutability": "mutable", + "name": "validOutputs", + "nameLocation": "1524:12:181", + "nodeType": "VariableDeclaration", + "scope": 79014, + "src": "1519:17:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_IO_$78658_storage_$dyn_storage_ptr", + "typeString": "struct IO[]" + }, + "typeName": { + "baseType": { + "id": 79006, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 79005, + "name": "IO", + "nameLocations": [ + "1519:2:181" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 78658, + "src": "1519:2:181" + }, + "referencedDeclaration": 78658, + "src": "1519:2:181", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IO_$78658_storage_ptr", + "typeString": "struct IO" + } + }, + "id": 79007, + "nodeType": "ArrayTypeName", + "src": "1519:4:181", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_IO_$78658_storage_$dyn_storage_ptr", + "typeString": "struct IO[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 79011, + "mutability": "mutable", + "name": "evaluableConfig", + "nameLocation": "1560:15:181", + "nodeType": "VariableDeclaration", + "scope": 79014, + "src": "1542:33:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EvaluableConfigV3_$55623_storage_ptr", + "typeString": "struct EvaluableConfigV3" + }, + "typeName": { + "id": 79010, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 79009, + "name": "EvaluableConfigV3", + "nameLocations": [ + "1542:17:181" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 55623, + "src": "1542:17:181" + }, + "referencedDeclaration": 55623, + "src": "1542:17:181", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EvaluableConfigV3_$55623_storage_ptr", + "typeString": "struct EvaluableConfigV3" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 79013, + "mutability": "mutable", + "name": "meta", + "nameLocation": "1587:4:181", + "nodeType": "VariableDeclaration", + "scope": 79014, + "src": "1581:10:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 79012, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1581:5:181", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "name": "OrderConfigV2", + "nameLocation": "1477:13:181", + "scope": 79290, + "visibility": "public" + }, + { + "id": 79026, + "nodeType": "StructDefinition", + "src": "2058:137:181", + "nodes": [], + "canonicalName": "TakeOrderConfigV2", + "members": [ + { + "constant": false, + "id": 79017, + "mutability": "mutable", + "name": "order", + "nameLocation": "2097:5:181", + "nodeType": "VariableDeclaration", + "scope": 79026, + "src": "2089:13:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OrderV2_$79042_storage_ptr", + "typeString": "struct OrderV2" + }, + "typeName": { + "id": 79016, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 79015, + "name": "OrderV2", + "nameLocations": [ + "2089:7:181" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 79042, + "src": "2089:7:181" + }, + "referencedDeclaration": 79042, + "src": "2089:7:181", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OrderV2_$79042_storage_ptr", + "typeString": "struct OrderV2" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 79019, + "mutability": "mutable", + "name": "inputIOIndex", + "nameLocation": "2116:12:181", + "nodeType": "VariableDeclaration", + "scope": 79026, + "src": "2108:20:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 79018, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2108:7:181", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 79021, + "mutability": "mutable", + "name": "outputIOIndex", + "nameLocation": "2142:13:181", + "nodeType": "VariableDeclaration", + "scope": 79026, + "src": "2134:21:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 79020, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2134:7:181", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 79025, + "mutability": "mutable", + "name": "signedContext", + "nameLocation": "2179:13:181", + "nodeType": "VariableDeclaration", + "scope": 79026, + "src": "2161:31:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_SignedContextV1_$55640_storage_$dyn_storage_ptr", + "typeString": "struct SignedContextV1[]" + }, + "typeName": { + "baseType": { + "id": 79023, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 79022, + "name": "SignedContextV1", + "nameLocations": [ + "2161:15:181" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 55640, + "src": "2161:15:181" + }, + "referencedDeclaration": 55640, + "src": "2161:15:181", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SignedContextV1_$55640_storage_ptr", + "typeString": "struct SignedContextV1" + } + }, + "id": 79024, + "nodeType": "ArrayTypeName", + "src": "2161:17:181", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_SignedContextV1_$55640_storage_$dyn_storage_ptr", + "typeString": "struct SignedContextV1[]" + } + }, + "visibility": "internal" + } + ], + "name": "TakeOrderConfigV2", + "nameLocation": "2065:17:181", + "scope": 79290, + "visibility": "public" + }, + { + "id": 79042, + "nodeType": "StructDefinition", + "src": "3181:128:181", + "nodes": [], + "canonicalName": "OrderV2", + "members": [ + { + "constant": false, + "id": 79028, + "mutability": "mutable", + "name": "owner", + "nameLocation": "3210:5:181", + "nodeType": "VariableDeclaration", + "scope": 79042, + "src": "3202:13:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 79027, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3202:7:181", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 79030, + "mutability": "mutable", + "name": "handleIO", + "nameLocation": "3226:8:181", + "nodeType": "VariableDeclaration", + "scope": 79042, + "src": "3221:13:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 79029, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3221:4:181", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 79033, + "mutability": "mutable", + "name": "evaluable", + "nameLocation": "3252:9:181", + "nodeType": "VariableDeclaration", + "scope": 79042, + "src": "3240:21:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EvaluableV2_$55632_storage_ptr", + "typeString": "struct EvaluableV2" + }, + "typeName": { + "id": 79032, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 79031, + "name": "EvaluableV2", + "nameLocations": [ + "3240:11:181" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 55632, + "src": "3240:11:181" + }, + "referencedDeclaration": 55632, + "src": "3240:11:181", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EvaluableV2_$55632_storage_ptr", + "typeString": "struct EvaluableV2" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 79037, + "mutability": "mutable", + "name": "validInputs", + "nameLocation": "3272:11:181", + "nodeType": "VariableDeclaration", + "scope": 79042, + "src": "3267:16:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_IO_$78658_storage_$dyn_storage_ptr", + "typeString": "struct IO[]" + }, + "typeName": { + "baseType": { + "id": 79035, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 79034, + "name": "IO", + "nameLocations": [ + "3267:2:181" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 78658, + "src": "3267:2:181" + }, + "referencedDeclaration": 78658, + "src": "3267:2:181", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IO_$78658_storage_ptr", + "typeString": "struct IO" + } + }, + "id": 79036, + "nodeType": "ArrayTypeName", + "src": "3267:4:181", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_IO_$78658_storage_$dyn_storage_ptr", + "typeString": "struct IO[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 79041, + "mutability": "mutable", + "name": "validOutputs", + "nameLocation": "3294:12:181", + "nodeType": "VariableDeclaration", + "scope": 79042, + "src": "3289:17:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_IO_$78658_storage_$dyn_storage_ptr", + "typeString": "struct IO[]" + }, + "typeName": { + "baseType": { + "id": 79039, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 79038, + "name": "IO", + "nameLocations": [ + "3289:2:181" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 78658, + "src": "3289:2:181" + }, + "referencedDeclaration": 78658, + "src": "3289:2:181", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IO_$78658_storage_ptr", + "typeString": "struct IO" + } + }, + "id": 79040, + "nodeType": "ArrayTypeName", + "src": "3289:4:181", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_IO_$78658_storage_$dyn_storage_ptr", + "typeString": "struct IO[]" + } + }, + "visibility": "internal" + } + ], + "name": "OrderV2", + "nameLocation": "3188:7:181", + "scope": 79290, + "visibility": "public" + }, + { + "id": 79055, + "nodeType": "StructDefinition", + "src": "4287:157:181", + "nodes": [], + "canonicalName": "TakeOrdersConfigV2", + "members": [ + { + "constant": false, + "id": 79044, + "mutability": "mutable", + "name": "minimumInput", + "nameLocation": "4327:12:181", + "nodeType": "VariableDeclaration", + "scope": 79055, + "src": "4319:20:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 79043, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4319:7:181", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 79046, + "mutability": "mutable", + "name": "maximumInput", + "nameLocation": "4353:12:181", + "nodeType": "VariableDeclaration", + "scope": 79055, + "src": "4345:20:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 79045, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4345:7:181", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 79048, + "mutability": "mutable", + "name": "maximumIORatio", + "nameLocation": "4379:14:181", + "nodeType": "VariableDeclaration", + "scope": 79055, + "src": "4371:22:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 79047, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4371:7:181", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 79052, + "mutability": "mutable", + "name": "orders", + "nameLocation": "4419:6:181", + "nodeType": "VariableDeclaration", + "scope": 79055, + "src": "4399:26:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_TakeOrderConfigV2_$79026_storage_$dyn_storage_ptr", + "typeString": "struct TakeOrderConfigV2[]" + }, + "typeName": { + "baseType": { + "id": 79050, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 79049, + "name": "TakeOrderConfigV2", + "nameLocations": [ + "4399:17:181" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 79026, + "src": "4399:17:181" + }, + "referencedDeclaration": 79026, + "src": "4399:17:181", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TakeOrderConfigV2_$79026_storage_ptr", + "typeString": "struct TakeOrderConfigV2" + } + }, + "id": 79051, + "nodeType": "ArrayTypeName", + "src": "4399:19:181", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_TakeOrderConfigV2_$79026_storage_$dyn_storage_ptr", + "typeString": "struct TakeOrderConfigV2[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 79054, + "mutability": "mutable", + "name": "data", + "nameLocation": "4437:4:181", + "nodeType": "VariableDeclaration", + "scope": 79055, + "src": "4431:10:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 79053, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4431:5:181", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "name": "TakeOrdersConfigV2", + "nameLocation": "4294:18:181", + "scope": 79290, + "visibility": "public" + }, + { + "id": 79289, + "nodeType": "ContractDefinition", + "src": "13147:18447:181", + "nodes": [ + { + "id": 79069, + "nodeType": "ErrorDefinition", + "src": "13456:72:181", + "nodes": [], + "documentation": { + "id": 79061, + "nodeType": "StructuredDocumentation", + "src": "13221:230:181", + "text": "MUST be thrown by `deposit` if the amount is zero.\n @param sender `msg.sender` depositing tokens.\n @param token The token being deposited.\n @param vaultId The vault ID the tokens are being deposited under." + }, + "errorSelector": "40e97a5e", + "name": "ZeroDepositAmount", + "nameLocation": "13462:17:181", + "parameters": { + "id": 79068, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 79063, + "mutability": "mutable", + "name": "sender", + "nameLocation": "13488:6:181", + "nodeType": "VariableDeclaration", + "scope": 79069, + "src": "13480:14:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 79062, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13480:7:181", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 79065, + "mutability": "mutable", + "name": "token", + "nameLocation": "13504:5:181", + "nodeType": "VariableDeclaration", + "scope": 79069, + "src": "13496:13:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 79064, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13496:7:181", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 79067, + "mutability": "mutable", + "name": "vaultId", + "nameLocation": "13519:7:181", + "nodeType": "VariableDeclaration", + "scope": 79069, + "src": "13511:15:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 79066, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13511:7:181", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13479:48:181" + } + }, + { + "id": 79078, + "nodeType": "ErrorDefinition", + "src": "13934:79:181", + "nodes": [], + "documentation": { + "id": 79070, + "nodeType": "StructuredDocumentation", + "src": "13534:395:181", + "text": "MUST be thrown by `withdraw` if the amount _requested_ to withdraw is\n zero. The withdrawal MAY still not move any tokens if the vault balance\n is zero, or the withdrawal is used to repay a flash loan.\n @param sender `msg.sender` withdrawing tokens.\n @param token The token being withdrawn.\n @param vaultId The vault ID the tokens are being withdrawn from." + }, + "errorSelector": "f7a898f6", + "name": "ZeroWithdrawTargetAmount", + "nameLocation": "13940:24:181", + "parameters": { + "id": 79077, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 79072, + "mutability": "mutable", + "name": "sender", + "nameLocation": "13973:6:181", + "nodeType": "VariableDeclaration", + "scope": 79078, + "src": "13965:14:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 79071, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13965:7:181", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 79074, + "mutability": "mutable", + "name": "token", + "nameLocation": "13989:5:181", + "nodeType": "VariableDeclaration", + "scope": 79078, + "src": "13981:13:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 79073, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13981:7:181", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 79076, + "mutability": "mutable", + "name": "vaultId", + "nameLocation": "14004:7:181", + "nodeType": "VariableDeclaration", + "scope": 79078, + "src": "13996:15:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 79075, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13996:7:181", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13964:48:181" + } + }, + { + "id": 79081, + "nodeType": "ErrorDefinition", + "src": "14100:23:181", + "nodes": [], + "documentation": { + "id": 79079, + "nodeType": "StructuredDocumentation", + "src": "14019:76:181", + "text": "MUST be thrown by `addOrder` if the order has no associated calculation." + }, + "errorSelector": "b3fc422c", + "name": "OrderNoSources", + "nameLocation": "14106:14:181", + "parameters": { + "id": 79080, + "nodeType": "ParameterList", + "parameters": [], + "src": "14120:2:181" + } + }, + { + "id": 79084, + "nodeType": "ErrorDefinition", + "src": "14208:24:181", + "nodes": [], + "documentation": { + "id": 79082, + "nodeType": "StructuredDocumentation", + "src": "14129:74:181", + "text": "MUST be thrown by `addOrder` if the order has no associated handle IO." + }, + "errorSelector": "f209c2f4", + "name": "OrderNoHandleIO", + "nameLocation": "14214:15:181", + "parameters": { + "id": 79083, + "nodeType": "ParameterList", + "parameters": [], + "src": "14229:2:181" + } + }, + { + "id": 79087, + "nodeType": "ErrorDefinition", + "src": "14303:22:181", + "nodes": [], + "documentation": { + "id": 79085, + "nodeType": "StructuredDocumentation", + "src": "14238:60:181", + "text": "MUST be thrown by `addOrder` if the order has no inputs." + }, + "errorSelector": "6c44ef8f", + "name": "OrderNoInputs", + "nameLocation": "14309:13:181", + "parameters": { + "id": 79086, + "nodeType": "ParameterList", + "parameters": [], + "src": "14322:2:181" + } + }, + { + "id": 79090, + "nodeType": "ErrorDefinition", + "src": "14397:23:181", + "nodes": [], + "documentation": { + "id": 79088, + "nodeType": "StructuredDocumentation", + "src": "14331:61:181", + "text": "MUST be thrown by `addOrder` if the order has no outputs." + }, + "errorSelector": "540e5f0b", + "name": "OrderNoOutputs", + "nameLocation": "14403:14:181", + "parameters": { + "id": 79089, + "nodeType": "ParameterList", + "parameters": [], + "src": "14417:2:181" + } + }, + { + "id": 79101, + "nodeType": "EventDefinition", + "src": "14754:78:181", + "nodes": [], + "anonymous": false, + "documentation": { + "id": 79091, + "nodeType": "StructuredDocumentation", + "src": "14426:323:181", + "text": "Some tokens have been deposited to a vault.\n @param sender `msg.sender` depositing tokens. Delegated deposits are NOT\n supported.\n @param token The token being deposited.\n @param vaultId The vault ID the tokens are being deposited under.\n @param amount The amount of tokens deposited." + }, + "eventSelector": "dcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7", + "name": "Deposit", + "nameLocation": "14760:7:181", + "parameters": { + "id": 79100, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 79093, + "indexed": false, + "mutability": "mutable", + "name": "sender", + "nameLocation": "14776:6:181", + "nodeType": "VariableDeclaration", + "scope": 79101, + "src": "14768:14:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 79092, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14768:7:181", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 79095, + "indexed": false, + "mutability": "mutable", + "name": "token", + "nameLocation": "14792:5:181", + "nodeType": "VariableDeclaration", + "scope": 79101, + "src": "14784:13:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 79094, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14784:7:181", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 79097, + "indexed": false, + "mutability": "mutable", + "name": "vaultId", + "nameLocation": "14807:7:181", + "nodeType": "VariableDeclaration", + "scope": 79101, + "src": "14799:15:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 79096, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14799:7:181", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 79099, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nameLocation": "14824:6:181", + "nodeType": "VariableDeclaration", + "scope": 79101, + "src": "14816:14:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 79098, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14816:7:181", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14767:64:181" + } + }, + { + "id": 79114, + "nodeType": "EventDefinition", + "src": "15454:101:181", + "nodes": [], + "anonymous": false, + "documentation": { + "id": 79102, + "nodeType": "StructuredDocumentation", + "src": "14838:611:181", + "text": "Some tokens have been withdrawn from a vault.\n @param sender `msg.sender` withdrawing tokens. Delegated withdrawals are\n NOT supported.\n @param token The token being withdrawn.\n @param vaultId The vault ID the tokens are being withdrawn from.\n @param targetAmount The amount of tokens requested to withdraw.\n @param amount The amount of tokens withdrawn, can be less than the\n target amount if the vault does not have the funds available to cover\n the target amount. For example an active order might move tokens before\n the withdraw completes." + }, + "eventSelector": "ebff2602b3f468259e1e99f613fed6691f3a6526effe6ef3e768ba7ae7a36c4f", + "name": "Withdraw", + "nameLocation": "15460:8:181", + "parameters": { + "id": 79113, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 79104, + "indexed": false, + "mutability": "mutable", + "name": "sender", + "nameLocation": "15477:6:181", + "nodeType": "VariableDeclaration", + "scope": 79114, + "src": "15469:14:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 79103, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15469:7:181", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 79106, + "indexed": false, + "mutability": "mutable", + "name": "token", + "nameLocation": "15493:5:181", + "nodeType": "VariableDeclaration", + "scope": 79114, + "src": "15485:13:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 79105, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15485:7:181", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 79108, + "indexed": false, + "mutability": "mutable", + "name": "vaultId", + "nameLocation": "15508:7:181", + "nodeType": "VariableDeclaration", + "scope": 79114, + "src": "15500:15:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 79107, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15500:7:181", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 79110, + "indexed": false, + "mutability": "mutable", + "name": "targetAmount", + "nameLocation": "15525:12:181", + "nodeType": "VariableDeclaration", + "scope": 79114, + "src": "15517:20:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 79109, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15517:7:181", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 79112, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nameLocation": "15547:6:181", + "nodeType": "VariableDeclaration", + "scope": 79114, + "src": "15539:14:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 79111, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15539:7:181", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "15468:86:181" + } + }, + { + "id": 79127, + "nodeType": "EventDefinition", + "src": "16459:107:181", + "nodes": [], + "anonymous": false, + "documentation": { + "id": 79115, + "nodeType": "StructuredDocumentation", + "src": "15561:893:181", + "text": "An order has been added to the orderbook. The order is permanently and\n always active according to its expression until/unless it is removed.\n @param sender `msg.sender` adding the order and is owner of the order.\n @param expressionDeployer The expression deployer that ran the integrity\n check for this order. This is NOT included in the `Order` itself but is\n important for offchain processes to ignore untrusted deployers before\n interacting with them.\n @param order The newly added order. MUST be handed back as-is when\n clearing orders and contains derived information in addition to the order\n config that was provided by the order owner.\n @param orderHash The hash of the order as it is recorded onchain. Only\n the hash is stored in Orderbook storage to avoid paying gas to store the\n entire order." + }, + "eventSelector": "6fa57e1a7a1fbbf3623af2b2025fcd9a5e7e4e31a2a6ec7523445f18e9c50ebf", + "name": "AddOrder", + "nameLocation": "16465:8:181", + "parameters": { + "id": 79126, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 79117, + "indexed": false, + "mutability": "mutable", + "name": "sender", + "nameLocation": "16482:6:181", + "nodeType": "VariableDeclaration", + "scope": 79127, + "src": "16474:14:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 79116, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16474:7:181", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 79120, + "indexed": false, + "mutability": "mutable", + "name": "expressionDeployer", + "nameLocation": "16512:18:181", + "nodeType": "VariableDeclaration", + "scope": 79127, + "src": "16490:40:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IExpressionDeployerV3_$55986", + "typeString": "contract IExpressionDeployerV3" + }, + "typeName": { + "id": 79119, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 79118, + "name": "IExpressionDeployerV3", + "nameLocations": [ + "16490:21:181" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 55986, + "src": "16490:21:181" + }, + "referencedDeclaration": 55986, + "src": "16490:21:181", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IExpressionDeployerV3_$55986", + "typeString": "contract IExpressionDeployerV3" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 79123, + "indexed": false, + "mutability": "mutable", + "name": "order", + "nameLocation": "16540:5:181", + "nodeType": "VariableDeclaration", + "scope": 79127, + "src": "16532:13:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", + "typeString": "struct OrderV2" + }, + "typeName": { + "id": 79122, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 79121, + "name": "OrderV2", + "nameLocations": [ + "16532:7:181" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 79042, + "src": "16532:7:181" + }, + "referencedDeclaration": 79042, + "src": "16532:7:181", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OrderV2_$79042_storage_ptr", + "typeString": "struct OrderV2" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 79125, + "indexed": false, + "mutability": "mutable", + "name": "orderHash", + "nameLocation": "16555:9:181", + "nodeType": "VariableDeclaration", + "scope": 79127, + "src": "16547:17:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 79124, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "16547:7:181", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "16473:92:181" + } + }, + { + "id": 79137, + "nodeType": "EventDefinition", + "src": "16885:68:181", + "nodes": [], + "anonymous": false, + "documentation": { + "id": 79128, + "nodeType": "StructuredDocumentation", + "src": "16572:308:181", + "text": "An order has been removed from the orderbook. This effectively\n deactivates it. Orders can be added again after removal.\n @param sender `msg.sender` removing the order and is owner of the order.\n @param order The removed order.\n @param orderHash The hash of the removed order." + }, + "eventSelector": "74037e398a4a92c9c1c49ac01c1dabd7f71165fbb4810b72c068f08edd192448", + "name": "RemoveOrder", + "nameLocation": "16891:11:181", + "parameters": { + "id": 79136, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 79130, + "indexed": false, + "mutability": "mutable", + "name": "sender", + "nameLocation": "16911:6:181", + "nodeType": "VariableDeclaration", + "scope": 79137, + "src": "16903:14:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 79129, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16903:7:181", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 79133, + "indexed": false, + "mutability": "mutable", + "name": "order", + "nameLocation": "16927:5:181", + "nodeType": "VariableDeclaration", + "scope": 79137, + "src": "16919:13:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", + "typeString": "struct OrderV2" + }, + "typeName": { + "id": 79132, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 79131, + "name": "OrderV2", + "nameLocations": [ + "16919:7:181" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 79042, + "src": "16919:7:181" + }, + "referencedDeclaration": 79042, + "src": "16919:7:181", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OrderV2_$79042_storage_ptr", + "typeString": "struct OrderV2" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 79135, + "indexed": false, + "mutability": "mutable", + "name": "orderHash", + "nameLocation": "16942:9:181", + "nodeType": "VariableDeclaration", + "scope": 79137, + "src": "16934:17:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 79134, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "16934:7:181", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "16902:50:181" + } + }, + { + "id": 79149, + "nodeType": "EventDefinition", + "src": "17597:89:181", + "nodes": [], + "anonymous": false, + "documentation": { + "id": 79138, + "nodeType": "StructuredDocumentation", + "src": "16959:633:181", + "text": "Some order has been taken by `msg.sender`. This is the same as them\n placing inverse orders then immediately clearing them all, but costs less\n gas and is more convenient and reliable. Analogous to a market buy\n against the specified orders. Each order that is matched within a the\n `takeOrders` loop emits its own individual event.\n @param sender `msg.sender` taking the orders.\n @param config All config defining the orders to attempt to take.\n @param input The input amount from the perspective of sender.\n @param output The output amount from the perspective of sender." + }, + "eventSelector": "219a030b7ae56e7bea2baab709a4a45dc174a1f85e57730e5cb395bc32962542", + "name": "TakeOrder", + "nameLocation": "17603:9:181", + "parameters": { + "id": 79148, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 79140, + "indexed": false, + "mutability": "mutable", + "name": "sender", + "nameLocation": "17621:6:181", + "nodeType": "VariableDeclaration", + "scope": 79149, + "src": "17613:14:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 79139, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17613:7:181", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 79143, + "indexed": false, + "mutability": "mutable", + "name": "config", + "nameLocation": "17647:6:181", + "nodeType": "VariableDeclaration", + "scope": 79149, + "src": "17629:24:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TakeOrderConfigV2_$79026_memory_ptr", + "typeString": "struct TakeOrderConfigV2" + }, + "typeName": { + "id": 79142, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 79141, + "name": "TakeOrderConfigV2", + "nameLocations": [ + "17629:17:181" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 79026, + "src": "17629:17:181" + }, + "referencedDeclaration": 79026, + "src": "17629:17:181", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TakeOrderConfigV2_$79026_storage_ptr", + "typeString": "struct TakeOrderConfigV2" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 79145, + "indexed": false, + "mutability": "mutable", + "name": "input", + "nameLocation": "17663:5:181", + "nodeType": "VariableDeclaration", + "scope": 79149, + "src": "17655:13:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 79144, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17655:7:181", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 79147, + "indexed": false, + "mutability": "mutable", + "name": "output", + "nameLocation": "17678:6:181", + "nodeType": "VariableDeclaration", + "scope": 79149, + "src": "17670:14:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 79146, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17670:7:181", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "17612:73:181" + } + }, + { + "id": 79158, + "nodeType": "EventDefinition", + "src": "18126:70:181", + "nodes": [], + "anonymous": false, + "documentation": { + "id": 79150, + "nodeType": "StructuredDocumentation", + "src": "17692:429:181", + "text": "Emitted when attempting to match an order that either never existed or\n was removed. An event rather than an error so that we allow attempting\n many orders in a loop and NOT rollback on \"best effort\" basis to clear.\n @param sender `msg.sender` clearing the order that wasn't found.\n @param owner Owner of the order that was not found.\n @param orderHash Hash of the order that was not found." + }, + "eventSelector": "b70c12fa453793fa6818ec07c91e74363a47aa6a6829dcd9533937fdf30314f3", + "name": "OrderNotFound", + "nameLocation": "18132:13:181", + "parameters": { + "id": 79157, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 79152, + "indexed": false, + "mutability": "mutable", + "name": "sender", + "nameLocation": "18154:6:181", + "nodeType": "VariableDeclaration", + "scope": 79158, + "src": "18146:14:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 79151, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18146:7:181", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 79154, + "indexed": false, + "mutability": "mutable", + "name": "owner", + "nameLocation": "18170:5:181", + "nodeType": "VariableDeclaration", + "scope": 79158, + "src": "18162:13:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 79153, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18162:7:181", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 79156, + "indexed": false, + "mutability": "mutable", + "name": "orderHash", + "nameLocation": "18185:9:181", + "nodeType": "VariableDeclaration", + "scope": 79158, + "src": "18177:17:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 79155, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "18177:7:181", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "18145:50:181" + } + }, + { + "id": 79167, + "nodeType": "EventDefinition", + "src": "18626:72:181", + "nodes": [], + "anonymous": false, + "documentation": { + "id": 79159, + "nodeType": "StructuredDocumentation", + "src": "18202:419:181", + "text": "Emitted when an order evaluates to a zero amount. An event rather than an\n error so that we allow attempting many orders in a loop and NOT rollback\n on a \"best effort\" basis to clear.\n @param sender `msg.sender` clearing the order that had a 0 amount.\n @param owner Owner of the order that evaluated to a 0 amount.\n @param orderHash Hash of the order that evaluated to a 0 amount." + }, + "eventSelector": "500b713857325f9e6dcb52ae832eca9109d107ed1aae9cb4928b4c1e13f051aa", + "name": "OrderZeroAmount", + "nameLocation": "18632:15:181", + "parameters": { + "id": 79166, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 79161, + "indexed": false, + "mutability": "mutable", + "name": "sender", + "nameLocation": "18656:6:181", + "nodeType": "VariableDeclaration", + "scope": 79167, + "src": "18648:14:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 79160, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18648:7:181", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 79163, + "indexed": false, + "mutability": "mutable", + "name": "owner", + "nameLocation": "18672:5:181", + "nodeType": "VariableDeclaration", + "scope": 79167, + "src": "18664:13:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 79162, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18664:7:181", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 79165, + "indexed": false, + "mutability": "mutable", + "name": "orderHash", + "nameLocation": "18687:9:181", + "nodeType": "VariableDeclaration", + "scope": 79167, + "src": "18679:17:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 79164, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "18679:7:181", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "18647:50:181" + } + }, + { + "id": 79176, + "nodeType": "EventDefinition", + "src": "19162:77:181", + "nodes": [], + "anonymous": false, + "documentation": { + "id": 79168, + "nodeType": "StructuredDocumentation", + "src": "18704:453:181", + "text": "Emitted when an order evaluates to a ratio exceeding the counterparty's\n maximum limit. An error rather than an error so that we allow attempting\n many orders in a loop and NOT rollback on a \"best effort\" basis to clear.\n @param sender `msg.sender` clearing the order that had an excess ratio.\n @param owner Owner of the order that had an excess ratio.\n @param orderHash Hash of the order that had an excess ratio." + }, + "eventSelector": "e3151dc8cb7a54ffc4baabd28c1f241c94d510b5e5b502491ac3cad6c16316d5", + "name": "OrderExceedsMaxRatio", + "nameLocation": "19168:20:181", + "parameters": { + "id": 79175, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 79170, + "indexed": false, + "mutability": "mutable", + "name": "sender", + "nameLocation": "19197:6:181", + "nodeType": "VariableDeclaration", + "scope": 79176, + "src": "19189:14:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 79169, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19189:7:181", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 79172, + "indexed": false, + "mutability": "mutable", + "name": "owner", + "nameLocation": "19213:5:181", + "nodeType": "VariableDeclaration", + "scope": 79176, + "src": "19205:13:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 79171, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19205:7:181", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 79174, + "indexed": false, + "mutability": "mutable", + "name": "orderHash", + "nameLocation": "19228:9:181", + "nodeType": "VariableDeclaration", + "scope": 79176, + "src": "19220:17:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 79173, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "19220:7:181", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "19188:50:181" + } + }, + { + "id": 79190, + "nodeType": "EventDefinition", + "src": "19584:81:181", + "nodes": [], + "anonymous": false, + "documentation": { + "id": 79177, + "nodeType": "StructuredDocumentation", + "src": "19245:334:181", + "text": "Emitted before two orders clear. Covers both orders and includes all the\n state before anything is calculated.\n @param sender `msg.sender` clearing both orders.\n @param alice One of the orders.\n @param bob The other order.\n @param clearConfig Additional config required to process the clearance." + }, + "eventSelector": "d153812deb929a6e4378f6f8cf61d010470840bf2e736f43fb2275803958bfa2", + "name": "Clear", + "nameLocation": "19590:5:181", + "parameters": { + "id": 79189, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 79179, + "indexed": false, + "mutability": "mutable", + "name": "sender", + "nameLocation": "19604:6:181", + "nodeType": "VariableDeclaration", + "scope": 79190, + "src": "19596:14:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 79178, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19596:7:181", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 79182, + "indexed": false, + "mutability": "mutable", + "name": "alice", + "nameLocation": "19620:5:181", + "nodeType": "VariableDeclaration", + "scope": 79190, + "src": "19612:13:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", + "typeString": "struct OrderV2" + }, + "typeName": { + "id": 79181, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 79180, + "name": "OrderV2", + "nameLocations": [ + "19612:7:181" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 79042, + "src": "19612:7:181" + }, + "referencedDeclaration": 79042, + "src": "19612:7:181", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OrderV2_$79042_storage_ptr", + "typeString": "struct OrderV2" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 79185, + "indexed": false, + "mutability": "mutable", + "name": "bob", + "nameLocation": "19635:3:181", + "nodeType": "VariableDeclaration", + "scope": 79190, + "src": "19627:11:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", + "typeString": "struct OrderV2" + }, + "typeName": { + "id": 79184, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 79183, + "name": "OrderV2", + "nameLocations": [ + "19627:7:181" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 79042, + "src": "19627:7:181" + }, + "referencedDeclaration": 79042, + "src": "19627:7:181", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OrderV2_$79042_storage_ptr", + "typeString": "struct OrderV2" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 79188, + "indexed": false, + "mutability": "mutable", + "name": "clearConfig", + "nameLocation": "19652:11:181", + "nodeType": "VariableDeclaration", + "scope": 79190, + "src": "19640:23:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ClearConfig_$78728_memory_ptr", + "typeString": "struct ClearConfig" + }, + "typeName": { + "id": 79187, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 79186, + "name": "ClearConfig", + "nameLocations": [ + "19640:11:181" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 78728, + "src": "19640:11:181" + }, + "referencedDeclaration": 78728, + "src": "19640:11:181", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ClearConfig_$78728_storage_ptr", + "typeString": "struct ClearConfig" + } + }, + "visibility": "internal" + } + ], + "src": "19595:69:181" + } + }, + { + "id": 79198, + "nodeType": "EventDefinition", + "src": "19944:68:181", + "nodes": [], + "anonymous": false, + "documentation": { + "id": 79191, + "nodeType": "StructuredDocumentation", + "src": "19671:268:181", + "text": "Emitted after two orders clear. Includes all final state changes in the\n vault balances, including the clearer's vaults.\n @param sender `msg.sender` clearing the order.\n @param clearStateChange The final vault state changes from the clearance." + }, + "eventSelector": "3f20e55919cca701abb2a40ab72542b25ea7eed63a50f979dd2cd3231e5f488d", + "name": "AfterClear", + "nameLocation": "19950:10:181", + "parameters": { + "id": 79197, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 79193, + "indexed": false, + "mutability": "mutable", + "name": "sender", + "nameLocation": "19969:6:181", + "nodeType": "VariableDeclaration", + "scope": 79198, + "src": "19961:14:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 79192, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19961:7:181", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 79196, + "indexed": false, + "mutability": "mutable", + "name": "clearStateChange", + "nameLocation": "19994:16:181", + "nodeType": "VariableDeclaration", + "scope": 79198, + "src": "19977:33:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ClearStateChange_$78737_memory_ptr", + "typeString": "struct ClearStateChange" + }, + "typeName": { + "id": 79195, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 79194, + "name": "ClearStateChange", + "nameLocations": [ + "19977:16:181" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 78737, + "src": "19977:16:181" + }, + "referencedDeclaration": 78737, + "src": "19977:16:181", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ClearStateChange_$78737_storage_ptr", + "typeString": "struct ClearStateChange" + } + }, + "visibility": "internal" + } + ], + "src": "19960:51:181" + } + }, + { + "id": 79210, + "nodeType": "FunctionDefinition", + "src": "20292:104:181", + "nodes": [], + "documentation": { + "id": 79199, + "nodeType": "StructuredDocumentation", + "src": "20018:269:181", + "text": "Get the current balance of a vault for a given owner, token and vault ID.\n @param owner The owner of the vault.\n @param token The token the vault is for.\n @param id The vault ID to read.\n @return balance The current balance of the vault." + }, + "functionSelector": "d97b2e48", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "vaultBalance", + "nameLocation": "20301:12:181", + "parameters": { + "id": 79206, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 79201, + "mutability": "mutable", + "name": "owner", + "nameLocation": "20322:5:181", + "nodeType": "VariableDeclaration", + "scope": 79210, + "src": "20314:13:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 79200, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20314:7:181", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 79203, + "mutability": "mutable", + "name": "token", + "nameLocation": "20337:5:181", + "nodeType": "VariableDeclaration", + "scope": 79210, + "src": "20329:13:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 79202, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20329:7:181", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 79205, + "mutability": "mutable", + "name": "id", + "nameLocation": "20352:2:181", + "nodeType": "VariableDeclaration", + "scope": 79210, + "src": "20344:10:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 79204, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20344:7:181", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "20313:42:181" + }, + "returnParameters": { + "id": 79209, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 79208, + "mutability": "mutable", + "name": "balance", + "nameLocation": "20387:7:181", + "nodeType": "VariableDeclaration", + "scope": 79210, + "src": "20379:15:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 79207, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20379:7:181", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "20378:17:181" + }, + "scope": 79289, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 79220, + "nodeType": "FunctionDefinition", + "src": "22006:74:181", + "nodes": [], + "documentation": { + "id": 79211, + "nodeType": "StructuredDocumentation", + "src": "21379:622:181", + "text": "Vault IDs are namespaced by the token address so there is no risk of\n collision between tokens. For example, vault ID 0 for token A is\n completely different to vault ID 0 for token B.\n `0` amount deposits are unsupported as underlying token contracts\n handle `0` value transfers differently and this would be a source of\n confusion. The order book MUST revert with `ZeroDepositAmount` if the\n amount is zero.\n @param token The token to deposit.\n @param vaultId The vault ID to deposit under.\n @param amount The amount of tokens to deposit." + }, + "functionSelector": "0efe6a8b", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "deposit", + "nameLocation": "22015:7:181", + "parameters": { + "id": 79218, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 79213, + "mutability": "mutable", + "name": "token", + "nameLocation": "22031:5:181", + "nodeType": "VariableDeclaration", + "scope": 79220, + "src": "22023:13:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 79212, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "22023:7:181", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 79215, + "mutability": "mutable", + "name": "vaultId", + "nameLocation": "22046:7:181", + "nodeType": "VariableDeclaration", + "scope": 79220, + "src": "22038:15:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 79214, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "22038:7:181", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 79217, + "mutability": "mutable", + "name": "amount", + "nameLocation": "22063:6:181", + "nodeType": "VariableDeclaration", + "scope": 79220, + "src": "22055:14:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 79216, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "22055:7:181", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "22022:48:181" + }, + "returnParameters": { + "id": 79219, + "nodeType": "ParameterList", + "parameters": [], + "src": "22079:0:181" + }, + "scope": 79289, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 79230, + "nodeType": "FunctionDefinition", + "src": "23056:81:181", + "nodes": [], + "documentation": { + "id": 79221, + "nodeType": "StructuredDocumentation", + "src": "22086:965:181", + "text": "Allows the sender to withdraw any tokens from their own vaults. If the\n withrawer has an active flash loan debt denominated in the same token\n being withdrawn then Orderbook will merely reduce the debt and NOT send\n the amount of tokens repaid to the flashloan debt.\n MUST revert if the amount _requested_ to withdraw is zero. The withdrawal\n MAY still not move any tokens (without revert) if the vault balance is\n zero, or the withdrawal is used to repay a flash loan, or due to any\n other internal accounting.\n @param token The token to withdraw.\n @param vaultId The vault ID to withdraw from.\n @param targetAmount The amount of tokens to attempt to withdraw. MAY\n result in fewer tokens withdrawn if the vault balance is lower than the\n target amount. MAY NOT be zero, the order book MUST revert with\n `ZeroWithdrawTargetAmount` if the amount is zero." + }, + "functionSelector": "b5c5f672", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "withdraw", + "nameLocation": "23065:8:181", + "parameters": { + "id": 79228, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 79223, + "mutability": "mutable", + "name": "token", + "nameLocation": "23082:5:181", + "nodeType": "VariableDeclaration", + "scope": 79230, + "src": "23074:13:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 79222, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "23074:7:181", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 79225, + "mutability": "mutable", + "name": "vaultId", + "nameLocation": "23097:7:181", + "nodeType": "VariableDeclaration", + "scope": 79230, + "src": "23089:15:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 79224, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "23089:7:181", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 79227, + "mutability": "mutable", + "name": "targetAmount", + "nameLocation": "23114:12:181", + "nodeType": "VariableDeclaration", + "scope": 79230, + "src": "23106:20:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 79226, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "23106:7:181", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "23073:54:181" + }, + "returnParameters": { + "id": 79229, + "nodeType": "ParameterList", + "parameters": [], + "src": "23136:0:181" + }, + "scope": 79289, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 79239, + "nodeType": "FunctionDefinition", + "src": "24497:86:181", + "nodes": [], + "documentation": { + "id": 79231, + "nodeType": "StructuredDocumentation", + "src": "23143:1349:181", + "text": "Given an order config, deploys the expression and builds the full `Order`\n for the config, then records it as an active order. Delegated adding an\n order is NOT supported. The `msg.sender` that adds an order is ALWAYS\n the owner and all resulting vault movements are their own.\n MUST revert with `OrderNoSources` if the order has no associated\n calculation and `OrderNoHandleIO` if the order has no handle IO\n entrypoint. The calculation MUST return at least two values from\n evaluation, the maximum amount and the IO ratio. The handle IO entrypoint\n SHOULD return zero values from evaluation. Either MAY revert during\n evaluation on the interpreter, which MUST prevent the order from\n clearing.\n MUST revert with `OrderNoInputs` if the order has no inputs.\n MUST revert with `OrderNoOutputs` if the order has no outputs.\n If the order already exists, the order book MUST NOT change state, which\n includes not emitting an event. Instead it MUST return false. If the\n order book modifies state it MUST emit an `AddOrder` event and return\n true.\n @param config All config required to build an `Order`.\n @return stateChanged True if the order was added, false if it already\n existed." + }, + "functionSelector": "847a1bc9", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "addOrder", + "nameLocation": "24506:8:181", + "parameters": { + "id": 79235, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 79234, + "mutability": "mutable", + "name": "config", + "nameLocation": "24538:6:181", + "nodeType": "VariableDeclaration", + "scope": 79239, + "src": "24515:29:181", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OrderConfigV2_$79014_calldata_ptr", + "typeString": "struct OrderConfigV2" + }, + "typeName": { + "id": 79233, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 79232, + "name": "OrderConfigV2", + "nameLocations": [ + "24515:13:181" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 79014, + "src": "24515:13:181" + }, + "referencedDeclaration": 79014, + "src": "24515:13:181", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OrderConfigV2_$79014_storage_ptr", + "typeString": "struct OrderConfigV2" + } + }, + "visibility": "internal" + } + ], + "src": "24514:31:181" + }, + "returnParameters": { + "id": 79238, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 79237, + "mutability": "mutable", + "name": "stateChanged", + "nameLocation": "24569:12:181", + "nodeType": "VariableDeclaration", + "scope": 79239, + "src": "24564:17:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 79236, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "24564:4:181", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "24563:19:181" + }, + "scope": 79289, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 79247, + "nodeType": "FunctionDefinition", + "src": "24771:76:181", + "nodes": [], + "documentation": { + "id": 79240, + "nodeType": "StructuredDocumentation", + "src": "24589:177:181", + "text": "Returns true if the order exists, false otherwise.\n @param orderHash The hash of the order to check.\n @return exists True if the order exists, false otherwise." + }, + "functionSelector": "2cb77e9f", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "orderExists", + "nameLocation": "24780:11:181", + "parameters": { + "id": 79243, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 79242, + "mutability": "mutable", + "name": "orderHash", + "nameLocation": "24800:9:181", + "nodeType": "VariableDeclaration", + "scope": 79247, + "src": "24792:17:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 79241, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "24792:7:181", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "24791:19:181" + }, + "returnParameters": { + "id": 79246, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 79245, + "mutability": "mutable", + "name": "exists", + "nameLocation": "24839:6:181", + "nodeType": "VariableDeclaration", + "scope": 79247, + "src": "24834:11:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 79244, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "24834:4:181", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "24833:13:181" + }, + "scope": 79289, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "id": 79256, + "nodeType": "FunctionDefinition", + "src": "25349:82:181", + "nodes": [], + "documentation": { + "id": 79248, + "nodeType": "StructuredDocumentation", + "src": "24853:491:181", + "text": "Order owner can remove their own orders. Delegated order removal is NOT\n supported and will revert. Removing an order multiple times or removing\n an order that never existed are valid, the event will be emitted and the\n transaction will complete with that order hash definitely, redundantly\n not live.\n @param order The `Order` data exactly as it was added.\n @return stateChanged True if the order was removed, false if it did not\n exist." + }, + "functionSelector": "e23746a3", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "removeOrder", + "nameLocation": "25358:11:181", + "parameters": { + "id": 79252, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 79251, + "mutability": "mutable", + "name": "order", + "nameLocation": "25387:5:181", + "nodeType": "VariableDeclaration", + "scope": 79256, + "src": "25370:22:181", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OrderV2_$79042_calldata_ptr", + "typeString": "struct OrderV2" + }, + "typeName": { + "id": 79250, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 79249, + "name": "OrderV2", + "nameLocations": [ + "25370:7:181" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 79042, + "src": "25370:7:181" + }, + "referencedDeclaration": 79042, + "src": "25370:7:181", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OrderV2_$79042_storage_ptr", + "typeString": "struct OrderV2" + } + }, + "visibility": "internal" + } + ], + "src": "25369:24:181" + }, + "returnParameters": { + "id": 79255, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 79254, + "mutability": "mutable", + "name": "stateChanged", + "nameLocation": "25417:12:181", + "nodeType": "VariableDeclaration", + "scope": 79256, + "src": "25412:17:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 79253, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "25412:4:181", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "25411:19:181" + }, + "scope": 79289, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 79267, + "nodeType": "FunctionDefinition", + "src": "28038:131:181", + "nodes": [], + "documentation": { + "id": 79257, + "nodeType": "StructuredDocumentation", + "src": "25437:2596:181", + "text": "Allows `msg.sender` to attempt to fill a list of orders in sequence\n without needing to place their own order and clear them. This works like\n a market buy but against a specific set of orders. Every order will\n looped over and calculated individually then filled maximally until the\n request input is reached for the `msg.sender`. The `msg.sender` is\n responsible for selecting the best orders at the time according to their\n criteria and MAY specify a maximum IO ratio to guard against an order\n spiking the ratio beyond what the `msg.sender` expected and is\n comfortable with. As orders may be removed and calculate their ratios\n dynamically, all issues fulfilling an order other than misconfiguration\n by the `msg.sender` are no-ops and DO NOT revert the transaction. This\n allows the `msg.sender` to optimistically provide a list of orders that\n they aren't sure will completely fill at a good price, and fallback to\n more reliable orders further down their list. Misconfiguration such as\n token mismatches are errors that revert as this is known and static at\n all times to the `msg.sender` so MUST be provided correctly. `msg.sender`\n MAY specify a minimum input that MUST be reached across all orders in the\n list, otherwise the transaction will revert, this MAY be set to zero.\n Exactly like withdraw, if there is an active flash loan for `msg.sender`\n they will have their outstanding loan reduced by the final input amount\n preferentially before sending any tokens. Notably this allows arb bots\n implemented as flash loan borrowers to connect orders against external\n liquidity directly by paying back the loan with a `takeOrders` call and\n outputting the result of the external trade.\n Rounding errors always favour the order never the `msg.sender`.\n @param config The constraints and list of orders to take, orders are\n processed sequentially in order as provided, there is NO ATTEMPT onchain\n to predict/filter/sort these orders other than evaluating them as\n provided. Inputs and outputs are from the perspective of `msg.sender`\n except for values specified by the orders themselves which are the from\n the perspective of that order.\n @return totalInput Total tokens sent to `msg.sender`, taken from order\n vaults processed.\n @return totalOutput Total tokens taken from `msg.sender` and distributed\n between vaults." + }, + "functionSelector": "8a44689c", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "takeOrders", + "nameLocation": "28047:10:181", + "parameters": { + "id": 79261, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 79260, + "mutability": "mutable", + "name": "config", + "nameLocation": "28086:6:181", + "nodeType": "VariableDeclaration", + "scope": 79267, + "src": "28058:34:181", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TakeOrdersConfigV2_$79055_calldata_ptr", + "typeString": "struct TakeOrdersConfigV2" + }, + "typeName": { + "id": 79259, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 79258, + "name": "TakeOrdersConfigV2", + "nameLocations": [ + "28058:18:181" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 79055, + "src": "28058:18:181" + }, + "referencedDeclaration": 79055, + "src": "28058:18:181", + "typeDescriptions": { + "typeIdentifier": "t_struct$_TakeOrdersConfigV2_$79055_storage_ptr", + "typeString": "struct TakeOrdersConfigV2" + } + }, + "visibility": "internal" + } + ], + "src": "28057:36:181" + }, + "returnParameters": { + "id": 79266, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 79263, + "mutability": "mutable", + "name": "totalInput", + "nameLocation": "28136:10:181", + "nodeType": "VariableDeclaration", + "scope": 79267, + "src": "28128:18:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 79262, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28128:7:181", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 79265, + "mutability": "mutable", + "name": "totalOutput", + "nameLocation": "28156:11:181", + "nodeType": "VariableDeclaration", + "scope": 79267, + "src": "28148:19:181", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 79264, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28148:7:181", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "28127:41:181" + }, + "scope": 79289, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "id": 79288, + "nodeType": "FunctionDefinition", + "src": "31358:234:181", + "nodes": [], + "documentation": { + "id": 79268, + "nodeType": "StructuredDocumentation", + "src": "28175:3178:181", + "text": "Allows `msg.sender` to match two live orders placed earlier by\n non-interactive parties and claim a bounty in the process. The clearer is\n free to select any two live orders on the order book for matching and as\n long as they have compatible tokens, ratios and amounts, the orders will\n clear. Clearing the orders DOES NOT remove them from the orderbook, they\n remain live until explicitly removed by their owner. Even if the input\n vault balances are completely emptied, the orders remain live until\n removed. This allows order owners to deploy a strategy over a long period\n of time and periodically top up the input vaults. Clearing two orders\n from the same owner is disallowed.\n Any mismatch in the ratios between the two orders will cause either more\n inputs than there are available outputs (transaction will revert) or less\n inputs than there are available outputs. In the latter case the excess\n outputs are given to the `msg.sender` of clear, to the vaults they\n specify in the clear config. This not only incentivises \"automatic\" clear\n calls for both alice and bob, but incentivises _prioritising greater\n ratio differences_ with a larger bounty. The second point is important\n because it implicitly prioritises orders that are further from the\n current market price, thus putting constant increasing pressure on the\n entire system the further it drifts from the norm, no matter how esoteric\n the individual order expressions and sizings might be.\n All else equal there are several factors that would impact how reliably\n some order clears relative to the wider market, such as:\n - Bounties are effectively percentages of cleared amounts so larger\n orders have larger bounties and cover gas costs more easily\n - High gas on the network means that orders are harder to clear\n profitably so the negative spread of the ratios will need to be larger\n - Complex and stateful expressions cost more gas to evalulate so the\n negative spread will need to be larger\n - Erratic behavior of the order owner could reduce the willingness of\n third parties to interact if it could result in wasted gas due to\n orders suddently being removed before clearance etc.\n - Dynamic and highly volatile words used in the expression could be\n ignored or low priority by clearers who want to be sure that they can\n accurately predict the ratios that they include in their clearance\n - Geopolitical issues such as sanctions and regulatory restrictions could\n cause issues for certain owners and clearers\n @param alice Some order to clear.\n @param bob Another order to clear.\n @param clearConfig Additional configuration for the clearance such as\n how to handle the bounty payment for the `msg.sender`.\n @param aliceSignedContext Optional signed context that is relevant to A.\n @param bobSignedContext Optional signed context that is relevant to B." + }, + "functionSelector": "9e18968b", + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "clear", + "nameLocation": "31367:5:181", + "parameters": { + "id": 79286, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 79271, + "mutability": "mutable", + "name": "alice", + "nameLocation": "31397:5:181", + "nodeType": "VariableDeclaration", + "scope": 79288, + "src": "31382:20:181", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", + "typeString": "struct OrderV2" + }, + "typeName": { + "id": 79270, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 79269, + "name": "OrderV2", + "nameLocations": [ + "31382:7:181" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 79042, + "src": "31382:7:181" + }, + "referencedDeclaration": 79042, + "src": "31382:7:181", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OrderV2_$79042_storage_ptr", + "typeString": "struct OrderV2" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 79274, + "mutability": "mutable", + "name": "bob", + "nameLocation": "31427:3:181", + "nodeType": "VariableDeclaration", + "scope": 79288, + "src": "31412:18:181", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", + "typeString": "struct OrderV2" + }, + "typeName": { + "id": 79273, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 79272, + "name": "OrderV2", + "nameLocations": [ + "31412:7:181" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 79042, + "src": "31412:7:181" + }, + "referencedDeclaration": 79042, + "src": "31412:7:181", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OrderV2_$79042_storage_ptr", + "typeString": "struct OrderV2" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 79277, + "mutability": "mutable", + "name": "clearConfig", + "nameLocation": "31461:11:181", + "nodeType": "VariableDeclaration", + "scope": 79288, + "src": "31440:32:181", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ClearConfig_$78728_calldata_ptr", + "typeString": "struct ClearConfig" + }, + "typeName": { + "id": 79276, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 79275, + "name": "ClearConfig", + "nameLocations": [ + "31440:11:181" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 78728, + "src": "31440:11:181" + }, + "referencedDeclaration": 78728, + "src": "31440:11:181", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ClearConfig_$78728_storage_ptr", + "typeString": "struct ClearConfig" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 79281, + "mutability": "mutable", + "name": "aliceSignedContext", + "nameLocation": "31507:18:181", + "nodeType": "VariableDeclaration", + "scope": 79288, + "src": "31482:43:181", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_SignedContextV1_$55640_memory_ptr_$dyn_memory_ptr", + "typeString": "struct SignedContextV1[]" + }, + "typeName": { + "baseType": { + "id": 79279, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 79278, + "name": "SignedContextV1", + "nameLocations": [ + "31482:15:181" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 55640, + "src": "31482:15:181" + }, + "referencedDeclaration": 55640, + "src": "31482:15:181", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SignedContextV1_$55640_storage_ptr", + "typeString": "struct SignedContextV1" + } + }, + "id": 79280, + "nodeType": "ArrayTypeName", + "src": "31482:17:181", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_SignedContextV1_$55640_storage_$dyn_storage_ptr", + "typeString": "struct SignedContextV1[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 79285, + "mutability": "mutable", + "name": "bobSignedContext", + "nameLocation": "31560:16:181", + "nodeType": "VariableDeclaration", + "scope": 79288, + "src": "31535:41:181", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_SignedContextV1_$55640_memory_ptr_$dyn_memory_ptr", + "typeString": "struct SignedContextV1[]" + }, + "typeName": { + "baseType": { + "id": 79283, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 79282, + "name": "SignedContextV1", + "nameLocations": [ + "31535:15:181" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 55640, + "src": "31535:15:181" + }, + "referencedDeclaration": 55640, + "src": "31535:15:181", + "typeDescriptions": { + "typeIdentifier": "t_struct$_SignedContextV1_$55640_storage_ptr", + "typeString": "struct SignedContextV1" + } + }, + "id": 79284, + "nodeType": "ArrayTypeName", + "src": "31535:17:181", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_SignedContextV1_$55640_storage_$dyn_storage_ptr", + "typeString": "struct SignedContextV1[]" + } + }, + "visibility": "internal" + } + ], + "src": "31372:210:181" + }, + "returnParameters": { + "id": 79287, + "nodeType": "ParameterList", + "parameters": [], + "src": "31591:0:181" + }, + "scope": 79289, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 79057, + "name": "IERC3156FlashLender", + "nameLocations": [ + "13173:19:181" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 78980, + "src": "13173:19:181" + }, + "id": 79058, + "nodeType": "InheritanceSpecifier", + "src": "13173:19:181" + }, + { + "baseName": { + "id": 79059, + "name": "IInterpreterCallerV2", + "nameLocations": [ + "13194:20:181" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 55660, + "src": "13194:20:181" + }, + "id": 79060, + "nodeType": "InheritanceSpecifier", + "src": "13194:20:181" + } + ], + "canonicalName": "IOrderBookV3", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 79056, + "nodeType": "StructuredDocumentation", + "src": "4446:8701:181", + "text": "@title IOrderBookV3\n @notice An orderbook that deploys _strategies_ represented as interpreter\n expressions rather than individual orders. The order book contract itself\n behaves similarly to an `ERC4626` vault but with much more fine grained\n control over how tokens are allocated and moved internally by their owners,\n and without any concept of \"shares\". Token owners MAY deposit and withdraw\n their tokens under arbitrary vault IDs on a per-token basis, then define\n orders that specify how tokens move between vaults according to an expression.\n The expression returns a maximum amount and a token input/output ratio from\n the perpective of the order. When two expressions intersect, as in their\n ratios are the inverse of each other, then tokens can move between vaults.\n For example, consider order A with input TKNA and output TKNB with a constant\n ratio of 100:1. This order in isolation has no ability to move tokens. If\n an order B appears with input TKNB and output TKNA and a ratio of 1:100 then\n this is a perfect match with order A. In this case 100 TKNA will move from\n order B to order A and 1 TKNB will move from order A to order B.\n IO ratios are always specified as input:output and are 18 decimal fixed point\n values. The maximum amount that can be moved in the current clearance is also\n set by the order expression as an 18 decimal fixed point value.\n Typically orders will not clear when their match is exactly 1:1 as the\n clearer needs to pay gas to process the match. Each order will get exactly\n the ratio it calculates when it does clear so if there is _overlap_ in the\n ratios then the clearer keeps the difference. In our above example, consider\n order B asking a ratio of 1:110 instead of 1:100. In this case 100 TKNA will\n move from order B to order A and 10 TKNA will move to the clearer's vault and\n 1 TKNB will move from order A to order B. In the case of fixed prices this is\n not very interesting as order B could more simply take order A directly for\n cheaper rather than involving a third party. Indeed, Orderbook supports a\n direct \"take orders\" method that works similar to a \"market buy\". In the case\n of dynamic expression based ratios, it allows both order A and order B to\n clear non-interactively according to their strategy, trading off active\n management, dealing with front-running, MEV, etc. for zero-gas and\n exact-ratio clearance.\n The general invariant for clearing and take orders is:\n ```\n ratioA = InputA / OutputA\n ratioB = InputB / OutputB\n ratioA * ratioB = ( InputA * InputB ) / ( OutputA * OutputB )\n OutputA >= InputB\n OutputB >= InputA\n ∴ ratioA * ratioB <= 1\n ```\n Orderbook is `IERC3156FlashLender` compliant with a 0 fee flash loan\n implementation to allow external liquidity from other onchain DEXes to match\n against orderbook expressions. All deposited tokens across all vaults are\n available for flashloan, the flashloan MAY BE REPAID BY CALLING TAKE ORDER\n such that Orderbook's liability to its vaults is decreased by an incoming\n trade from the flashloan borrower. See `ZeroExOrderBookFlashBorrower` for\n an example of how this works in practise.\n Orderbook supports many to many input/output token relationship, for example\n some order can specify an array of stables it would be willing to accept in\n return for some ETH. This removes the need for a combinatorial explosion of\n order strategies between like assets but introduces the issue of token\n decimal handling. End users understand that \"one\" USDT is roughly equal to\n \"one\" DAI, but onchain this is incorrect by _12 orders of magnitude_. This\n is because \"one\" DAI is `1e18` tokens and \"one\" USDT is `1e6` tokens. The\n orderbook is allowing orders to deploy expressions that define _economic\n equivalence_ but this doesn't map 1:1 with numeric equivalence in a many to\n many setup behind token decimal convensions. The solution is to require that\n end users who place orders provide the decimals of each token they include\n in their valid IO lists, and to calculate all amounts and ratios in their\n expressions _as though they were 18 decimal fixed point values_. Orderbook\n will then automatically rescale the expression values before applying the\n final vault movements. If an order provides the \"wrong\" decimal values for\n some token then it will simply calculate its own ratios and amounts\n incorrectly which will either lead to no matching orders or a very bad trade\n for the order owner. There is no way that misrepresenting decimals can attack\n some other order by a counterparty. Orderbook DOES NOT read decimals from\n tokens onchain because A. this would be gas for an external call to a cold\n token contract and B. the ERC20 standard specifically states NOT to read\n decimals from the interface onchain.\n Token amounts and ratios returned by calculate order MUST be 18 decimal fixed\n point values. Token amounts input to handle IO MUST be the exact absolute\n values that move between the vaults, i.e. NOT rescaled to 18 decimals. The\n author of the handle IO expression MUST use the token decimals and amounts to\n rescale themselves if they want that logic, notably the expression author\n will need to specify the desired rounding behaviour in the rescaling process.\n When two orders clear there are NO TOKEN MOVEMENTS, only internal vault\n balances are updated from the input and output vaults. Typically this results\n in less gas per clear than calling external token transfers and also avoids\n issues with reentrancy, allowances, external balances etc. This also means\n that REBASING TOKENS AND TOKENS WITH DYNAMIC BALANCE ARE NOT SUPPORTED.\n Orderbook ONLY WORKS IF TOKEN BALANCES ARE 1:1 WITH ADDITION/SUBTRACTION PER\n VAULT MOVEMENT.\n Dust due to rounding errors always favours the order. Output max is rounded\n down and IO ratios are rounded up. Input and output amounts are always\n converted to absolute values before applying to vault balances such that\n orderbook always retains fully collateralised inventory of underlying token\n balances to support withdrawals, with the caveat that dynamic token balanes\n are not supported.\n When an order clears it is NOT removed. Orders remain active until the owner\n deactivates them. This is gas efficient as order owners MAY deposit more\n tokens in a vault with an order against it many times and the order strategy\n will continue to be clearable according to its expression. As vault IDs are\n `uint256` values there are effectively infinite possible vaults for any token\n so there is no limit to how many active orders any address can have at one\n time. This also allows orders to be daisy chained arbitrarily where output\n vaults for some order are the input vaults for some other order.\n Expression storage is namespaced by order owner, so gets and sets are unique\n to each onchain address. Order owners MUST TAKE CARE not to override their\n storage sets globally across all their orders, which they can do most simply\n by hashing the order hash into their get/set keys inside the expression. This\n gives maximum flexibility for shared state across orders without allowing\n order owners to attack and overwrite values stored by orders placed by their\n counterparty.\n Note that each order specifies its own interpreter and deployer so the\n owner is responsible for not corrupting their own calculations with bad\n interpreters. This also means the Orderbook MUST assume the interpreter, and\n notably the interpreter's store, is malicious and guard against reentrancy\n etc.\n As Orderbook supports any expression that can run on any `IInterpreterV1` and\n counterparties are available to the order, order strategies are free to\n implement KYC/membership, tracking, distributions, stock, buybacks, etc. etc.\n Main differences between `IOrderBookV2` and `IOderBookV3`:\n - Most structs are now primitives to save gas.\n - Order hash is `bytes32`.\n - `deposit` and `withdraw` MUST revert if the amount is zero.\n - adding an order MUST revert if there is no calculation entrypoint.\n - adding an order MUST revert if there is no handle IO entrypoint.\n - adding an order MUST revert if there are no inputs.\n - adding an order MUST revert if there are no outputs.\n - adding and removing orders MUST return a boolean indicating if the state\n changed.\n - new `orderExists` method." + }, + "fullyImplemented": false, + "linearizedBaseContracts": [ + 79289, + 55660, + 78980 + ], + "name": "IOrderBookV3", + "nameLocation": "13157:12:181", + "scope": 79290, + "usedErrors": [ + 79069, + 79078, + 79081, + 79084, + 79087, + 79090 + ] + } + ], + "license": "CAL" + }, + "id": 181 +} \ No newline at end of file diff --git a/orderbook-rs/src/orderbook/abi/OrderBook.json b/orderbook-rs/src/orderbook/abi/OrderBook.json deleted file mode 100644 index ca30a5ed7..000000000 --- a/orderbook-rs/src/orderbook/abi/OrderBook.json +++ /dev/null @@ -1,36239 +0,0 @@ -{ - "abi": [ - { - "type": "constructor", - "inputs": [ - { - "name": "config", - "type": "tuple", - "internalType": "struct DeployerDiscoverableMetaV3ConstructionConfig", - "components": [ - { - "name": "deployer", - "type": "address", - "internalType": "address" - }, - { - "name": "meta", - "type": "bytes", - "internalType": "bytes" - } - ] - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "addOrder", - "inputs": [ - { - "name": "config", - "type": "tuple", - "internalType": "struct OrderConfigV2", - "components": [ - { - "name": "validInputs", - "type": "tuple[]", - "internalType": "struct IO[]", - "components": [ - { - "name": "token", - "type": "address", - "internalType": "address" - }, - { - "name": "decimals", - "type": "uint8", - "internalType": "uint8" - }, - { - "name": "vaultId", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { - "name": "validOutputs", - "type": "tuple[]", - "internalType": "struct IO[]", - "components": [ - { - "name": "token", - "type": "address", - "internalType": "address" - }, - { - "name": "decimals", - "type": "uint8", - "internalType": "uint8" - }, - { - "name": "vaultId", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { - "name": "evaluableConfig", - "type": "tuple", - "internalType": "struct EvaluableConfigV3", - "components": [ - { - "name": "deployer", - "type": "address", - "internalType": "contract IExpressionDeployerV3" - }, - { - "name": "bytecode", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "constants", - "type": "uint256[]", - "internalType": "uint256[]" - } - ] - }, - { - "name": "meta", - "type": "bytes", - "internalType": "bytes" - } - ] - } - ], - "outputs": [ - { - "name": "stateChanged", - "type": "bool", - "internalType": "bool" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "clear", - "inputs": [ - { - "name": "aliceOrder", - "type": "tuple", - "internalType": "struct OrderV2", - "components": [ - { - "name": "owner", - "type": "address", - "internalType": "address" - }, - { - "name": "handleIO", - "type": "bool", - "internalType": "bool" - }, - { - "name": "evaluable", - "type": "tuple", - "internalType": "struct EvaluableV2", - "components": [ - { - "name": "interpreter", - "type": "address", - "internalType": "contract IInterpreterV2" - }, - { - "name": "store", - "type": "address", - "internalType": "contract IInterpreterStoreV1" - }, - { - "name": "expression", - "type": "address", - "internalType": "address" - } - ] - }, - { - "name": "validInputs", - "type": "tuple[]", - "internalType": "struct IO[]", - "components": [ - { - "name": "token", - "type": "address", - "internalType": "address" - }, - { - "name": "decimals", - "type": "uint8", - "internalType": "uint8" - }, - { - "name": "vaultId", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { - "name": "validOutputs", - "type": "tuple[]", - "internalType": "struct IO[]", - "components": [ - { - "name": "token", - "type": "address", - "internalType": "address" - }, - { - "name": "decimals", - "type": "uint8", - "internalType": "uint8" - }, - { - "name": "vaultId", - "type": "uint256", - "internalType": "uint256" - } - ] - } - ] - }, - { - "name": "bobOrder", - "type": "tuple", - "internalType": "struct OrderV2", - "components": [ - { - "name": "owner", - "type": "address", - "internalType": "address" - }, - { - "name": "handleIO", - "type": "bool", - "internalType": "bool" - }, - { - "name": "evaluable", - "type": "tuple", - "internalType": "struct EvaluableV2", - "components": [ - { - "name": "interpreter", - "type": "address", - "internalType": "contract IInterpreterV2" - }, - { - "name": "store", - "type": "address", - "internalType": "contract IInterpreterStoreV1" - }, - { - "name": "expression", - "type": "address", - "internalType": "address" - } - ] - }, - { - "name": "validInputs", - "type": "tuple[]", - "internalType": "struct IO[]", - "components": [ - { - "name": "token", - "type": "address", - "internalType": "address" - }, - { - "name": "decimals", - "type": "uint8", - "internalType": "uint8" - }, - { - "name": "vaultId", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { - "name": "validOutputs", - "type": "tuple[]", - "internalType": "struct IO[]", - "components": [ - { - "name": "token", - "type": "address", - "internalType": "address" - }, - { - "name": "decimals", - "type": "uint8", - "internalType": "uint8" - }, - { - "name": "vaultId", - "type": "uint256", - "internalType": "uint256" - } - ] - } - ] - }, - { - "name": "clearConfig", - "type": "tuple", - "internalType": "struct ClearConfig", - "components": [ - { - "name": "aliceInputIOIndex", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "aliceOutputIOIndex", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "bobInputIOIndex", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "bobOutputIOIndex", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "aliceBountyVaultId", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "bobBountyVaultId", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { - "name": "aliceSignedContext", - "type": "tuple[]", - "internalType": "struct SignedContextV1[]", - "components": [ - { - "name": "signer", - "type": "address", - "internalType": "address" - }, - { - "name": "context", - "type": "uint256[]", - "internalType": "uint256[]" - }, - { - "name": "signature", - "type": "bytes", - "internalType": "bytes" - } - ] - }, - { - "name": "bobSignedContext", - "type": "tuple[]", - "internalType": "struct SignedContextV1[]", - "components": [ - { - "name": "signer", - "type": "address", - "internalType": "address" - }, - { - "name": "context", - "type": "uint256[]", - "internalType": "uint256[]" - }, - { - "name": "signature", - "type": "bytes", - "internalType": "bytes" - } - ] - } - ], - "outputs": [], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "deposit", - "inputs": [ - { - "name": "token", - "type": "address", - "internalType": "address" - }, - { - "name": "vaultId", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "flashFee", - "inputs": [ - { - "name": "", - "type": "address", - "internalType": "address" - }, - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "pure" - }, - { - "type": "function", - "name": "flashLoan", - "inputs": [ - { - "name": "receiver", - "type": "address", - "internalType": "contract IERC3156FlashBorrower" - }, - { - "name": "token", - "type": "address", - "internalType": "address" - }, - { - "name": "amount", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "data", - "type": "bytes", - "internalType": "bytes" - } - ], - "outputs": [ - { - "name": "", - "type": "bool", - "internalType": "bool" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "maxFlashLoan", - "inputs": [ - { - "name": "token", - "type": "address", - "internalType": "address" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "multicall", - "inputs": [ - { - "name": "data", - "type": "bytes[]", - "internalType": "bytes[]" - } - ], - "outputs": [ - { - "name": "results", - "type": "bytes[]", - "internalType": "bytes[]" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "orderExists", - "inputs": [ - { - "name": "orderHash", - "type": "bytes32", - "internalType": "bytes32" - } - ], - "outputs": [ - { - "name": "", - "type": "bool", - "internalType": "bool" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "removeOrder", - "inputs": [ - { - "name": "order", - "type": "tuple", - "internalType": "struct OrderV2", - "components": [ - { - "name": "owner", - "type": "address", - "internalType": "address" - }, - { - "name": "handleIO", - "type": "bool", - "internalType": "bool" - }, - { - "name": "evaluable", - "type": "tuple", - "internalType": "struct EvaluableV2", - "components": [ - { - "name": "interpreter", - "type": "address", - "internalType": "contract IInterpreterV2" - }, - { - "name": "store", - "type": "address", - "internalType": "contract IInterpreterStoreV1" - }, - { - "name": "expression", - "type": "address", - "internalType": "address" - } - ] - }, - { - "name": "validInputs", - "type": "tuple[]", - "internalType": "struct IO[]", - "components": [ - { - "name": "token", - "type": "address", - "internalType": "address" - }, - { - "name": "decimals", - "type": "uint8", - "internalType": "uint8" - }, - { - "name": "vaultId", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { - "name": "validOutputs", - "type": "tuple[]", - "internalType": "struct IO[]", - "components": [ - { - "name": "token", - "type": "address", - "internalType": "address" - }, - { - "name": "decimals", - "type": "uint8", - "internalType": "uint8" - }, - { - "name": "vaultId", - "type": "uint256", - "internalType": "uint256" - } - ] - } - ] - } - ], - "outputs": [ - { - "name": "stateChanged", - "type": "bool", - "internalType": "bool" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "takeOrders", - "inputs": [ - { - "name": "config", - "type": "tuple", - "internalType": "struct TakeOrdersConfigV2", - "components": [ - { - "name": "minimumInput", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "maximumInput", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "maximumIORatio", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "orders", - "type": "tuple[]", - "internalType": "struct TakeOrderConfigV2[]", - "components": [ - { - "name": "order", - "type": "tuple", - "internalType": "struct OrderV2", - "components": [ - { - "name": "owner", - "type": "address", - "internalType": "address" - }, - { - "name": "handleIO", - "type": "bool", - "internalType": "bool" - }, - { - "name": "evaluable", - "type": "tuple", - "internalType": "struct EvaluableV2", - "components": [ - { - "name": "interpreter", - "type": "address", - "internalType": "contract IInterpreterV2" - }, - { - "name": "store", - "type": "address", - "internalType": "contract IInterpreterStoreV1" - }, - { - "name": "expression", - "type": "address", - "internalType": "address" - } - ] - }, - { - "name": "validInputs", - "type": "tuple[]", - "internalType": "struct IO[]", - "components": [ - { - "name": "token", - "type": "address", - "internalType": "address" - }, - { - "name": "decimals", - "type": "uint8", - "internalType": "uint8" - }, - { - "name": "vaultId", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { - "name": "validOutputs", - "type": "tuple[]", - "internalType": "struct IO[]", - "components": [ - { - "name": "token", - "type": "address", - "internalType": "address" - }, - { - "name": "decimals", - "type": "uint8", - "internalType": "uint8" - }, - { - "name": "vaultId", - "type": "uint256", - "internalType": "uint256" - } - ] - } - ] - }, - { - "name": "inputIOIndex", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "outputIOIndex", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "signedContext", - "type": "tuple[]", - "internalType": "struct SignedContextV1[]", - "components": [ - { - "name": "signer", - "type": "address", - "internalType": "address" - }, - { - "name": "context", - "type": "uint256[]", - "internalType": "uint256[]" - }, - { - "name": "signature", - "type": "bytes", - "internalType": "bytes" - } - ] - } - ] - }, - { - "name": "data", - "type": "bytes", - "internalType": "bytes" - } - ] - } - ], - "outputs": [ - { - "name": "totalTakerInput", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "totalTakerOutput", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "nonpayable" - }, - { - "type": "function", - "name": "vaultBalance", - "inputs": [ - { - "name": "owner", - "type": "address", - "internalType": "address" - }, - { - "name": "token", - "type": "address", - "internalType": "address" - }, - { - "name": "vaultId", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [ - { - "name": "", - "type": "uint256", - "internalType": "uint256" - } - ], - "stateMutability": "view" - }, - { - "type": "function", - "name": "withdraw", - "inputs": [ - { - "name": "token", - "type": "address", - "internalType": "address" - }, - { - "name": "vaultId", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "targetAmount", - "type": "uint256", - "internalType": "uint256" - } - ], - "outputs": [], - "stateMutability": "nonpayable" - }, - { - "type": "event", - "name": "AddOrder", - "inputs": [ - { - "name": "sender", - "type": "address", - "indexed": false, - "internalType": "address" - }, - { - "name": "expressionDeployer", - "type": "address", - "indexed": false, - "internalType": "contract IExpressionDeployerV3" - }, - { - "name": "order", - "type": "tuple", - "indexed": false, - "internalType": "struct OrderV2", - "components": [ - { - "name": "owner", - "type": "address", - "internalType": "address" - }, - { - "name": "handleIO", - "type": "bool", - "internalType": "bool" - }, - { - "name": "evaluable", - "type": "tuple", - "internalType": "struct EvaluableV2", - "components": [ - { - "name": "interpreter", - "type": "address", - "internalType": "contract IInterpreterV2" - }, - { - "name": "store", - "type": "address", - "internalType": "contract IInterpreterStoreV1" - }, - { - "name": "expression", - "type": "address", - "internalType": "address" - } - ] - }, - { - "name": "validInputs", - "type": "tuple[]", - "internalType": "struct IO[]", - "components": [ - { - "name": "token", - "type": "address", - "internalType": "address" - }, - { - "name": "decimals", - "type": "uint8", - "internalType": "uint8" - }, - { - "name": "vaultId", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { - "name": "validOutputs", - "type": "tuple[]", - "internalType": "struct IO[]", - "components": [ - { - "name": "token", - "type": "address", - "internalType": "address" - }, - { - "name": "decimals", - "type": "uint8", - "internalType": "uint8" - }, - { - "name": "vaultId", - "type": "uint256", - "internalType": "uint256" - } - ] - } - ] - }, - { - "name": "orderHash", - "type": "bytes32", - "indexed": false, - "internalType": "bytes32" - } - ], - "anonymous": false - }, - { - "type": "event", - "name": "AfterClear", - "inputs": [ - { - "name": "sender", - "type": "address", - "indexed": false, - "internalType": "address" - }, - { - "name": "clearStateChange", - "type": "tuple", - "indexed": false, - "internalType": "struct ClearStateChange", - "components": [ - { - "name": "aliceOutput", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "bobOutput", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "aliceInput", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "bobInput", - "type": "uint256", - "internalType": "uint256" - } - ] - } - ], - "anonymous": false - }, - { - "type": "event", - "name": "Clear", - "inputs": [ - { - "name": "sender", - "type": "address", - "indexed": false, - "internalType": "address" - }, - { - "name": "alice", - "type": "tuple", - "indexed": false, - "internalType": "struct OrderV2", - "components": [ - { - "name": "owner", - "type": "address", - "internalType": "address" - }, - { - "name": "handleIO", - "type": "bool", - "internalType": "bool" - }, - { - "name": "evaluable", - "type": "tuple", - "internalType": "struct EvaluableV2", - "components": [ - { - "name": "interpreter", - "type": "address", - "internalType": "contract IInterpreterV2" - }, - { - "name": "store", - "type": "address", - "internalType": "contract IInterpreterStoreV1" - }, - { - "name": "expression", - "type": "address", - "internalType": "address" - } - ] - }, - { - "name": "validInputs", - "type": "tuple[]", - "internalType": "struct IO[]", - "components": [ - { - "name": "token", - "type": "address", - "internalType": "address" - }, - { - "name": "decimals", - "type": "uint8", - "internalType": "uint8" - }, - { - "name": "vaultId", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { - "name": "validOutputs", - "type": "tuple[]", - "internalType": "struct IO[]", - "components": [ - { - "name": "token", - "type": "address", - "internalType": "address" - }, - { - "name": "decimals", - "type": "uint8", - "internalType": "uint8" - }, - { - "name": "vaultId", - "type": "uint256", - "internalType": "uint256" - } - ] - } - ] - }, - { - "name": "bob", - "type": "tuple", - "indexed": false, - "internalType": "struct OrderV2", - "components": [ - { - "name": "owner", - "type": "address", - "internalType": "address" - }, - { - "name": "handleIO", - "type": "bool", - "internalType": "bool" - }, - { - "name": "evaluable", - "type": "tuple", - "internalType": "struct EvaluableV2", - "components": [ - { - "name": "interpreter", - "type": "address", - "internalType": "contract IInterpreterV2" - }, - { - "name": "store", - "type": "address", - "internalType": "contract IInterpreterStoreV1" - }, - { - "name": "expression", - "type": "address", - "internalType": "address" - } - ] - }, - { - "name": "validInputs", - "type": "tuple[]", - "internalType": "struct IO[]", - "components": [ - { - "name": "token", - "type": "address", - "internalType": "address" - }, - { - "name": "decimals", - "type": "uint8", - "internalType": "uint8" - }, - { - "name": "vaultId", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { - "name": "validOutputs", - "type": "tuple[]", - "internalType": "struct IO[]", - "components": [ - { - "name": "token", - "type": "address", - "internalType": "address" - }, - { - "name": "decimals", - "type": "uint8", - "internalType": "uint8" - }, - { - "name": "vaultId", - "type": "uint256", - "internalType": "uint256" - } - ] - } - ] - }, - { - "name": "clearConfig", - "type": "tuple", - "indexed": false, - "internalType": "struct ClearConfig", - "components": [ - { - "name": "aliceInputIOIndex", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "aliceOutputIOIndex", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "bobInputIOIndex", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "bobOutputIOIndex", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "aliceBountyVaultId", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "bobBountyVaultId", - "type": "uint256", - "internalType": "uint256" - } - ] - } - ], - "anonymous": false - }, - { - "type": "event", - "name": "Context", - "inputs": [ - { - "name": "sender", - "type": "address", - "indexed": false, - "internalType": "address" - }, - { - "name": "context", - "type": "uint256[][]", - "indexed": false, - "internalType": "uint256[][]" - } - ], - "anonymous": false - }, - { - "type": "event", - "name": "Deposit", - "inputs": [ - { - "name": "sender", - "type": "address", - "indexed": false, - "internalType": "address" - }, - { - "name": "token", - "type": "address", - "indexed": false, - "internalType": "address" - }, - { - "name": "vaultId", - "type": "uint256", - "indexed": false, - "internalType": "uint256" - }, - { - "name": "amount", - "type": "uint256", - "indexed": false, - "internalType": "uint256" - } - ], - "anonymous": false - }, - { - "type": "event", - "name": "MetaV1", - "inputs": [ - { - "name": "sender", - "type": "address", - "indexed": false, - "internalType": "address" - }, - { - "name": "subject", - "type": "uint256", - "indexed": false, - "internalType": "uint256" - }, - { - "name": "meta", - "type": "bytes", - "indexed": false, - "internalType": "bytes" - } - ], - "anonymous": false - }, - { - "type": "event", - "name": "OrderExceedsMaxRatio", - "inputs": [ - { - "name": "sender", - "type": "address", - "indexed": false, - "internalType": "address" - }, - { - "name": "owner", - "type": "address", - "indexed": false, - "internalType": "address" - }, - { - "name": "orderHash", - "type": "bytes32", - "indexed": false, - "internalType": "bytes32" - } - ], - "anonymous": false - }, - { - "type": "event", - "name": "OrderNotFound", - "inputs": [ - { - "name": "sender", - "type": "address", - "indexed": false, - "internalType": "address" - }, - { - "name": "owner", - "type": "address", - "indexed": false, - "internalType": "address" - }, - { - "name": "orderHash", - "type": "bytes32", - "indexed": false, - "internalType": "bytes32" - } - ], - "anonymous": false - }, - { - "type": "event", - "name": "OrderZeroAmount", - "inputs": [ - { - "name": "sender", - "type": "address", - "indexed": false, - "internalType": "address" - }, - { - "name": "owner", - "type": "address", - "indexed": false, - "internalType": "address" - }, - { - "name": "orderHash", - "type": "bytes32", - "indexed": false, - "internalType": "bytes32" - } - ], - "anonymous": false - }, - { - "type": "event", - "name": "RemoveOrder", - "inputs": [ - { - "name": "sender", - "type": "address", - "indexed": false, - "internalType": "address" - }, - { - "name": "order", - "type": "tuple", - "indexed": false, - "internalType": "struct OrderV2", - "components": [ - { - "name": "owner", - "type": "address", - "internalType": "address" - }, - { - "name": "handleIO", - "type": "bool", - "internalType": "bool" - }, - { - "name": "evaluable", - "type": "tuple", - "internalType": "struct EvaluableV2", - "components": [ - { - "name": "interpreter", - "type": "address", - "internalType": "contract IInterpreterV2" - }, - { - "name": "store", - "type": "address", - "internalType": "contract IInterpreterStoreV1" - }, - { - "name": "expression", - "type": "address", - "internalType": "address" - } - ] - }, - { - "name": "validInputs", - "type": "tuple[]", - "internalType": "struct IO[]", - "components": [ - { - "name": "token", - "type": "address", - "internalType": "address" - }, - { - "name": "decimals", - "type": "uint8", - "internalType": "uint8" - }, - { - "name": "vaultId", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { - "name": "validOutputs", - "type": "tuple[]", - "internalType": "struct IO[]", - "components": [ - { - "name": "token", - "type": "address", - "internalType": "address" - }, - { - "name": "decimals", - "type": "uint8", - "internalType": "uint8" - }, - { - "name": "vaultId", - "type": "uint256", - "internalType": "uint256" - } - ] - } - ] - }, - { - "name": "orderHash", - "type": "bytes32", - "indexed": false, - "internalType": "bytes32" - } - ], - "anonymous": false - }, - { - "type": "event", - "name": "TakeOrder", - "inputs": [ - { - "name": "sender", - "type": "address", - "indexed": false, - "internalType": "address" - }, - { - "name": "config", - "type": "tuple", - "indexed": false, - "internalType": "struct TakeOrderConfigV2", - "components": [ - { - "name": "order", - "type": "tuple", - "internalType": "struct OrderV2", - "components": [ - { - "name": "owner", - "type": "address", - "internalType": "address" - }, - { - "name": "handleIO", - "type": "bool", - "internalType": "bool" - }, - { - "name": "evaluable", - "type": "tuple", - "internalType": "struct EvaluableV2", - "components": [ - { - "name": "interpreter", - "type": "address", - "internalType": "contract IInterpreterV2" - }, - { - "name": "store", - "type": "address", - "internalType": "contract IInterpreterStoreV1" - }, - { - "name": "expression", - "type": "address", - "internalType": "address" - } - ] - }, - { - "name": "validInputs", - "type": "tuple[]", - "internalType": "struct IO[]", - "components": [ - { - "name": "token", - "type": "address", - "internalType": "address" - }, - { - "name": "decimals", - "type": "uint8", - "internalType": "uint8" - }, - { - "name": "vaultId", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { - "name": "validOutputs", - "type": "tuple[]", - "internalType": "struct IO[]", - "components": [ - { - "name": "token", - "type": "address", - "internalType": "address" - }, - { - "name": "decimals", - "type": "uint8", - "internalType": "uint8" - }, - { - "name": "vaultId", - "type": "uint256", - "internalType": "uint256" - } - ] - } - ] - }, - { - "name": "inputIOIndex", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "outputIOIndex", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "signedContext", - "type": "tuple[]", - "internalType": "struct SignedContextV1[]", - "components": [ - { - "name": "signer", - "type": "address", - "internalType": "address" - }, - { - "name": "context", - "type": "uint256[]", - "internalType": "uint256[]" - }, - { - "name": "signature", - "type": "bytes", - "internalType": "bytes" - } - ] - } - ] - }, - { - "name": "input", - "type": "uint256", - "indexed": false, - "internalType": "uint256" - }, - { - "name": "output", - "type": "uint256", - "indexed": false, - "internalType": "uint256" - } - ], - "anonymous": false - }, - { - "type": "event", - "name": "Withdraw", - "inputs": [ - { - "name": "sender", - "type": "address", - "indexed": false, - "internalType": "address" - }, - { - "name": "token", - "type": "address", - "indexed": false, - "internalType": "address" - }, - { - "name": "vaultId", - "type": "uint256", - "indexed": false, - "internalType": "uint256" - }, - { - "name": "targetAmount", - "type": "uint256", - "indexed": false, - "internalType": "uint256" - }, - { - "name": "amount", - "type": "uint256", - "indexed": false, - "internalType": "uint256" - } - ], - "anonymous": false - }, - { - "type": "error", - "name": "FlashLenderCallbackFailed", - "inputs": [ - { - "name": "result", - "type": "bytes32", - "internalType": "bytes32" - } - ] - }, - { - "type": "error", - "name": "InvalidSignature", - "inputs": [ - { - "name": "i", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { - "type": "error", - "name": "MinimumInput", - "inputs": [ - { - "name": "minimumInput", - "type": "uint256", - "internalType": "uint256" - }, - { - "name": "input", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { - "type": "error", - "name": "NoOrders", - "inputs": [] - }, - { - "type": "error", - "name": "NotOrderOwner", - "inputs": [ - { - "name": "sender", - "type": "address", - "internalType": "address" - }, - { - "name": "owner", - "type": "address", - "internalType": "address" - } - ] - }, - { - "type": "error", - "name": "NotRainMetaV1", - "inputs": [ - { - "name": "unmeta", - "type": "bytes", - "internalType": "bytes" - } - ] - }, - { - "type": "error", - "name": "OrderNoHandleIO", - "inputs": [] - }, - { - "type": "error", - "name": "OrderNoInputs", - "inputs": [] - }, - { - "type": "error", - "name": "OrderNoOutputs", - "inputs": [] - }, - { - "type": "error", - "name": "OrderNoSources", - "inputs": [] - }, - { - "type": "error", - "name": "SameOwner", - "inputs": [ - { - "name": "owner", - "type": "address", - "internalType": "address" - } - ] - }, - { - "type": "error", - "name": "SourceIndexOutOfBounds", - "inputs": [ - { - "name": "bytecode", - "type": "bytes", - "internalType": "bytes" - }, - { - "name": "sourceIndex", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { - "type": "error", - "name": "TokenDecimalsMismatch", - "inputs": [ - { - "name": "aliceTokenDecimals", - "type": "uint8", - "internalType": "uint8" - }, - { - "name": "bobTokenDecimals", - "type": "uint8", - "internalType": "uint8" - } - ] - }, - { - "type": "error", - "name": "TokenMismatch", - "inputs": [ - { - "name": "aliceToken", - "type": "address", - "internalType": "address" - }, - { - "name": "bobToken", - "type": "address", - "internalType": "address" - } - ] - }, - { - "type": "error", - "name": "UnexpectedMetaHash", - "inputs": [ - { - "name": "expectedHash", - "type": "bytes32", - "internalType": "bytes32" - }, - { - "name": "actualHash", - "type": "bytes32", - "internalType": "bytes32" - } - ] - }, - { - "type": "error", - "name": "UnsupportedCalculateInputs", - "inputs": [ - { - "name": "inputs", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { - "type": "error", - "name": "UnsupportedCalculateOutputs", - "inputs": [ - { - "name": "outputs", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { - "type": "error", - "name": "UnsupportedHandleInputs", - "inputs": [ - { - "name": "inputs", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { - "type": "error", - "name": "ZeroDepositAmount", - "inputs": [ - { - "name": "sender", - "type": "address", - "internalType": "address" - }, - { - "name": "token", - "type": "address", - "internalType": "address" - }, - { - "name": "vaultId", - "type": "uint256", - "internalType": "uint256" - } - ] - }, - { - "type": "error", - "name": "ZeroMaximumInput", - "inputs": [] - }, - { - "type": "error", - "name": "ZeroWithdrawTargetAmount", - "inputs": [ - { - "name": "sender", - "type": "address", - "internalType": "address" - }, - { - "name": "token", - "type": "address", - "internalType": "address" - }, - { - "name": "vaultId", - "type": "uint256", - "internalType": "uint256" - } - ] - } - ], - "bytecode": { - "object": "0x60806040523480156200001157600080fd5b506040516200617038038062006170833981016040819052620000349162000303565b600160005560208101517f4383dd3c5a557f161038940161f880963e1d4a31e8f2da771427b891956ad8319082906200006f908390620000c6565b60208101516040517fbea766d03fa1efd3f81cc8634d08320bc62bb0ed9234ac59bbaafa5893fb6b1391620000a89133913091620003d1565b60405180910390a18051620000bd906200010d565b505050620004f7565b80516020820120828114620000fd5760405163074fe10f60e41b815260048101849052602481018290526044015b60405180910390fd5b6200010882620001c0565b505050565b60008080806001600160a01b03851663b7f14403826040519080825280602002602001820160405280156200014c578160200160208202803683370190505b506040518263ffffffff1660e01b81526004016200016b919062000403565b6000604051808303816000875af11580156200018b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052620001b591908101906200045a565b505050505050505050565b620001cb81620001f0565b620001ed5780604051630c89984b60e31b8152600401620000f49190620004db565b50565b60006008825110156200020557506000919050565b50600801516001600160401b031667ff0a89c674ee78741490565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114620001ed57600080fd5b60005b83811015620002695781810151838201526020016200024f565b50506000910152565b600082601f8301126200028457600080fd5b81516001600160401b0380821115620002a157620002a162000220565b604051601f8301601f19908116603f01168101908282118183101715620002cc57620002cc62000220565b81604052838152866020858801011115620002e657600080fd5b620002f98460208301602089016200024c565b9695505050505050565b6000602082840312156200031657600080fd5b81516001600160401b03808211156200032e57600080fd5b90830190604082860312156200034357600080fd5b60405160408101818110838211171562000361576200036162000220565b6040528251620003718162000236565b81526020830151828111156200038657600080fd5b620003948782860162000272565b60208301525095945050505050565b60008151808452620003bd8160208601602086016200024c565b601f01601f19169290920160200192915050565b60018060a01b0384168152826020820152606060408201526000620003fa6060830184620003a3565b95945050505050565b60408152600060408201526000606082016020606081850152818551808452608086019150828701935060005b818110156200044e5784518352938301939183019160010162000430565b50909695505050505050565b600080600080608085870312156200047157600080fd5b84516200047e8162000236565b6020860151909450620004918162000236565b6040860151909350620004a48162000236565b60608601519092506001600160401b03811115620004c157600080fd5b620004cf8782880162000272565b91505092959194509250565b602081526000620004f06020830184620003a3565b9392505050565b615c6980620005076000396000f3fe608060405234801561001057600080fd5b50600436106100d45760003560e01c80639e18968b11610081578063d97b2e481161005b578063d97b2e48146101dc578063d9d98ce4146101ef578063e23746a31461020557600080fd5b80639e18968b14610196578063ac9650d8146101a9578063b5c5f672146101c957600080fd5b8063613255ab116100b2578063613255ab1461013a578063847a1bc91461015b5780638a44689c1461016e57600080fd5b80630efe6a8b146100d95780632cb77e9f146100ee5780635cffe9de14610127575b600080fd5b6100ec6100e73660046144a0565b610218565b005b6101126100fc3660046144d5565b6000908152600160208190526040909120541490565b60405190151581526020015b60405180910390f35b6101126101353660046144ee565b61035f565b61014d61014836600461458d565b6104be565b60405190815260200161011e565b6101126101693660046145aa565b610555565b61018161017c3660046145e5565b610b63565b6040805192835260208301919091520161011e565b6100ec6101a4366004614af3565b611ae8565b6101bc6101b7366004614bde565b612232565b60405161011e9190614cc1565b6100ec6101d73660046144a0565b612327565b61014d6101ea366004614d41565b612499565b61014d6101fd366004614d82565b600092915050565b610112610213366004614dae565b6124dc565b61022061262f565b80600003610284576040517f40e97a5e00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff84166024820152604481018390526064015b60405180910390fd5b6040805133815273ffffffffffffffffffffffffffffffffffffffff85166020820152908101839052606081018290527fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d79060800160405180910390a161030373ffffffffffffffffffffffffffffffffffffffff84163330846126a2565b33600090815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845282528083208584529091528120805483929061034b908490614e18565b90915550506001600055505050565b505050565b600061038273ffffffffffffffffffffffffffffffffffffffff86168786612784565b6040517f23e30c8b00000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff8816906323e30c8b906103e19033908a908a9087908b908b90600401614e74565b6020604051808303816000875af1158015610400573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104249190614ec6565b90507f439148f0bbc682ca079e46d6e2c2f0c1e3b820f1a291b069d8882abf8cf18dd98114610482576040517f5b62c5480000000000000000000000000000000000000000000000000000000081526004810182905260240161027b565b6104b18730610492600089614e18565b73ffffffffffffffffffffffffffffffffffffffff8a169291906126a2565b5060019695505050505050565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009073ffffffffffffffffffffffffffffffffffffffff8316906370a0823190602401602060405180830381865afa15801561052b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061054f9190614ec6565b92915050565b600061055f61262f565b60006105b96105716040850185614edf565b61057f906020810190614f1d565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506127da92505050565b9050806000036105f5576040517fb3fc422c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060010361062f576040517ff209c2f400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106398380614f82565b9050600003610674576040517f6c44ef8f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106816020840184614f82565b90506000036106bc576040517f540e5f0b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008080806106ce6040880188614edf565b6106dc90602081019061458d565b73ffffffffffffffffffffffffffffffffffffffff1663b7f1440361070460408a018a614edf565b610712906020810190614f1d565b61071f60408c018c614edf565b61072d906040810190614fe9565b6040518563ffffffff1660e01b815260040161074c9493929190615051565b6000604051808303816000875af115801561076b573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526107b191908101906150b6565b602081015193975091955093509150600081901a90600181901a9060021a821561080a576040517f9a6f079e0000000000000000000000000000000000000000000000000000000081526004810184905260240161027b565b6002821015610848576040517f3eee39540000000000000000000000000000000000000000000000000000000081526004810183905260240161027b565b8015610883576040517f9d5f70980000000000000000000000000000000000000000000000000000000081526004810182905260240161027b565b50505060006040518060a001604052803373ffffffffffffffffffffffffffffffffffffffff168152602001600061090f8b80604001906108c49190614edf565b6108d2906020810190614f1d565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250600192506127f8915050565b1181526040805160608101825273ffffffffffffffffffffffffffffffffffffffff808a16825288811660208381019190915290881682840152830152016109578a80614f82565b808060200260200160405190810160405280939291908181526020016000905b828210156109a35761099460608302860136819003810190615168565b81526020019060010190610977565b505050505081526020018980602001906109bd9190614f82565b808060200260200160405190810160405280939291908181526020016000905b82821015610a09576109fa60608302860136819003810190615168565b815260200190600101906109dd565b505050505081525090506000610a1e82612811565b600081815260016020526040902054909150610b4d5760008181526001602081905260409182902081905598507f6fa57e1a7a1fbbf3623af2b2025fcd9a5e7e4e31a2a6ec7523445f18e9c50ebf903390610a7b908c018c614edf565b610a8990602081019061458d565b8484604051610a9b9493929190615271565b60405180910390a16000610ab260608b018b614f1d565b90501115610b4d57610b04610aca60608b018b614f1d565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061284192505050565b7fbea766d03fa1efd3f81cc8634d08320bc62bb0ed9234ac59bbaafa5893fb6b133382610b3460608d018d614f1d565b604051610b4494939291906152bb565b60405180910390a15b50505050505050610b5e6001600055565b919050565b600080610b6e61262f565b610b7b6060840184614fe9565b9050600003610bb6576040517f9c95219f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080516101208101825260006080820181815260a08301829052835160608082018652838252602080830185905282870185905260c086019290925260e085018190526101008501819052918452830182905292820152818101919091526040805160a081018252600080825260208083018290528351606080820186528382529181018390528085019290925292820152818101829052608081019190915260606000610c6787830188614fe9565b6040805160206001939093018302810190915293508801359150506000819003610cbd576040517fc2ee700900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b610ccd6060890189614fe9565b905081108015610cdd5750600082115b156116f257610cef6060890189614fe9565b82818110610cff57610cff6152f1565b9050602002810190610d119190615320565b610d1a90615354565b80519095509350610d2e6060890189614fe9565b6000818110610d3f57610d3f6152f1565b9050602002810190610d519190615320565b610d5b90806153ee565b610d699060a0810190614f82565b610d7660608b018b614fe9565b6000818110610d8757610d876152f1565b9050602002810190610d999190615320565b60200135818110610dac57610dac6152f1565b610dc2926020606090920201908101915061458d565b73ffffffffffffffffffffffffffffffffffffffff168460600151866020015181518110610df257610df26152f1565b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff1614610f32578360600151856020015181518110610e3357610e336152f1565b602090810291909101015151610e4c60608a018a614fe9565b6000818110610e5d57610e5d6152f1565b9050602002810190610e6f9190615320565b610e7990806153ee565b610e879060a0810190614f82565b610e9460608c018c614fe9565b6000818110610ea557610ea56152f1565b9050602002810190610eb79190615320565b60200135818110610eca57610eca6152f1565b610ee0926020606090920201908101915061458d565b6040517ff902523f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92831660048201529116602482015260440161027b565b610f3f6060890189614fe9565b6000818110610f5057610f506152f1565b9050602002810190610f629190615320565b610f6c90806153ee565b610f7a9060c0810190614f82565b610f8760608b018b614fe9565b6000818110610f9857610f986152f1565b9050602002810190610faa9190615320565b60400135818110610fbd57610fbd6152f1565b610fd3926020606090920201908101915061458d565b73ffffffffffffffffffffffffffffffffffffffff168460800151866040015181518110611003576110036152f1565b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff16146110db578360800151856040015181518110611044576110446152f1565b60209081029190910101515161105d60608a018a614fe9565b600081811061106e5761106e6152f1565b90506020028101906110809190615320565b61108a90806153ee565b6110989060c0810190614f82565b6110a560608c018c614fe9565b60008181106110b6576110b66152f1565b90506020028101906110c89190615320565b60400135818110610eca57610eca6152f1565b6110e86060890189614fe9565b60008181106110f9576110f96152f1565b905060200281019061110b9190615320565b61111590806153ee565b6111239060a0810190614f82565b61113060608b018b614fe9565b6000818110611141576111416152f1565b90506020028101906111539190615320565b60200135818110611166576111666152f1565b905060600201602001602081019061117e9190615422565b60ff16846060015186602001518151811061119b5761119b6152f1565b60200260200101516020015160ff16146112ba5783606001518560200151815181106111c9576111c96152f1565b6020026020010151602001518880606001906111e59190614fe9565b60008181106111f6576111f66152f1565b90506020028101906112089190615320565b61121290806153ee565b6112209060a0810190614f82565b61122d60608c018c614fe9565b600081811061123e5761123e6152f1565b90506020028101906112509190615320565b60200135818110611263576112636152f1565b905060600201602001602081019061127b9190615422565b6040517f0f6ce47700000000000000000000000000000000000000000000000000000000815260ff92831660048201529116602482015260440161027b565b6112c76060890189614fe9565b60008181106112d8576112d86152f1565b90506020028101906112ea9190615320565b6112f490806153ee565b6113029060c0810190614f82565b61130f60608b018b614fe9565b6000818110611320576113206152f1565b90506020028101906113329190615320565b60400135818110611345576113456152f1565b905060600201602001602081019061135d9190615422565b60ff16846080015186604001518151811061137a5761137a6152f1565b60200260200101516020015160ff16146114425783608001518560400151815181106113a8576113a86152f1565b6020026020010151602001518880606001906113c49190614fe9565b60008181106113d5576113d56152f1565b90506020028101906113e79190615320565b6113f190806153ee565b6113ff9060c0810190614f82565b61140c60608c018c614fe9565b600081811061141d5761141d6152f1565b905060200281019061142f9190615320565b60400135818110611263576112636152f1565b600061144d85612811565b6000818152600160205260409020549091506114c05784516040805133815273ffffffffffffffffffffffffffffffffffffffff909216602083015281018290527fb70c12fa453793fa6818ec07c91e74363a47aa6a6829dcd9533937fdf30314f39060600160405180910390a16116e9565b60006114db8688602001518960400151338b60600151612885565b905089604001358160600151111561154b5785516040805133815273ffffffffffffffffffffffffffffffffffffffff909216602083015281018390527fe3151dc8cb7a54ffc4baabd28c1f241c94d510b5e5b502491ac3cad6c16316d5906060015b60405180910390a16116e7565b80604001516000036115ac5785516040805133815273ffffffffffffffffffffffffffffffffffffffff909216602083015281018390527f500b713857325f9e6dcb52ae832eca9109d107ed1aae9cb4928b4c1e13f051aa9060600161153e565b600086608001518860400151815181106115c8576115c86152f1565b6020908102919091018101510151604083015190915060006115ef8760ff85166002612fae565b9050808211156115fd578091505b5060008061161b85606001516001856130339092919063ffffffff16565b905061165b8a606001518c602001518151811061163a5761163a6152f1565b60200260200101516020015160ff166001836130519092919063ffffffff16565b9150600090506116708360ff86166002613051565b905061167c818961543d565b9750611688828d614e18565b9b506116958282876130b3565b7f219a030b7ae56e7bea2baab709a4a45dc174a1f85e57730e5cb395bc32962542338c83856040516116ca9493929190615480565b60405180910390a150508651600101808852602002870183905250505b505b50600101610cc0565b6117008260208a013561543d565b965050508535851015611749576040517f45094d88000000000000000000000000000000000000000000000000000000008152863560048201526024810186905260440161027b565b841561181257611812338661176160608a018a614fe9565b6000818110611772576117726152f1565b90506020028101906117849190615320565b61178e90806153ee565b61179c9060c0810190614f82565b6117a960608c018c614fe9565b60008181106117ba576117ba6152f1565b90506020028101906117cc9190615320565b604001358181106117df576117df6152f1565b6117f5926020606090920201908101915061458d565b73ffffffffffffffffffffffffffffffffffffffff169190612784565b60006118216080880188614f1d565b905011156119d4573363059bebe661183c6060890189614fe9565b600081811061184d5761184d6152f1565b905060200281019061185f9190615320565b61186990806153ee565b6118779060c0810190614f82565b61188460608b018b614fe9565b6000818110611895576118956152f1565b90506020028101906118a79190615320565b604001358181106118ba576118ba6152f1565b6118d0926020606090920201908101915061458d565b6118dd60608a018a614fe9565b60008181106118ee576118ee6152f1565b90506020028101906119009190615320565b61190a90806153ee565b6119189060a0810190614f82565b61192560608c018c614fe9565b6000818110611936576119366152f1565b90506020028101906119489190615320565b6020013581811061195b5761195b6152f1565b611971926020606090920201908101915061458d565b888861198060808d018d614f1d565b6040518763ffffffff1660e01b81526004016119a196959493929190614e74565b600060405180830381600087803b1580156119bb57600080fd5b505af11580156119cf573d6000803e3d6000fd5b505050505b8315611a9f57611a9f3330866119ed60608b018b614fe9565b60008181106119fe576119fe6152f1565b9050602002810190611a109190615320565b611a1a90806153ee565b611a289060a0810190614f82565b611a3560608d018d614fe9565b6000818110611a4657611a466152f1565b9050602002810190611a589190615320565b60200135818110611a6b57611a6b6152f1565b611a81926020606090920201908101915061458d565b73ffffffffffffffffffffffffffffffffffffffff169291906126a2565b60005b8151811015611ad557611acd828281518110611ac057611ac06152f1565b6020026020010151613376565b600101611aa2565b50505050611ae36001600055565b915091565b611af061262f565b8351855173ffffffffffffffffffffffffffffffffffffffff918216911603611b605784516040517f227e4ce900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116600482015260240161027b565b8360600151836040013581518110611b7a57611b7a6152f1565b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff168560800151846020013581518110611bb657611bb66152f1565b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff1614611c7b578460800151836020013581518110611bf757611bf76152f1565b6020026020010151600001518460600151846040013581518110611c1d57611c1d6152f1565b6020908102919091010151516040517ff902523f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92831660048201529116602482015260440161027b565b8360600151836040013581518110611c9557611c956152f1565b60200260200101516020015160ff168560800151846020013581518110611cbe57611cbe6152f1565b60200260200101516020015160ff1614611d61578460800151836020013581518110611cec57611cec6152f1565b6020026020010151602001518460600151846040013581518110611d1257611d126152f1565b6020026020010151602001516040517f0f6ce47700000000000000000000000000000000000000000000000000000000815260040161027b92919060ff92831681529116602082015260400190565b606085015180518435908110611d7957611d796152f1565b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff168460800151846060013581518110611db557611db56152f1565b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff1614611e1a57606085015180518435908110611df457611df46152f1565b6020026020010151600001518460800151846060013581518110611c1d57611c1d6152f1565b606085015180518435908110611e3257611e326152f1565b60200260200101516020015160ff168460800151846060013581518110611e5b57611e5b6152f1565b60200260200101516020015160ff1614611ead57606085015180518435908110611e8757611e876152f1565b6020026020010151602001518460800151846060013581518110611d1257611d126152f1565b600060016000611ebc88612811565b81526020019081526020016000205403611f3b577fb70c12fa453793fa6818ec07c91e74363a47aa6a6829dcd9533937fdf30314f3338660000151611f0088612811565b6040805173ffffffffffffffffffffffffffffffffffffffff94851681529390921660208401529082015260600160405180910390a1612221565b600060016000611f4a87612811565b81526020019081526020016000205403611f8e577fb70c12fa453793fa6818ec07c91e74363a47aa6a6829dcd9533937fdf30314f3338560000151611f0087612811565b7fd153812deb929a6e4378f6f8cf61d010470840bf2e736f43fb2275803958bfa233868686604051611fc394939291906155b0565b60405180910390a16000611fe68685600001358660200135886000015186612885565b9050600061200386866040013587606001358a6000015188612885565b9050600061201183836135b4565b905061202681604001518260000151856130b3565b61203981606001518260200151846130b3565b6060810151815160009161204c9161543d565b9050600082604001518360200151612064919061543d565b9050811561210a57336000908152600260209081526040822060808d01518051869492938d013590811061209a5761209a6152f1565b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a60800135815260200190815260200160002060008282546121049190614e18565b90915550505b80156121ae5733600090815260026020526040812060808b015180518493919060608d013590811061213e5761213e6152f1565b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a60a00135815260200190815260200160002060008282546121a89190614e18565b90915550505b5050604080513381528251602080830191909152830151818301529082015160608083019190915282015160808201527f3f20e55919cca701abb2a40ab72542b25ea7eed63a50f979dd2cd3231e5f488d9060a00160405180910390a161221483613376565b61221d82613376565b5050505b61222b6001600055565b5050505050565b60608167ffffffffffffffff81111561224d5761224d614620565b60405190808252806020026020018201604052801561228057816020015b606081526020019060019003908161226b5790505b50905060005b82811015612320576122f0308585848181106122a4576122a46152f1565b90506020028101906122b69190614f1d565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061360a92505050565b828281518110612302576123026152f1565b602002602001018190525080806123189061563a565b915050612286565b5092915050565b61232f61262f565b8060000361238e576040517ff7a898f600000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff841660248201526044810183905260640161027b565b33600090815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684528252808320858452909152812054906123d2838361362f565b9050801561248d576123e4818361543d565b33600081815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8b168085529083528184208a855283529281902094909455835192835282015290810185905260608101849052608081018290527febff2602b3f468259e1e99f613fed6691f3a6526effe6ef3e768ba7ae7a36c4f9060a00160405180910390a161248d73ffffffffffffffffffffffffffffffffffffffff86163383612784565b505061035a6001600055565b73ffffffffffffffffffffffffffffffffffffffff80841660009081526002602090815260408083209386168352928152828220848352905220545b9392505050565b60006124e661262f565b6124f3602083018361458d565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146125855733612533602084018461458d565b6040517f4702b91400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92831660048201529116602482015260440161027b565b600061259861259384615672565b612811565b6000818152600160205260409020549091507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016126245760008181526001602081905260408083209290925590519092507f74037e398a4a92c9c1c49ac01c1dabd7f71165fbb4810b72c068f08edd1924489061261b9033908690859061574e565b60405180910390a15b50610b5e6001600055565b60026000540361269b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161027b565b6002600055565b60405173ffffffffffffffffffffffffffffffffffffffff8085166024830152831660448201526064810182905261277e9085907f23b872dd00000000000000000000000000000000000000000000000000000000906084015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152613645565b50505050565b60405173ffffffffffffffffffffffffffffffffffffffff831660248201526044810182905261035a9084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064016126fc565b600081516000036127ed57506000919050565b506020015160001a90565b6000806128058484613754565b5160001a949350505050565b6000816040516020016128249190615853565b604051602081830303815290604052805190602001209050919050565b61284a81613785565b61288257806040517f644cc25800000000000000000000000000000000000000000000000000000000815260040161027b9190615866565b50565b6040805161018081018252600060e08201818152610100830182905283516060808201865283825260208083018590528287018590526101208601929092526101408501819052610160850181905291845283018290529282018190528282018190526080820183905260a082015260c0810191909152600061290787612811565b60408051600480825260a08201909252919250606091600091816020015b606081526020019060019003908161292557905050895160408051600381526020810187905273ffffffffffffffffffffffffffffffffffffffff92831681830152918916606083015260808201905290915081600180038151811061298d5761298d6152f1565b6020026020010181905250612b22896060015189815181106129b1576129b16152f1565b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff168a606001518a815181106129e9576129e96152f1565b60200260200101516020015160ff168b606001518b81518110612a0e57612a0e6152f1565b602002602001015160400151600260008e6000015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008e606001518e81518110612a7557612a756152f1565b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008e606001518e81518110612ad357612ad36152f1565b602002602001015160400151815260200190815260200160002054600060408051600581526020810196909652858101949094526060850192909252608084015260a083015260c08201905290565b81600160030381518110612b3857612b386152f1565b6020026020010181905250612c7e89608001518881518110612b5c57612b5c6152f1565b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff168a608001518981518110612b9457612b946152f1565b60200260200101516020015160ff168b608001518a81518110612bb957612bb96152f1565b602002602001015160400151600260008e6000015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008e608001518d81518110612c2057612c206152f1565b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008e608001518d81518110612ad357612ad36152f1565b81600160040381518110612c9457612c946152f1565b6020026020010181905250612ca981866137b5565b9150506000886000015173ffffffffffffffffffffffffffffffffffffffff1690506000808a604001516000015173ffffffffffffffffffffffffffffffffffffffff16636046c5f98c6040015160200151612d0f863060009182526020526040902090565b612d208f6040015160400151613ac5565b604080516000815260208101918290527fffffffff0000000000000000000000000000000000000000000000000000000060e087901b16909152612d6c939291908a90602481016158e2565b600060405180830381865afa158015612d89573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052612dcf919081019061598a565b91509150600082600181518110612de857612de86152f1565b60200260200101519050600083600081518110612e0757612e076152f1565b602002602001015190506000600260008f6000015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008f608001518e81518110612e6e57612e6e6152f1565b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008f608001518e81518110612ecc57612ecc6152f1565b60200260200101516040015181526020019081526020016000205490506000612f258f608001518e81518110612f0457612f046152f1565b60200260200101516020015160ff16600084612fae9092919063ffffffff16565b905080841115612f33578093505b50506040805160028152602081018490528082018390526060810190915286600281518110612f6457612f646152f1565b6020908102919091018101919091526040805160e0810182529e8f52908e019b909b52998c015260608b019890985250608089019190915260a08801525050505060c08301525090565b60008260121115612fe35760128390036002831615612fd957612fd18582613aee565b9150506124d5565b612fd18582613b74565b601283111561302c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffee8301600183161561302257612fd18582613bac565b612fd18582613bfa565b50826124d5565b60006130498484670de0b6b3a764000085613c1d565b949350505050565b60008260121115613074576012839003600183161561302257612fd18582613bac565b601283111561302c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffee83016002831615612fd957612fd18582613aee565b8281608001516003815181106130cb576130cb6152f1565b60200260200101516004815181106130e5576130e56152f1565b602002602001018181525050818160800151600481518110613109576131096152f1565b6020026020010151600481518110613123576131236152f1565b602090810291909101015282156132315780515173ffffffffffffffffffffffffffffffffffffffff16600090815260026020526040812060808301518051869391906003908110613177576131776152f1565b6020026020010151600081518110613191576131916152f1565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083608001516003815181106131ec576131ec6152f1565b6020026020010151600281518110613206576132066152f1565b60200260200101518152602001908152602001600020600082825461322b9190614e18565b90915550505b81156133345780515173ffffffffffffffffffffffffffffffffffffffff1660009081526002602052604081206080830151805185939190600490811061327a5761327a6152f1565b6020026020010151600081518110613294576132946152f1565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083608001516004815181106132ef576132ef6152f1565b6020026020010151600281518110613309576133096152f1565b60200260200101518152602001908152602001600020600082825461332e919061543d565b90915550505b7f17a5c0f3785132a57703932032f6863e7920434150aa1dc940e567b440fdce1f3382608001516040516133699291906159ee565b60405180910390a1505050565b60c08101515115613403578060000151604001516020015173ffffffffffffffffffffffffffffffffffffffff1663946aadc68260a001518360c001516040518363ffffffff1660e01b81526004016133d0929190615a1d565b600060405180830381600087803b1580156133ea57600080fd5b505af11580156133fe573d6000803e3d6000fd5b505050505b80516020015115612882576000808260000151604001516000015173ffffffffffffffffffffffffffffffffffffffff16636046c5f98460000151604001516020015161345e8660a001513060009182526020526040902090565b61347387600001516040015160400151613c7a565b6080880151604080516000815260208101918290527fffffffff0000000000000000000000000000000000000000000000000000000060e088901b169091526134c39493929190602481016158e2565b600060405180830381865afa1580156134e0573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052613526919081019061598a565b805191935091501561035a578260000151604001516020015173ffffffffffffffffffffffffffffffffffffffff1663946aadc68460a00151836040518363ffffffff1660e01b815260040161357d929190615a1d565b600060405180830381600087803b15801561359757600080fd5b505af11580156135ab573d6000803e3d6000fd5b50505050505050565b6135df6040518060800160405280600081526020016000815260200160008152602001600081525090565b6135e98383613ca5565b825260408201526135fa8284613ca5565b6020830152606082015292915050565b60606124d58383604051806060016040528060278152602001615c4260279139613d6a565b600081831061363e57816124d5565b5090919050565b60006136a7826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16613def9092919063ffffffff16565b90508051600014806136c85750808060200190518101906136c89190615a36565b61035a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161027b565b600080613760846127da565b600202600101905060006137748585613dfe565b949091019093016020019392505050565b600060088251101561379957506000919050565b506008015167ffffffffffffffff1667ff0a89c674ee78741490565b60606000825167ffffffffffffffff8111156137d3576137d3614620565b6040519080825280602002602001820160405280156137fc578160200160208202803683370190505b509050600080845111613810576000613816565b83516001015b855160010101905060008167ffffffffffffffff81111561383957613839614620565b60405190808252806020026020018201604052801561386c57816020015b60608152602001906001900390816138575790505b5090506000613891604080516002815233602082015230818301526060810190915290565b8282815181106138a3576138a36152f1565b602002602001018190525060005b87518110156139015781806001019250508781815181106138d4576138d46152f1565b60200260200101518383815181106138ee576138ee6152f1565b60209081029190910101526001016138b1565b50855115613abb57808060010191505083828281518110613924576139246152f1565b602002602001018190525060005b8651811015613ab9576139e3878281518110613950576139506152f1565b6020026020010151600001516139c061398d8a8581518110613974576139746152f1565b6020026020010151602001518051602090810291012090565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000006000908152601c91909152603c902090565b8984815181106139d2576139d26152f1565b602002602001015160400151613e55565b613a1c576040517f52bf98480000000000000000000000000000000000000000000000000000000081526004810182905260240161027b565b868181518110613a2e57613a2e6152f1565b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff16858281518110613a6257613a626152f1565b6020026020010181815250508180600101925050868181518110613a8857613a886152f1565b602002602001015160200151838381518110613aa657613aa66152f1565b6020908102919091010152600101613932565b505b5095945050505050565b6000602082901b77ffffffffffffffffffffffffffffffffffffffff000000001660021761054f565b6000604e8210613b2e578215613b24577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff613b27565b60005b905061054f565b50600a81900a8281029083818381613b4857613b48615a53565b0414612320577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff613049565b600a81900a613b838184615a82565b9050604e821061054f578215613ba357613b9e82600a615bb9565b6124d5565b50600092915050565b6000604e8210613bd0578215613bc3576001613bc6565b60005b60ff16905061054f565b600a82900a808481613be457613be4615a53565b0491508082028414612320575060010192915050565b6000604e821015613ba35781600a0a8381613c1757613c17615a53565b046124d5565b600080613c2b868686613ec6565b90506001836002811115613c4157613c41615bc5565b148015613c5e575060008480613c5957613c59615a53565b868809115b15613c7157613c6e600182614e18565b90505b95945050505050565b600062010000602083901b77ffffffffffffffffffffffffffffffffffffffff00000000161761054f565b6000806000613cc88460600151600186604001516130339092919063ffffffff16565b604086015190915081811115613cdb5750805b613d1d866000015160800151876020015181518110613cfc57613cfc6152f1565b60200260200101516020015160ff166000836130519092919063ffffffff16565b92506000613d3b87606001516001846130339092919063ffffffff16565b9050613d5e86600001516080015187602001518151811061163a5761163a6152f1565b94505050509250929050565b60606000808573ffffffffffffffffffffffffffffffffffffffff1685604051613d949190615bf4565b600060405180830381855af49150503d8060008114613dcf576040519150601f19603f3d011682016040523d82523d6000602084013e613dd4565b606091505b5091509150613de586838387613ff0565b9695505050505050565b60606130498484600085614090565b6000613e09836127da565b8210613e455782826040517f30489add00000000000000000000000000000000000000000000000000000000815260040161027b929190615c06565b50600202016003015161ffff1690565b6000806000613e6485856141a9565b90925090506000816004811115613e7d57613e7d615bc5565b148015613eb557508573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b80613de55750613de58686866141ee565b600080807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff85870985870292508281108382030391505080600003613f1e57838281613f1457613f14615a53565b04925050506124d5565b808411613f87576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4d6174683a206d756c446976206f766572666c6f770000000000000000000000604482015260640161027b565b60008486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091026000889003889004909101858311909403939093029303949094049190911702949350505050565b6060831561408657825160000361407f5773ffffffffffffffffffffffffffffffffffffffff85163b61407f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161027b565b5081613049565b613049838361434b565b606082471015614122576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c0000000000000000000000000000000000000000000000000000606482015260840161027b565b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161414b9190615bf4565b60006040518083038185875af1925050503d8060008114614188576040519150601f19603f3d011682016040523d82523d6000602084013e61418d565b606091505b509150915061419e87838387613ff0565b979650505050505050565b60008082516041036141df5760208301516040840151606085015160001a6141d38782858561438f565b945094505050506141e7565b506000905060025b9250929050565b60008060008573ffffffffffffffffffffffffffffffffffffffff16631626ba7e60e01b8686604051602401614225929190615c28565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009094169390931790925290516142ae9190615bf4565b600060405180830381855afa9150503d80600081146142e9576040519150601f19603f3d011682016040523d82523d6000602084013e6142ee565b606091505b509150915081801561430257506020815110155b8015613de5575080517f1626ba7e00000000000000000000000000000000000000000000000000000000906143409083016020908101908401614ec6565b149695505050505050565b81511561435b5781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161027b9190615866565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156143c65750600090506003614475565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561441a573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811661446e57600060019250925050614475565b9150600090505b94509492505050565b73ffffffffffffffffffffffffffffffffffffffff8116811461288257600080fd5b6000806000606084860312156144b557600080fd5b83356144c08161447e565b95602085013595506040909401359392505050565b6000602082840312156144e757600080fd5b5035919050565b60008060008060006080868803121561450657600080fd5b85356145118161447e565b945060208601356145218161447e565b935060408601359250606086013567ffffffffffffffff8082111561454557600080fd5b818801915088601f83011261455957600080fd5b81358181111561456857600080fd5b89602082850101111561457a57600080fd5b9699959850939650602001949392505050565b60006020828403121561459f57600080fd5b81356124d58161447e565b6000602082840312156145bc57600080fd5b813567ffffffffffffffff8111156145d357600080fd5b8201608081850312156124d557600080fd5b6000602082840312156145f757600080fd5b813567ffffffffffffffff81111561460e57600080fd5b820160a081850312156124d557600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff8111828210171561467257614672614620565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156146bf576146bf614620565b604052919050565b801515811461288257600080fd5b8035610b5e816146c7565b6000606082840312156146f257600080fd5b6146fa61464f565b905081356147078161447e565b815260208201356147178161447e565b6020820152604082013561472a8161447e565b604082015292915050565b600067ffffffffffffffff82111561474f5761474f614620565b5060051b60200190565b803560ff81168114610b5e57600080fd5b60006060828403121561477c57600080fd5b61478461464f565b905081356147918161447e565b815261479f60208301614759565b60208201526040820135604082015292915050565b600082601f8301126147c557600080fd5b813560206147da6147d583614735565b614678565b828152606092830285018201928282019190878511156147f957600080fd5b8387015b8581101561481c5761480f898261476a565b84529284019281016147fd565b5090979650505050505050565b600060e0828403121561483b57600080fd5b60405160a0810167ffffffffffffffff828210818311171561485f5761485f614620565b81604052829350843591506148738261447e565b818352614882602086016146d5565b602084015261489486604087016146e0565b604084015260a08501359150808211156148ad57600080fd5b6148b9868387016147b4565b606084015260c08501359150808211156148d257600080fd5b506148df858286016147b4565b6080830152505092915050565b600067ffffffffffffffff82111561490657614906614620565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b600082601f83011261494357600080fd5b81356149516147d5826148ec565b81815284602083860101111561496657600080fd5b816020850160208301376000918101602001919091529392505050565b600082601f83011261499457600080fd5b813560206149a46147d583614735565b82815260059290921b840181019181810190868411156149c357600080fd5b8286015b84811015614ae857803567ffffffffffffffff808211156149e757600080fd5b908801906060828b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0011215614a1e5760008081fd5b614a2661464f565b86830135614a338161447e565b815260408381013583811115614a495760008081fd5b8401603f81018d13614a5b5760008081fd5b88810135614a6b6147d582614735565b81815260059190911b82018301908a8101908f831115614a8b5760008081fd5b928401925b82841015614aa95783358252928b0192908b0190614a90565b858c0152505050606084013583811115614ac35760008081fd5b614ad18d8a83880101614932565b9183019190915250855250509183019183016149c7565b509695505050505050565b6000806000806000858703610140811215614b0d57600080fd5b863567ffffffffffffffff80821115614b2557600080fd5b614b318a838b01614829565b97506020890135915080821115614b4757600080fd5b614b538a838b01614829565b965060c07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc084011215614b8557600080fd5b604089019550610100890135925080831115614ba057600080fd5b614bac8a848b01614983565b9450610120890135925080831115614bc357600080fd5b5050614bd188828901614983565b9150509295509295909350565b60008060208385031215614bf157600080fd5b823567ffffffffffffffff80821115614c0957600080fd5b818501915085601f830112614c1d57600080fd5b813581811115614c2c57600080fd5b8660208260051b8501011115614c4157600080fd5b60209290920196919550909350505050565b60005b83811015614c6e578181015183820152602001614c56565b50506000910152565b60008151808452614c8f816020860160208601614c53565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015614d34577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0888603018452614d22858351614c77565b94509285019290850190600101614ce8565b5092979650505050505050565b600080600060608486031215614d5657600080fd5b8335614d618161447e565b92506020840135614d718161447e565b929592945050506040919091013590565b60008060408385031215614d9557600080fd5b8235614da08161447e565b946020939093013593505050565b600060208284031215614dc057600080fd5b813567ffffffffffffffff811115614dd757600080fd5b820160e081850312156124d557600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082018082111561054f5761054f614de9565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b600073ffffffffffffffffffffffffffffffffffffffff808916835280881660208401525085604083015284606083015260a06080830152614eba60a083018486614e2b565b98975050505050505050565b600060208284031215614ed857600080fd5b5051919050565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1833603018112614f1357600080fd5b9190910192915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614f5257600080fd5b83018035915067ffffffffffffffff821115614f6d57600080fd5b6020019150368190038213156141e757600080fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614fb757600080fd5b83018035915067ffffffffffffffff821115614fd257600080fd5b60200191506060810236038213156141e757600080fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261501e57600080fd5b83018035915067ffffffffffffffff82111561503957600080fd5b6020019150600581901b36038213156141e757600080fd5b604081526000615065604083018688614e2b565b82810360208401528381527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84111561509d57600080fd5b8360051b80866020840137016020019695505050505050565b600080600080608085870312156150cc57600080fd5b84516150d78161447e565b60208601519094506150e88161447e565b60408601519093506150f98161447e565b606086015190925067ffffffffffffffff81111561511657600080fd5b8501601f8101871361512757600080fd5b80516151356147d5826148ec565b81815288602083850101111561514a57600080fd5b61515b826020830160208601614c53565b9598949750929550505050565b60006060828403121561517a57600080fd5b6124d5838361476a565b600081518084526020808501945080840160005b838110156151e3578151805173ffffffffffffffffffffffffffffffffffffffff1688528381015160ff16848901526040908101519088015260609096019590820190600101615198565b509495945050505050565b600073ffffffffffffffffffffffffffffffffffffffff80835116845260208301511515602085015260408301518181511660408601528160208201511660608601528160408201511660808601525050606082015160e060a085015261525860e0850182615184565b9050608083015184820360c0860152613c718282615184565b600073ffffffffffffffffffffffffffffffffffffffff8087168352808616602084015250608060408301526152aa60808301856151ee565b905082606083015295945050505050565b73ffffffffffffffffffffffffffffffffffffffff85168152836020820152606060408201526000613de5606083018486614e2b565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81833603018112614f1357600080fd5b60006080823603121561536657600080fd5b6040516080810167ffffffffffffffff828210818311171561538a5761538a614620565b81604052843591508082111561539f57600080fd5b6153ab36838701614829565b8352602085013560208401526040850135604084015260608501359150808211156153d557600080fd5b506153e236828601614983565b60608301525092915050565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff21833603018112614f1357600080fd5b60006020828403121561543457600080fd5b6124d582614759565b8181038181111561054f5761054f614de9565b600081518084526020808501945080840160005b838110156151e357815187529582019590820190600101615464565b600073ffffffffffffffffffffffffffffffffffffffff8087168352602060808185015286516080808601526154ba6101008601826151ee565b90508188015160a086015260408089015160c08701526060808a01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808885030160e08901528381518086528686019150868160051b870101878401935060005b82811015615593577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe088830301845284518a815116835289810151878b85015261556788850182615450565b91890151848303858b015291905061557f8183614c77565b968b0196958b01959350505060010161551b565b50948a019b909b5250509095019590955250919695505050505050565b600061012073ffffffffffffffffffffffffffffffffffffffff871683528060208401526155e0818401876151ee565b905082810360408401526155f481866151ee565b9150508235606083015260208301356080830152604083013560a0830152606083013560c0830152608083013560e083015260a083013561010083015295945050505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361566b5761566b614de9565b5060010190565b600061054f3683614829565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126156b357600080fd5b830160208101925035905067ffffffffffffffff8111156156d357600080fd5b6060810236038213156141e757600080fd5b8183526000602080850194508260005b858110156151e35781356157088161447e565b73ffffffffffffffffffffffffffffffffffffffff16875260ff61572d838501614759565b168784015260408281013590880152606096870196909101906001016156f5565b600073ffffffffffffffffffffffffffffffffffffffff808616835260606020840152843561577c8161447e565b811660608401526020850135615791816146c7565b1515608084015260408501356157a68161447e565b811660a084015260608501356157bb8161447e565b811660c084015260808501356157d08161447e565b1660e08301526157e360a085018561567e565b60e06101008501526157fa610140850182846156e5565b91505061580a60c086018661567e565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0858403016101208601526158408382846156e5565b9350505050826040830152949350505050565b6020815260006124d560208301846151ee565b6020815260006124d56020830184614c77565b600082825180855260208086019550808260051b84010181860160005b8481101561481c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08684030189526158d0838351615450565b98840198925090830190600101615896565b73ffffffffffffffffffffffffffffffffffffffff8616815284602082015283604082015260a06060820152600061591d60a0830185615879565b8281036080840152614eba8185615450565b600082601f83011261594057600080fd5b815160206159506147d583614735565b82815260059290921b8401810191818101908684111561596f57600080fd5b8286015b84811015614ae85780518352918301918301615973565b6000806040838503121561599d57600080fd5b825167ffffffffffffffff808211156159b557600080fd5b6159c18683870161592f565b935060208501519150808211156159d757600080fd5b506159e48582860161592f565b9150509250929050565b73ffffffffffffffffffffffffffffffffffffffff831681526040602082015260006130496040830184615879565b8281526040602082015260006130496040830184615450565b600060208284031215615a4857600080fd5b81516124d5816146c7565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b808202811582820484141761054f5761054f614de9565b600181815b80851115615af257817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115615ad857615ad8614de9565b80851615615ae557918102915b93841c9390800290615a9e565b509250929050565b600082615b095750600161054f565b81615b165750600061054f565b8160018114615b2c5760028114615b3657615b52565b600191505061054f565b60ff841115615b4757615b47614de9565b50506001821b61054f565b5060208310610133831016604e8410600b8410161715615b75575081810a61054f565b615b7f8383615a99565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115615bb157615bb1614de9565b029392505050565b60006124d58383615afa565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60008251614f13818460208701614c53565b604081526000615c196040830185614c77565b90508260208301529392505050565b8281526040602082015260006130496040830184614c7756fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", - "sourceMap": "10600:36632:172:-:0;;;12442:139;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1716:1:22;8010:75:172;1821:22:22;1109:11:71;;;;8018:66:172;;12567:6;;1075:46:71;;8018:66:172;;1075:23:71;:46::i;:::-;1188:11;;;;1136:64;;;;;;1143:10;;1179:4;;1136:64;:::i;:::-;;;;;;;;1250:15;;1210:56;;:39;:56::i;:::-;975:298;;12442:139:172;10600:36632;;1424:292:153;1538:16;;;;;;1568:28;;;1564:112;;1619:46;;-1:-1:-1;;;1619:46:153;;;;;3007:25:227;;;3048:18;;;3041:34;;;2980:18;;1619:46:153;;;;;;;;1564:112;1685:24;1703:5;1685:17;:24::i;:::-;1506:210;1424:292;;:::o;1111:293:88:-;1174:26;;;;-1:-1:-1;;;;;1280:49:88;;;1174:26;1334:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1334:16:88;;1280:71;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1280:71:88;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;1111:293:88:o;1075:155:153:-;1151:19;1164:5;1151:12;:19::i;:::-;1146:78;;1207:5;1193:20;;-1:-1:-1;;;1193:20:153;;;;;;;;:::i;1146:78::-;1075:155;:::o;550:376::-;615:4;650:1;635:5;:12;:16;631:34;;;-1:-1:-1;660:5:153;;550:376;-1:-1:-1;550:376:153:o;631:34::-;-1:-1:-1;846:1:153;835:13;829:20;-1:-1:-1;;;;;825:32:153;667:18:152;883:36:153;;550:376::o;14:127:227:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:131;-1:-1:-1;;;;;221:31:227;;211:42;;201:70;;267:1;264;257:12;282:250;367:1;377:113;391:6;388:1;385:13;377:113;;;467:11;;;461:18;448:11;;;441:39;413:2;406:10;377:113;;;-1:-1:-1;;524:1:227;506:16;;499:27;282:250::o;537:698::-;590:5;643:3;636:4;628:6;624:17;620:27;610:55;;661:1;658;651:12;610:55;684:13;;-1:-1:-1;;;;;746:10:227;;;743:36;;;759:18;;:::i;:::-;834:2;828:9;802:2;888:13;;-1:-1:-1;;884:22:227;;;908:2;880:31;876:40;864:53;;;932:18;;;952:22;;;929:46;926:72;;;978:18;;:::i;:::-;1018:10;1014:2;1007:22;1053:2;1045:6;1038:18;1099:3;1092:4;1087:2;1079:6;1075:15;1071:26;1068:35;1065:55;;;1116:1;1113;1106:12;1065:55;1129:76;1202:2;1195:4;1187:6;1183:17;1176:4;1168:6;1164:17;1129:76;:::i;:::-;1223:6;537:698;-1:-1:-1;;;;;;537:698:227:o;1240:923::-;1373:6;1426:2;1414:9;1405:7;1401:23;1397:32;1394:52;;;1442:1;1439;1432:12;1394:52;1469:16;;-1:-1:-1;;;;;1534:14:227;;;1531:34;;;1561:1;1558;1551:12;1531:34;1584:22;;;;1640:4;1622:16;;;1618:27;1615:47;;;1658:1;1655;1648:12;1615:47;1691:4;1685:11;1735:4;1727:6;1723:17;1790:6;1778:10;1775:22;1770:2;1758:10;1755:18;1752:46;1749:72;;;1801:18;;:::i;:::-;1837:4;1830:24;1876:9;;1894:31;1876:9;1894:31;:::i;:::-;1934:21;;1994:2;1986:11;;1980:18;2010:16;;;2007:36;;;2039:1;2036;2029:12;2007:36;2076:55;2123:7;2112:8;2108:2;2104:17;2076:55;:::i;:::-;2071:2;2059:15;;2052:80;-1:-1:-1;2063:6:227;1240:923;-1:-1:-1;;;;;1240:923:227:o;2168:270::-;2209:3;2247:5;2241:12;2274:6;2269:3;2262:19;2290:76;2359:6;2352:4;2347:3;2343:14;2336:4;2329:5;2325:16;2290:76;:::i;:::-;2420:2;2399:15;-1:-1:-1;;2395:29:227;2386:39;;;;2427:4;2382:50;;2168:270;-1:-1:-1;;2168:270:227:o;2443:385::-;2675:1;2671;2666:3;2662:11;2658:19;2650:6;2646:32;2635:9;2628:51;2715:6;2710:2;2699:9;2695:18;2688:34;2758:2;2753;2742:9;2738:18;2731:30;2609:4;2778:44;2818:2;2807:9;2803:18;2795:6;2778:44;:::i;:::-;2770:52;2443:385;-1:-1:-1;;;;;2443:385:227:o;3086:827::-;3365:2;3354:9;3347:21;3404:1;3399:2;3388:9;3384:18;3377:29;3328:4;3449:2;3438:9;3434:18;3471:4;3511:2;3506;3495:9;3491:18;3484:30;3534:11;3574:6;3568:13;3610:6;3597:11;3590:27;3648:3;3637:9;3633:19;3626:26;;3687:2;3679:6;3675:15;3661:29;;3708:1;3718:169;3732:6;3729:1;3726:13;3718:169;;;3793:13;;3781:26;;3862:15;;;;3827:12;;;;3754:1;3747:9;3718:169;;;-1:-1:-1;3904:3:227;;3086:827;-1:-1:-1;;;;;;3086:827:227:o;3918:785::-;4077:6;4085;4093;4101;4154:3;4142:9;4133:7;4129:23;4125:33;4122:53;;;4171:1;4168;4161:12;4122:53;4203:9;4197:16;4222:31;4247:5;4222:31;:::i;:::-;4322:2;4307:18;;4301:25;4272:5;;-1:-1:-1;4335:33:227;4301:25;4335:33;:::i;:::-;4439:2;4424:18;;4418:25;4387:7;;-1:-1:-1;4452:33:227;4418:25;4452:33;:::i;:::-;4555:2;4540:18;;4534:25;4504:7;;-1:-1:-1;;;;;;4571:30:227;;4568:50;;;4614:1;4611;4604:12;4568:50;4637:60;4689:7;4680:6;4669:9;4665:22;4637:60;:::i;:::-;4627:70;;;3918:785;;;;;;;:::o;4708:217::-;4855:2;4844:9;4837:21;4818:4;4875:44;4915:2;4904:9;4900:18;4892:6;4875:44;:::i;:::-;4867:52;4708:217;-1:-1:-1;;;4708:217:227:o;:::-;10600:36632:172;;;;;;", - "linkReferences": {} - }, - "deployedBytecode": { - "object": "0x608060405234801561001057600080fd5b50600436106100d45760003560e01c80639e18968b11610081578063d97b2e481161005b578063d97b2e48146101dc578063d9d98ce4146101ef578063e23746a31461020557600080fd5b80639e18968b14610196578063ac9650d8146101a9578063b5c5f672146101c957600080fd5b8063613255ab116100b2578063613255ab1461013a578063847a1bc91461015b5780638a44689c1461016e57600080fd5b80630efe6a8b146100d95780632cb77e9f146100ee5780635cffe9de14610127575b600080fd5b6100ec6100e73660046144a0565b610218565b005b6101126100fc3660046144d5565b6000908152600160208190526040909120541490565b60405190151581526020015b60405180910390f35b6101126101353660046144ee565b61035f565b61014d61014836600461458d565b6104be565b60405190815260200161011e565b6101126101693660046145aa565b610555565b61018161017c3660046145e5565b610b63565b6040805192835260208301919091520161011e565b6100ec6101a4366004614af3565b611ae8565b6101bc6101b7366004614bde565b612232565b60405161011e9190614cc1565b6100ec6101d73660046144a0565b612327565b61014d6101ea366004614d41565b612499565b61014d6101fd366004614d82565b600092915050565b610112610213366004614dae565b6124dc565b61022061262f565b80600003610284576040517f40e97a5e00000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff84166024820152604481018390526064015b60405180910390fd5b6040805133815273ffffffffffffffffffffffffffffffffffffffff85166020820152908101839052606081018290527fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d79060800160405180910390a161030373ffffffffffffffffffffffffffffffffffffffff84163330846126a2565b33600090815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8716845282528083208584529091528120805483929061034b908490614e18565b90915550506001600055505050565b505050565b600061038273ffffffffffffffffffffffffffffffffffffffff86168786612784565b6040517f23e30c8b00000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff8816906323e30c8b906103e19033908a908a9087908b908b90600401614e74565b6020604051808303816000875af1158015610400573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104249190614ec6565b90507f439148f0bbc682ca079e46d6e2c2f0c1e3b820f1a291b069d8882abf8cf18dd98114610482576040517f5b62c5480000000000000000000000000000000000000000000000000000000081526004810182905260240161027b565b6104b18730610492600089614e18565b73ffffffffffffffffffffffffffffffffffffffff8a169291906126a2565b5060019695505050505050565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009073ffffffffffffffffffffffffffffffffffffffff8316906370a0823190602401602060405180830381865afa15801561052b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061054f9190614ec6565b92915050565b600061055f61262f565b60006105b96105716040850185614edf565b61057f906020810190614f1d565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506127da92505050565b9050806000036105f5576040517fb3fc422c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060010361062f576040517ff209c2f400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106398380614f82565b9050600003610674576040517f6c44ef8f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106816020840184614f82565b90506000036106bc576040517f540e5f0b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008080806106ce6040880188614edf565b6106dc90602081019061458d565b73ffffffffffffffffffffffffffffffffffffffff1663b7f1440361070460408a018a614edf565b610712906020810190614f1d565b61071f60408c018c614edf565b61072d906040810190614fe9565b6040518563ffffffff1660e01b815260040161074c9493929190615051565b6000604051808303816000875af115801561076b573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526107b191908101906150b6565b602081015193975091955093509150600081901a90600181901a9060021a821561080a576040517f9a6f079e0000000000000000000000000000000000000000000000000000000081526004810184905260240161027b565b6002821015610848576040517f3eee39540000000000000000000000000000000000000000000000000000000081526004810183905260240161027b565b8015610883576040517f9d5f70980000000000000000000000000000000000000000000000000000000081526004810182905260240161027b565b50505060006040518060a001604052803373ffffffffffffffffffffffffffffffffffffffff168152602001600061090f8b80604001906108c49190614edf565b6108d2906020810190614f1d565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250600192506127f8915050565b1181526040805160608101825273ffffffffffffffffffffffffffffffffffffffff808a16825288811660208381019190915290881682840152830152016109578a80614f82565b808060200260200160405190810160405280939291908181526020016000905b828210156109a35761099460608302860136819003810190615168565b81526020019060010190610977565b505050505081526020018980602001906109bd9190614f82565b808060200260200160405190810160405280939291908181526020016000905b82821015610a09576109fa60608302860136819003810190615168565b815260200190600101906109dd565b505050505081525090506000610a1e82612811565b600081815260016020526040902054909150610b4d5760008181526001602081905260409182902081905598507f6fa57e1a7a1fbbf3623af2b2025fcd9a5e7e4e31a2a6ec7523445f18e9c50ebf903390610a7b908c018c614edf565b610a8990602081019061458d565b8484604051610a9b9493929190615271565b60405180910390a16000610ab260608b018b614f1d565b90501115610b4d57610b04610aca60608b018b614f1d565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061284192505050565b7fbea766d03fa1efd3f81cc8634d08320bc62bb0ed9234ac59bbaafa5893fb6b133382610b3460608d018d614f1d565b604051610b4494939291906152bb565b60405180910390a15b50505050505050610b5e6001600055565b919050565b600080610b6e61262f565b610b7b6060840184614fe9565b9050600003610bb6576040517f9c95219f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080516101208101825260006080820181815260a08301829052835160608082018652838252602080830185905282870185905260c086019290925260e085018190526101008501819052918452830182905292820152818101919091526040805160a081018252600080825260208083018290528351606080820186528382529181018390528085019290925292820152818101829052608081019190915260606000610c6787830188614fe9565b6040805160206001939093018302810190915293508801359150506000819003610cbd576040517fc2ee700900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b610ccd6060890189614fe9565b905081108015610cdd5750600082115b156116f257610cef6060890189614fe9565b82818110610cff57610cff6152f1565b9050602002810190610d119190615320565b610d1a90615354565b80519095509350610d2e6060890189614fe9565b6000818110610d3f57610d3f6152f1565b9050602002810190610d519190615320565b610d5b90806153ee565b610d699060a0810190614f82565b610d7660608b018b614fe9565b6000818110610d8757610d876152f1565b9050602002810190610d999190615320565b60200135818110610dac57610dac6152f1565b610dc2926020606090920201908101915061458d565b73ffffffffffffffffffffffffffffffffffffffff168460600151866020015181518110610df257610df26152f1565b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff1614610f32578360600151856020015181518110610e3357610e336152f1565b602090810291909101015151610e4c60608a018a614fe9565b6000818110610e5d57610e5d6152f1565b9050602002810190610e6f9190615320565b610e7990806153ee565b610e879060a0810190614f82565b610e9460608c018c614fe9565b6000818110610ea557610ea56152f1565b9050602002810190610eb79190615320565b60200135818110610eca57610eca6152f1565b610ee0926020606090920201908101915061458d565b6040517ff902523f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92831660048201529116602482015260440161027b565b610f3f6060890189614fe9565b6000818110610f5057610f506152f1565b9050602002810190610f629190615320565b610f6c90806153ee565b610f7a9060c0810190614f82565b610f8760608b018b614fe9565b6000818110610f9857610f986152f1565b9050602002810190610faa9190615320565b60400135818110610fbd57610fbd6152f1565b610fd3926020606090920201908101915061458d565b73ffffffffffffffffffffffffffffffffffffffff168460800151866040015181518110611003576110036152f1565b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff16146110db578360800151856040015181518110611044576110446152f1565b60209081029190910101515161105d60608a018a614fe9565b600081811061106e5761106e6152f1565b90506020028101906110809190615320565b61108a90806153ee565b6110989060c0810190614f82565b6110a560608c018c614fe9565b60008181106110b6576110b66152f1565b90506020028101906110c89190615320565b60400135818110610eca57610eca6152f1565b6110e86060890189614fe9565b60008181106110f9576110f96152f1565b905060200281019061110b9190615320565b61111590806153ee565b6111239060a0810190614f82565b61113060608b018b614fe9565b6000818110611141576111416152f1565b90506020028101906111539190615320565b60200135818110611166576111666152f1565b905060600201602001602081019061117e9190615422565b60ff16846060015186602001518151811061119b5761119b6152f1565b60200260200101516020015160ff16146112ba5783606001518560200151815181106111c9576111c96152f1565b6020026020010151602001518880606001906111e59190614fe9565b60008181106111f6576111f66152f1565b90506020028101906112089190615320565b61121290806153ee565b6112209060a0810190614f82565b61122d60608c018c614fe9565b600081811061123e5761123e6152f1565b90506020028101906112509190615320565b60200135818110611263576112636152f1565b905060600201602001602081019061127b9190615422565b6040517f0f6ce47700000000000000000000000000000000000000000000000000000000815260ff92831660048201529116602482015260440161027b565b6112c76060890189614fe9565b60008181106112d8576112d86152f1565b90506020028101906112ea9190615320565b6112f490806153ee565b6113029060c0810190614f82565b61130f60608b018b614fe9565b6000818110611320576113206152f1565b90506020028101906113329190615320565b60400135818110611345576113456152f1565b905060600201602001602081019061135d9190615422565b60ff16846080015186604001518151811061137a5761137a6152f1565b60200260200101516020015160ff16146114425783608001518560400151815181106113a8576113a86152f1565b6020026020010151602001518880606001906113c49190614fe9565b60008181106113d5576113d56152f1565b90506020028101906113e79190615320565b6113f190806153ee565b6113ff9060c0810190614f82565b61140c60608c018c614fe9565b600081811061141d5761141d6152f1565b905060200281019061142f9190615320565b60400135818110611263576112636152f1565b600061144d85612811565b6000818152600160205260409020549091506114c05784516040805133815273ffffffffffffffffffffffffffffffffffffffff909216602083015281018290527fb70c12fa453793fa6818ec07c91e74363a47aa6a6829dcd9533937fdf30314f39060600160405180910390a16116e9565b60006114db8688602001518960400151338b60600151612885565b905089604001358160600151111561154b5785516040805133815273ffffffffffffffffffffffffffffffffffffffff909216602083015281018390527fe3151dc8cb7a54ffc4baabd28c1f241c94d510b5e5b502491ac3cad6c16316d5906060015b60405180910390a16116e7565b80604001516000036115ac5785516040805133815273ffffffffffffffffffffffffffffffffffffffff909216602083015281018390527f500b713857325f9e6dcb52ae832eca9109d107ed1aae9cb4928b4c1e13f051aa9060600161153e565b600086608001518860400151815181106115c8576115c86152f1565b6020908102919091018101510151604083015190915060006115ef8760ff85166002612fae565b9050808211156115fd578091505b5060008061161b85606001516001856130339092919063ffffffff16565b905061165b8a606001518c602001518151811061163a5761163a6152f1565b60200260200101516020015160ff166001836130519092919063ffffffff16565b9150600090506116708360ff86166002613051565b905061167c818961543d565b9750611688828d614e18565b9b506116958282876130b3565b7f219a030b7ae56e7bea2baab709a4a45dc174a1f85e57730e5cb395bc32962542338c83856040516116ca9493929190615480565b60405180910390a150508651600101808852602002870183905250505b505b50600101610cc0565b6117008260208a013561543d565b965050508535851015611749576040517f45094d88000000000000000000000000000000000000000000000000000000008152863560048201526024810186905260440161027b565b841561181257611812338661176160608a018a614fe9565b6000818110611772576117726152f1565b90506020028101906117849190615320565b61178e90806153ee565b61179c9060c0810190614f82565b6117a960608c018c614fe9565b60008181106117ba576117ba6152f1565b90506020028101906117cc9190615320565b604001358181106117df576117df6152f1565b6117f5926020606090920201908101915061458d565b73ffffffffffffffffffffffffffffffffffffffff169190612784565b60006118216080880188614f1d565b905011156119d4573363059bebe661183c6060890189614fe9565b600081811061184d5761184d6152f1565b905060200281019061185f9190615320565b61186990806153ee565b6118779060c0810190614f82565b61188460608b018b614fe9565b6000818110611895576118956152f1565b90506020028101906118a79190615320565b604001358181106118ba576118ba6152f1565b6118d0926020606090920201908101915061458d565b6118dd60608a018a614fe9565b60008181106118ee576118ee6152f1565b90506020028101906119009190615320565b61190a90806153ee565b6119189060a0810190614f82565b61192560608c018c614fe9565b6000818110611936576119366152f1565b90506020028101906119489190615320565b6020013581811061195b5761195b6152f1565b611971926020606090920201908101915061458d565b888861198060808d018d614f1d565b6040518763ffffffff1660e01b81526004016119a196959493929190614e74565b600060405180830381600087803b1580156119bb57600080fd5b505af11580156119cf573d6000803e3d6000fd5b505050505b8315611a9f57611a9f3330866119ed60608b018b614fe9565b60008181106119fe576119fe6152f1565b9050602002810190611a109190615320565b611a1a90806153ee565b611a289060a0810190614f82565b611a3560608d018d614fe9565b6000818110611a4657611a466152f1565b9050602002810190611a589190615320565b60200135818110611a6b57611a6b6152f1565b611a81926020606090920201908101915061458d565b73ffffffffffffffffffffffffffffffffffffffff169291906126a2565b60005b8151811015611ad557611acd828281518110611ac057611ac06152f1565b6020026020010151613376565b600101611aa2565b50505050611ae36001600055565b915091565b611af061262f565b8351855173ffffffffffffffffffffffffffffffffffffffff918216911603611b605784516040517f227e4ce900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116600482015260240161027b565b8360600151836040013581518110611b7a57611b7a6152f1565b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff168560800151846020013581518110611bb657611bb66152f1565b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff1614611c7b578460800151836020013581518110611bf757611bf76152f1565b6020026020010151600001518460600151846040013581518110611c1d57611c1d6152f1565b6020908102919091010151516040517ff902523f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92831660048201529116602482015260440161027b565b8360600151836040013581518110611c9557611c956152f1565b60200260200101516020015160ff168560800151846020013581518110611cbe57611cbe6152f1565b60200260200101516020015160ff1614611d61578460800151836020013581518110611cec57611cec6152f1565b6020026020010151602001518460600151846040013581518110611d1257611d126152f1565b6020026020010151602001516040517f0f6ce47700000000000000000000000000000000000000000000000000000000815260040161027b92919060ff92831681529116602082015260400190565b606085015180518435908110611d7957611d796152f1565b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff168460800151846060013581518110611db557611db56152f1565b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff1614611e1a57606085015180518435908110611df457611df46152f1565b6020026020010151600001518460800151846060013581518110611c1d57611c1d6152f1565b606085015180518435908110611e3257611e326152f1565b60200260200101516020015160ff168460800151846060013581518110611e5b57611e5b6152f1565b60200260200101516020015160ff1614611ead57606085015180518435908110611e8757611e876152f1565b6020026020010151602001518460800151846060013581518110611d1257611d126152f1565b600060016000611ebc88612811565b81526020019081526020016000205403611f3b577fb70c12fa453793fa6818ec07c91e74363a47aa6a6829dcd9533937fdf30314f3338660000151611f0088612811565b6040805173ffffffffffffffffffffffffffffffffffffffff94851681529390921660208401529082015260600160405180910390a1612221565b600060016000611f4a87612811565b81526020019081526020016000205403611f8e577fb70c12fa453793fa6818ec07c91e74363a47aa6a6829dcd9533937fdf30314f3338560000151611f0087612811565b7fd153812deb929a6e4378f6f8cf61d010470840bf2e736f43fb2275803958bfa233868686604051611fc394939291906155b0565b60405180910390a16000611fe68685600001358660200135886000015186612885565b9050600061200386866040013587606001358a6000015188612885565b9050600061201183836135b4565b905061202681604001518260000151856130b3565b61203981606001518260200151846130b3565b6060810151815160009161204c9161543d565b9050600082604001518360200151612064919061543d565b9050811561210a57336000908152600260209081526040822060808d01518051869492938d013590811061209a5761209a6152f1565b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a60800135815260200190815260200160002060008282546121049190614e18565b90915550505b80156121ae5733600090815260026020526040812060808b015180518493919060608d013590811061213e5761213e6152f1565b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a60a00135815260200190815260200160002060008282546121a89190614e18565b90915550505b5050604080513381528251602080830191909152830151818301529082015160608083019190915282015160808201527f3f20e55919cca701abb2a40ab72542b25ea7eed63a50f979dd2cd3231e5f488d9060a00160405180910390a161221483613376565b61221d82613376565b5050505b61222b6001600055565b5050505050565b60608167ffffffffffffffff81111561224d5761224d614620565b60405190808252806020026020018201604052801561228057816020015b606081526020019060019003908161226b5790505b50905060005b82811015612320576122f0308585848181106122a4576122a46152f1565b90506020028101906122b69190614f1d565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061360a92505050565b828281518110612302576123026152f1565b602002602001018190525080806123189061563a565b915050612286565b5092915050565b61232f61262f565b8060000361238e576040517ff7a898f600000000000000000000000000000000000000000000000000000000815233600482015273ffffffffffffffffffffffffffffffffffffffff841660248201526044810183905260640161027b565b33600090815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff871684528252808320858452909152812054906123d2838361362f565b9050801561248d576123e4818361543d565b33600081815260026020908152604080832073ffffffffffffffffffffffffffffffffffffffff8b168085529083528184208a855283529281902094909455835192835282015290810185905260608101849052608081018290527febff2602b3f468259e1e99f613fed6691f3a6526effe6ef3e768ba7ae7a36c4f9060a00160405180910390a161248d73ffffffffffffffffffffffffffffffffffffffff86163383612784565b505061035a6001600055565b73ffffffffffffffffffffffffffffffffffffffff80841660009081526002602090815260408083209386168352928152828220848352905220545b9392505050565b60006124e661262f565b6124f3602083018361458d565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146125855733612533602084018461458d565b6040517f4702b91400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92831660048201529116602482015260440161027b565b600061259861259384615672565b612811565b6000818152600160205260409020549091507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016126245760008181526001602081905260408083209290925590519092507f74037e398a4a92c9c1c49ac01c1dabd7f71165fbb4810b72c068f08edd1924489061261b9033908690859061574e565b60405180910390a15b50610b5e6001600055565b60026000540361269b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161027b565b6002600055565b60405173ffffffffffffffffffffffffffffffffffffffff8085166024830152831660448201526064810182905261277e9085907f23b872dd00000000000000000000000000000000000000000000000000000000906084015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152613645565b50505050565b60405173ffffffffffffffffffffffffffffffffffffffff831660248201526044810182905261035a9084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064016126fc565b600081516000036127ed57506000919050565b506020015160001a90565b6000806128058484613754565b5160001a949350505050565b6000816040516020016128249190615853565b604051602081830303815290604052805190602001209050919050565b61284a81613785565b61288257806040517f644cc25800000000000000000000000000000000000000000000000000000000815260040161027b9190615866565b50565b6040805161018081018252600060e08201818152610100830182905283516060808201865283825260208083018590528287018590526101208601929092526101408501819052610160850181905291845283018290529282018190528282018190526080820183905260a082015260c0810191909152600061290787612811565b60408051600480825260a08201909252919250606091600091816020015b606081526020019060019003908161292557905050895160408051600381526020810187905273ffffffffffffffffffffffffffffffffffffffff92831681830152918916606083015260808201905290915081600180038151811061298d5761298d6152f1565b6020026020010181905250612b22896060015189815181106129b1576129b16152f1565b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff168a606001518a815181106129e9576129e96152f1565b60200260200101516020015160ff168b606001518b81518110612a0e57612a0e6152f1565b602002602001015160400151600260008e6000015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008e606001518e81518110612a7557612a756152f1565b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008e606001518e81518110612ad357612ad36152f1565b602002602001015160400151815260200190815260200160002054600060408051600581526020810196909652858101949094526060850192909252608084015260a083015260c08201905290565b81600160030381518110612b3857612b386152f1565b6020026020010181905250612c7e89608001518881518110612b5c57612b5c6152f1565b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff168a608001518981518110612b9457612b946152f1565b60200260200101516020015160ff168b608001518a81518110612bb957612bb96152f1565b602002602001015160400151600260008e6000015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008e608001518d81518110612c2057612c206152f1565b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008e608001518d81518110612ad357612ad36152f1565b81600160040381518110612c9457612c946152f1565b6020026020010181905250612ca981866137b5565b9150506000886000015173ffffffffffffffffffffffffffffffffffffffff1690506000808a604001516000015173ffffffffffffffffffffffffffffffffffffffff16636046c5f98c6040015160200151612d0f863060009182526020526040902090565b612d208f6040015160400151613ac5565b604080516000815260208101918290527fffffffff0000000000000000000000000000000000000000000000000000000060e087901b16909152612d6c939291908a90602481016158e2565b600060405180830381865afa158015612d89573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052612dcf919081019061598a565b91509150600082600181518110612de857612de86152f1565b60200260200101519050600083600081518110612e0757612e076152f1565b602002602001015190506000600260008f6000015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008f608001518e81518110612e6e57612e6e6152f1565b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008f608001518e81518110612ecc57612ecc6152f1565b60200260200101516040015181526020019081526020016000205490506000612f258f608001518e81518110612f0457612f046152f1565b60200260200101516020015160ff16600084612fae9092919063ffffffff16565b905080841115612f33578093505b50506040805160028152602081018490528082018390526060810190915286600281518110612f6457612f646152f1565b6020908102919091018101919091526040805160e0810182529e8f52908e019b909b52998c015260608b019890985250608089019190915260a08801525050505060c08301525090565b60008260121115612fe35760128390036002831615612fd957612fd18582613aee565b9150506124d5565b612fd18582613b74565b601283111561302c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffee8301600183161561302257612fd18582613bac565b612fd18582613bfa565b50826124d5565b60006130498484670de0b6b3a764000085613c1d565b949350505050565b60008260121115613074576012839003600183161561302257612fd18582613bac565b601283111561302c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffee83016002831615612fd957612fd18582613aee565b8281608001516003815181106130cb576130cb6152f1565b60200260200101516004815181106130e5576130e56152f1565b602002602001018181525050818160800151600481518110613109576131096152f1565b6020026020010151600481518110613123576131236152f1565b602090810291909101015282156132315780515173ffffffffffffffffffffffffffffffffffffffff16600090815260026020526040812060808301518051869391906003908110613177576131776152f1565b6020026020010151600081518110613191576131916152f1565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083608001516003815181106131ec576131ec6152f1565b6020026020010151600281518110613206576132066152f1565b60200260200101518152602001908152602001600020600082825461322b9190614e18565b90915550505b81156133345780515173ffffffffffffffffffffffffffffffffffffffff1660009081526002602052604081206080830151805185939190600490811061327a5761327a6152f1565b6020026020010151600081518110613294576132946152f1565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083608001516004815181106132ef576132ef6152f1565b6020026020010151600281518110613309576133096152f1565b60200260200101518152602001908152602001600020600082825461332e919061543d565b90915550505b7f17a5c0f3785132a57703932032f6863e7920434150aa1dc940e567b440fdce1f3382608001516040516133699291906159ee565b60405180910390a1505050565b60c08101515115613403578060000151604001516020015173ffffffffffffffffffffffffffffffffffffffff1663946aadc68260a001518360c001516040518363ffffffff1660e01b81526004016133d0929190615a1d565b600060405180830381600087803b1580156133ea57600080fd5b505af11580156133fe573d6000803e3d6000fd5b505050505b80516020015115612882576000808260000151604001516000015173ffffffffffffffffffffffffffffffffffffffff16636046c5f98460000151604001516020015161345e8660a001513060009182526020526040902090565b61347387600001516040015160400151613c7a565b6080880151604080516000815260208101918290527fffffffff0000000000000000000000000000000000000000000000000000000060e088901b169091526134c39493929190602481016158e2565b600060405180830381865afa1580156134e0573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052613526919081019061598a565b805191935091501561035a578260000151604001516020015173ffffffffffffffffffffffffffffffffffffffff1663946aadc68460a00151836040518363ffffffff1660e01b815260040161357d929190615a1d565b600060405180830381600087803b15801561359757600080fd5b505af11580156135ab573d6000803e3d6000fd5b50505050505050565b6135df6040518060800160405280600081526020016000815260200160008152602001600081525090565b6135e98383613ca5565b825260408201526135fa8284613ca5565b6020830152606082015292915050565b60606124d58383604051806060016040528060278152602001615c4260279139613d6a565b600081831061363e57816124d5565b5090919050565b60006136a7826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16613def9092919063ffffffff16565b90508051600014806136c85750808060200190518101906136c89190615a36565b61035a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161027b565b600080613760846127da565b600202600101905060006137748585613dfe565b949091019093016020019392505050565b600060088251101561379957506000919050565b506008015167ffffffffffffffff1667ff0a89c674ee78741490565b60606000825167ffffffffffffffff8111156137d3576137d3614620565b6040519080825280602002602001820160405280156137fc578160200160208202803683370190505b509050600080845111613810576000613816565b83516001015b855160010101905060008167ffffffffffffffff81111561383957613839614620565b60405190808252806020026020018201604052801561386c57816020015b60608152602001906001900390816138575790505b5090506000613891604080516002815233602082015230818301526060810190915290565b8282815181106138a3576138a36152f1565b602002602001018190525060005b87518110156139015781806001019250508781815181106138d4576138d46152f1565b60200260200101518383815181106138ee576138ee6152f1565b60209081029190910101526001016138b1565b50855115613abb57808060010191505083828281518110613924576139246152f1565b602002602001018190525060005b8651811015613ab9576139e3878281518110613950576139506152f1565b6020026020010151600001516139c061398d8a8581518110613974576139746152f1565b6020026020010151602001518051602090810291012090565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000006000908152601c91909152603c902090565b8984815181106139d2576139d26152f1565b602002602001015160400151613e55565b613a1c576040517f52bf98480000000000000000000000000000000000000000000000000000000081526004810182905260240161027b565b868181518110613a2e57613a2e6152f1565b60200260200101516000015173ffffffffffffffffffffffffffffffffffffffff16858281518110613a6257613a626152f1565b6020026020010181815250508180600101925050868181518110613a8857613a886152f1565b602002602001015160200151838381518110613aa657613aa66152f1565b6020908102919091010152600101613932565b505b5095945050505050565b6000602082901b77ffffffffffffffffffffffffffffffffffffffff000000001660021761054f565b6000604e8210613b2e578215613b24577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff613b27565b60005b905061054f565b50600a81900a8281029083818381613b4857613b48615a53565b0414612320577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff613049565b600a81900a613b838184615a82565b9050604e821061054f578215613ba357613b9e82600a615bb9565b6124d5565b50600092915050565b6000604e8210613bd0578215613bc3576001613bc6565b60005b60ff16905061054f565b600a82900a808481613be457613be4615a53565b0491508082028414612320575060010192915050565b6000604e821015613ba35781600a0a8381613c1757613c17615a53565b046124d5565b600080613c2b868686613ec6565b90506001836002811115613c4157613c41615bc5565b148015613c5e575060008480613c5957613c59615a53565b868809115b15613c7157613c6e600182614e18565b90505b95945050505050565b600062010000602083901b77ffffffffffffffffffffffffffffffffffffffff00000000161761054f565b6000806000613cc88460600151600186604001516130339092919063ffffffff16565b604086015190915081811115613cdb5750805b613d1d866000015160800151876020015181518110613cfc57613cfc6152f1565b60200260200101516020015160ff166000836130519092919063ffffffff16565b92506000613d3b87606001516001846130339092919063ffffffff16565b9050613d5e86600001516080015187602001518151811061163a5761163a6152f1565b94505050509250929050565b60606000808573ffffffffffffffffffffffffffffffffffffffff1685604051613d949190615bf4565b600060405180830381855af49150503d8060008114613dcf576040519150601f19603f3d011682016040523d82523d6000602084013e613dd4565b606091505b5091509150613de586838387613ff0565b9695505050505050565b60606130498484600085614090565b6000613e09836127da565b8210613e455782826040517f30489add00000000000000000000000000000000000000000000000000000000815260040161027b929190615c06565b50600202016003015161ffff1690565b6000806000613e6485856141a9565b90925090506000816004811115613e7d57613e7d615bc5565b148015613eb557508573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b80613de55750613de58686866141ee565b600080807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff85870985870292508281108382030391505080600003613f1e57838281613f1457613f14615a53565b04925050506124d5565b808411613f87576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4d6174683a206d756c446976206f766572666c6f770000000000000000000000604482015260640161027b565b60008486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091026000889003889004909101858311909403939093029303949094049190911702949350505050565b6060831561408657825160000361407f5773ffffffffffffffffffffffffffffffffffffffff85163b61407f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161027b565b5081613049565b613049838361434b565b606082471015614122576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c0000000000000000000000000000000000000000000000000000606482015260840161027b565b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161414b9190615bf4565b60006040518083038185875af1925050503d8060008114614188576040519150601f19603f3d011682016040523d82523d6000602084013e61418d565b606091505b509150915061419e87838387613ff0565b979650505050505050565b60008082516041036141df5760208301516040840151606085015160001a6141d38782858561438f565b945094505050506141e7565b506000905060025b9250929050565b60008060008573ffffffffffffffffffffffffffffffffffffffff16631626ba7e60e01b8686604051602401614225929190615c28565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009094169390931790925290516142ae9190615bf4565b600060405180830381855afa9150503d80600081146142e9576040519150601f19603f3d011682016040523d82523d6000602084013e6142ee565b606091505b509150915081801561430257506020815110155b8015613de5575080517f1626ba7e00000000000000000000000000000000000000000000000000000000906143409083016020908101908401614ec6565b149695505050505050565b81511561435b5781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161027b9190615866565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156143c65750600090506003614475565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561441a573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff811661446e57600060019250925050614475565b9150600090505b94509492505050565b73ffffffffffffffffffffffffffffffffffffffff8116811461288257600080fd5b6000806000606084860312156144b557600080fd5b83356144c08161447e565b95602085013595506040909401359392505050565b6000602082840312156144e757600080fd5b5035919050565b60008060008060006080868803121561450657600080fd5b85356145118161447e565b945060208601356145218161447e565b935060408601359250606086013567ffffffffffffffff8082111561454557600080fd5b818801915088601f83011261455957600080fd5b81358181111561456857600080fd5b89602082850101111561457a57600080fd5b9699959850939650602001949392505050565b60006020828403121561459f57600080fd5b81356124d58161447e565b6000602082840312156145bc57600080fd5b813567ffffffffffffffff8111156145d357600080fd5b8201608081850312156124d557600080fd5b6000602082840312156145f757600080fd5b813567ffffffffffffffff81111561460e57600080fd5b820160a081850312156124d557600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff8111828210171561467257614672614620565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156146bf576146bf614620565b604052919050565b801515811461288257600080fd5b8035610b5e816146c7565b6000606082840312156146f257600080fd5b6146fa61464f565b905081356147078161447e565b815260208201356147178161447e565b6020820152604082013561472a8161447e565b604082015292915050565b600067ffffffffffffffff82111561474f5761474f614620565b5060051b60200190565b803560ff81168114610b5e57600080fd5b60006060828403121561477c57600080fd5b61478461464f565b905081356147918161447e565b815261479f60208301614759565b60208201526040820135604082015292915050565b600082601f8301126147c557600080fd5b813560206147da6147d583614735565b614678565b828152606092830285018201928282019190878511156147f957600080fd5b8387015b8581101561481c5761480f898261476a565b84529284019281016147fd565b5090979650505050505050565b600060e0828403121561483b57600080fd5b60405160a0810167ffffffffffffffff828210818311171561485f5761485f614620565b81604052829350843591506148738261447e565b818352614882602086016146d5565b602084015261489486604087016146e0565b604084015260a08501359150808211156148ad57600080fd5b6148b9868387016147b4565b606084015260c08501359150808211156148d257600080fd5b506148df858286016147b4565b6080830152505092915050565b600067ffffffffffffffff82111561490657614906614620565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b600082601f83011261494357600080fd5b81356149516147d5826148ec565b81815284602083860101111561496657600080fd5b816020850160208301376000918101602001919091529392505050565b600082601f83011261499457600080fd5b813560206149a46147d583614735565b82815260059290921b840181019181810190868411156149c357600080fd5b8286015b84811015614ae857803567ffffffffffffffff808211156149e757600080fd5b908801906060828b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0011215614a1e5760008081fd5b614a2661464f565b86830135614a338161447e565b815260408381013583811115614a495760008081fd5b8401603f81018d13614a5b5760008081fd5b88810135614a6b6147d582614735565b81815260059190911b82018301908a8101908f831115614a8b5760008081fd5b928401925b82841015614aa95783358252928b0192908b0190614a90565b858c0152505050606084013583811115614ac35760008081fd5b614ad18d8a83880101614932565b9183019190915250855250509183019183016149c7565b509695505050505050565b6000806000806000858703610140811215614b0d57600080fd5b863567ffffffffffffffff80821115614b2557600080fd5b614b318a838b01614829565b97506020890135915080821115614b4757600080fd5b614b538a838b01614829565b965060c07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc084011215614b8557600080fd5b604089019550610100890135925080831115614ba057600080fd5b614bac8a848b01614983565b9450610120890135925080831115614bc357600080fd5b5050614bd188828901614983565b9150509295509295909350565b60008060208385031215614bf157600080fd5b823567ffffffffffffffff80821115614c0957600080fd5b818501915085601f830112614c1d57600080fd5b813581811115614c2c57600080fd5b8660208260051b8501011115614c4157600080fd5b60209290920196919550909350505050565b60005b83811015614c6e578181015183820152602001614c56565b50506000910152565b60008151808452614c8f816020860160208601614c53565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015614d34577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0888603018452614d22858351614c77565b94509285019290850190600101614ce8565b5092979650505050505050565b600080600060608486031215614d5657600080fd5b8335614d618161447e565b92506020840135614d718161447e565b929592945050506040919091013590565b60008060408385031215614d9557600080fd5b8235614da08161447e565b946020939093013593505050565b600060208284031215614dc057600080fd5b813567ffffffffffffffff811115614dd757600080fd5b820160e081850312156124d557600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082018082111561054f5761054f614de9565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b600073ffffffffffffffffffffffffffffffffffffffff808916835280881660208401525085604083015284606083015260a06080830152614eba60a083018486614e2b565b98975050505050505050565b600060208284031215614ed857600080fd5b5051919050565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1833603018112614f1357600080fd5b9190910192915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614f5257600080fd5b83018035915067ffffffffffffffff821115614f6d57600080fd5b6020019150368190038213156141e757600080fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614fb757600080fd5b83018035915067ffffffffffffffff821115614fd257600080fd5b60200191506060810236038213156141e757600080fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261501e57600080fd5b83018035915067ffffffffffffffff82111561503957600080fd5b6020019150600581901b36038213156141e757600080fd5b604081526000615065604083018688614e2b565b82810360208401528381527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84111561509d57600080fd5b8360051b80866020840137016020019695505050505050565b600080600080608085870312156150cc57600080fd5b84516150d78161447e565b60208601519094506150e88161447e565b60408601519093506150f98161447e565b606086015190925067ffffffffffffffff81111561511657600080fd5b8501601f8101871361512757600080fd5b80516151356147d5826148ec565b81815288602083850101111561514a57600080fd5b61515b826020830160208601614c53565b9598949750929550505050565b60006060828403121561517a57600080fd5b6124d5838361476a565b600081518084526020808501945080840160005b838110156151e3578151805173ffffffffffffffffffffffffffffffffffffffff1688528381015160ff16848901526040908101519088015260609096019590820190600101615198565b509495945050505050565b600073ffffffffffffffffffffffffffffffffffffffff80835116845260208301511515602085015260408301518181511660408601528160208201511660608601528160408201511660808601525050606082015160e060a085015261525860e0850182615184565b9050608083015184820360c0860152613c718282615184565b600073ffffffffffffffffffffffffffffffffffffffff8087168352808616602084015250608060408301526152aa60808301856151ee565b905082606083015295945050505050565b73ffffffffffffffffffffffffffffffffffffffff85168152836020820152606060408201526000613de5606083018486614e2b565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81833603018112614f1357600080fd5b60006080823603121561536657600080fd5b6040516080810167ffffffffffffffff828210818311171561538a5761538a614620565b81604052843591508082111561539f57600080fd5b6153ab36838701614829565b8352602085013560208401526040850135604084015260608501359150808211156153d557600080fd5b506153e236828601614983565b60608301525092915050565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff21833603018112614f1357600080fd5b60006020828403121561543457600080fd5b6124d582614759565b8181038181111561054f5761054f614de9565b600081518084526020808501945080840160005b838110156151e357815187529582019590820190600101615464565b600073ffffffffffffffffffffffffffffffffffffffff8087168352602060808185015286516080808601526154ba6101008601826151ee565b90508188015160a086015260408089015160c08701526060808a01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808885030160e08901528381518086528686019150868160051b870101878401935060005b82811015615593577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe088830301845284518a815116835289810151878b85015261556788850182615450565b91890151848303858b015291905061557f8183614c77565b968b0196958b01959350505060010161551b565b50948a019b909b5250509095019590955250919695505050505050565b600061012073ffffffffffffffffffffffffffffffffffffffff871683528060208401526155e0818401876151ee565b905082810360408401526155f481866151ee565b9150508235606083015260208301356080830152604083013560a0830152606083013560c0830152608083013560e083015260a083013561010083015295945050505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361566b5761566b614de9565b5060010190565b600061054f3683614829565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126156b357600080fd5b830160208101925035905067ffffffffffffffff8111156156d357600080fd5b6060810236038213156141e757600080fd5b8183526000602080850194508260005b858110156151e35781356157088161447e565b73ffffffffffffffffffffffffffffffffffffffff16875260ff61572d838501614759565b168784015260408281013590880152606096870196909101906001016156f5565b600073ffffffffffffffffffffffffffffffffffffffff808616835260606020840152843561577c8161447e565b811660608401526020850135615791816146c7565b1515608084015260408501356157a68161447e565b811660a084015260608501356157bb8161447e565b811660c084015260808501356157d08161447e565b1660e08301526157e360a085018561567e565b60e06101008501526157fa610140850182846156e5565b91505061580a60c086018661567e565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0858403016101208601526158408382846156e5565b9350505050826040830152949350505050565b6020815260006124d560208301846151ee565b6020815260006124d56020830184614c77565b600082825180855260208086019550808260051b84010181860160005b8481101561481c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08684030189526158d0838351615450565b98840198925090830190600101615896565b73ffffffffffffffffffffffffffffffffffffffff8616815284602082015283604082015260a06060820152600061591d60a0830185615879565b8281036080840152614eba8185615450565b600082601f83011261594057600080fd5b815160206159506147d583614735565b82815260059290921b8401810191818101908684111561596f57600080fd5b8286015b84811015614ae85780518352918301918301615973565b6000806040838503121561599d57600080fd5b825167ffffffffffffffff808211156159b557600080fd5b6159c18683870161592f565b935060208501519150808211156159d757600080fd5b506159e48582860161592f565b9150509250929050565b73ffffffffffffffffffffffffffffffffffffffff831681526040602082015260006130496040830184615879565b8281526040602082015260006130496040830184615450565b600060208284031215615a4857600080fd5b81516124d5816146c7565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b808202811582820484141761054f5761054f614de9565b600181815b80851115615af257817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115615ad857615ad8614de9565b80851615615ae557918102915b93841c9390800290615a9e565b509250929050565b600082615b095750600161054f565b81615b165750600061054f565b8160018114615b2c5760028114615b3657615b52565b600191505061054f565b60ff841115615b4757615b47614de9565b50506001821b61054f565b5060208310610133831016604e8410600b8410161715615b75575081810a61054f565b615b7f8383615a99565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115615bb157615bb1614de9565b029392505050565b60006124d58383615afa565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60008251614f13818460208701614c53565b604081526000615c196040830185614c77565b90508260208301529392505050565b8281526040602082015260006130496040830184614c7756fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", - "sourceMap": "10600:36632:172:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13003:640;;;;;;:::i;:::-;;:::i;:::-;;12830:134;;;;;;:::i;:::-;12902:4;12925:18;;;4273:1;12925:18;;;;;;;;;:32;;12830:134;;;;911:14:227;;904:22;886:41;;874:2;859:18;12830:134:172;;;;;;;;1311:1578:169;;;;;;:::i;:::-;;:::i;3330:140::-;;;;;;:::i;:::-;;:::i;:::-;;;2308:25:227;;;2296:2;2281:18;3330:140:169;2162:177:227;14661:2996:172;;;;;;:::i;:::-;;:::i;18373:10265::-;;;;;;:::i;:::-;;:::i;:::-;;;;3321:25:227;;;3377:2;3362:18;;3355:34;;;;3294:18;18373:10265:172;3147:248:227;28677:4498:172;;;;;;:::i;:::-;;:::i;470:308:31:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;13682:940:172:-;;;;;;:::i;:::-;;:::i;12620:171::-;;;;;;:::i;:::-;;:::i;2935:110:169:-;;;;;;:::i;:::-;3003:7;2935:110;;;;;17696:450:172;;;;;;:::i;:::-;;:::i;13003:640::-;2261:21:22;:19;:21::i;:::-;13104:6:172::1;13114:1;13104:11:::0;13100:94:::1;;13138:45;::::0;::::1;::::0;;13156:10:::1;13138:45;::::0;::::1;15724:34:227::0;15673:42;15794:15;;15774:18;;;15767:43;15826:18;;;15819:34;;;15636:18;;13138:45:172::1;;;;;;;;13100:94;13402:43;::::0;;13410:10:::1;16156:34:227::0;;16105:42;16226:15;;16221:2;16206:18;;16199:43;16258:18;;;16251:34;;;16316:2;16301:18;;16294:34;;;13402:43:172::1;::::0;16082:3:227;16067:19;13402:43:172::1;;;;;;;13509:65;:30;::::0;::::1;13540:10;13560:4;13567:6:::0;13509:30:::1;:65::i;:::-;13599:10;13584:26;::::0;;;:14:::1;:26;::::0;;;;;;;::::1;:33:::0;::::1;::::0;;;;;;;:42;;;;;;;;:52;;13630:6;;13584:26;:52:::1;::::0;13630:6;;13584:52:::1;:::i;:::-;::::0;;;-1:-1:-1;;1716:1:22;2809:7;:22;13003:640:172;;;:::o;2303:20:22:-;13003:640:172;;;:::o;1311:1578:169:-;1465:4;1485:53;:26;;;1520:8;1531:6;1485:26;:53::i;:::-;1566:64;;;;;1549:14;;1566:20;;;;;;:64;;1587:10;;1599:5;;1606:6;;1549:14;;1625:4;;;;1566:64;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1549:81;;425:45:178;1644:6:169;:40;1640:111;;1707:33;;;;;;;;2308:25:227;;;2281:18;;1707:33:169;2162:177:227;1640:111:169;2776:84;2815:8;2834:4;2841:18;911:1;2841:6;:18;:::i;:::-;2776:30;;;;:84;;:30;:84::i;:::-;-1:-1:-1;2878:4:169;;1311:1578;-1:-1:-1;;;;;;1311:1578:169:o;3330:140::-;3425:38;;;;;3457:4;3425:38;;;18120:74:227;3399:7:169;;3425:23;;;;;;18093:18:227;;3425:38:169;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3418:45;3330:140;-1:-1:-1;;3330:140:169:o;14661:2996:172:-;14741:17;2261:21:22;:19;:21::i;:::-;14770:19:172::1;14792:56;14816:22;;::::0;::::1;:6:::0;:22:::1;:::i;:::-;:31;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;14792:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;14792:23:172::1;::::0;-1:-1:-1;;;14792:56:172:i:1;:::-;14770:78;;14862:11;14877:1;14862:16:::0;14858:70:::1;;14901:16;;;;;;;;;;;;;;14858:70;14941:11;14956:1;14941:16:::0;14937:71:::1;;14980:17;;;;;;;;;;;;;;14937:71;15021:18;:6:::0;;:18:::1;:::i;:::-;:25;;15050:1;15021:30:::0;15017:83:::1;;15074:15;;;;;;;;;;;;;;15017:83;15113:19;;::::0;::::1;:6:::0;:19:::1;:::i;:::-;:26;;15143:1;15113:31:::0;15109:85:::1;;15167:16;;;;;;;;;;;;;;15109:85;15204:26;::::0;;;15298:35:::1;;::::0;::::1;:6:::0;:35:::1;:::i;:::-;:57;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;:88;;;15387:22;;::::0;::::1;:6:::0;:22:::1;:::i;:::-;:31;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;15420:22;;::::0;::::1;:6:::0;:22:::1;:::i;:::-;:32;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;15298:155;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;::::0;::::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;15657:4;15649:13:::0;::::1;15643:20:::0;15203:250;;-1:-1:-1;15203:250:172;;-1:-1:-1;15203:250:172;-1:-1:-1;15203:250:172;-1:-1:-1;15477:23:172::1;15699:15:::0;;::::1;::::0;15756:1:::1;15751:15:::0;;::::1;::::0;15804:1:::1;15799:15;15846:20:::0;;15842:109:::1;;15893:43;::::0;::::1;::::0;;::::1;::::0;::::1;2308:25:227::0;;;2281:18;;15893:43:172::1;2162:177:227::0;15842:109:172::1;4934:1;15969:16;:46;15965:137;;;16042:45;::::0;::::1;::::0;;::::1;::::0;::::1;2308:25:227::0;;;2281:18;;16042:45:172::1;2162:177:227::0;15965:137:172::1;16120:17:::0;;16116:100:::1;;16164:37;::::0;::::1;::::0;;::::1;::::0;::::1;2308:25:227::0;;;2281:18;;16164:37:172::1;2162:177:227::0;16116:100:172::1;15463:763;;;16413:20;16436:284;;;;;;;;16457:10;16436:284;;;;;;16587:1;16481:103;16508:6;:22;;;;;;;;:::i;:::-;:31;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;16481:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;4811:1:172::1;::::0;-1:-1:-1;16481:26:172::1;::::0;-1:-1:-1;;16481:103:172:i:1;:::-;:107;16436:284:::0;;16602:43:::1;::::0;;::::1;::::0;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;::::1;16436:284;16602:43:::0;;::::1;::::0;;;;;;::::1;::::0;;;;16436:284;::::1;::::0;;16659:18:::1;:6:::0;;:18:::1;:::i;:::-;16436:284;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;::::1;;::::0;;::::1;::::0;::::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;16691:6;:19;;;;;;;;:::i;:::-;16436:284;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;::::1;;::::0;;::::1;::::0;::::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;16413:307:::1;;16730:17;16750:12;:5;:10;:12::i;:::-;4477:1;16852:18:::0;;;:7:::1;:18;::::0;;;;;16730:32;;-1:-1:-1;16848:803:172::1;;17180:18;::::0;;;16915:4:::1;17180:18;::::0;;;;;;;;:31;;;16915:4;-1:-1:-1;17230:71:172::1;::::0;17239:10:::1;::::0;17251:22:::1;::::0;;::::1;:6:::0;:22:::1;:::i;:::-;:31;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;17284:5;17291:9;17230:71;;;;;;;;;:::i;:::-;;;;;;;;17493:1;17472:11;;::::0;::::1;:6:::0;:11:::1;:::i;:::-;:18;;:22;17468:173;;;17514:38;17540:11;;::::0;::::1;:6:::0;:11:::1;:::i;:::-;17514:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;17514:25:172::1;::::0;-1:-1:-1;;;17514:38:172:i:1;:::-;17575:51;17582:10;17602:9:::0;17614:11:::1;;::::0;::::1;:6:::0;:11:::1;:::i;:::-;17575:51;;;;;;;;;:::i;:::-;;;;;;;;17468:173;14760:2897;;;;;;;2303:20:22::0;1716:1;2809:7;:22;2629:209;2303:20;14661:2996:172;;;:::o;18373:10265::-;18484:23;18509:24;2261:21:22;:19;:21::i;:::-;18553:13:172::1;;::::0;::::1;:6:::0;:13:::1;:::i;:::-;:20;;18577:1;18553:25:::0;18549:73:::1;;18601:10;;;;;;;;;;;;;;18549:73;-1:-1:-1::0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19130:57:172::1;19211:14;19228:13;::::0;;::::1;:6:::0;:13:::1;:::i;:::-;19322:4;19316:11:::0;;19437:4:::1;19433:1;19421:14:::0;;;::::1;19417:25:::0;::::1;19408:35:::0;::::1;19395:49:::0;;;19316:11;-1:-1:-1;19522:19:172;::::1;;::::0;-1:-1:-1;;;19559:24:172;;;19555:88:::1;;19610:18;;;;;;;;;;;;;;19555:88;19656:9;19683:7031;19694:13;;::::0;::::1;:6:::0;:13:::1;:::i;:::-;:20;;19690:1;:24;:51;;;;;19740:1;19718:19;:23;19690:51;19683:7031;;;19779:13;;::::0;::::1;:6:::0;:13:::1;:::i;:::-;19793:1;19779:16;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;19761:34;;;:::i;:::-;19821:21:::0;;19761:34;;-1:-1:-1;19821:21:172;-1:-1:-1;20025:13:172::1;;::::0;::::1;:6:::0;:13:::1;:::i;:::-;20039:1;20025:16;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:22;::::0;;::::1;:::i;:::-;:34;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;20060:13;;::::0;::::1;:6:::0;:13:::1;:::i;:::-;20074:1;20060:16;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:29;;;20025:65;;;;;;;:::i;:::-;:71;::::0;::::1;:65;::::0;;::::1;;:71:::0;;::::1;::::0;-1:-1:-1;20025:71:172::1;:::i;:::-;19944:152;;:5;:17;;;19962:15;:28;;;19944:47;;;;;;;;:::i;:::-;;;;;;;:53;;;:152;;;19919:455;;20183:5;:17;;;20201:15;:28;;;20183:47;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;:53;20262:13:::1;;::::0;::::1;:6:::0;:13:::1;:::i;:::-;20276:1;20262:16;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:22;::::0;;::::1;:::i;:::-;:34;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;20297:13;;::::0;::::1;:6:::0;:13:::1;:::i;:::-;20311:1;20297:16;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:29;;;20262:65;;;;;;;:::i;:::-;:71;::::0;::::1;:65;::::0;;::::1;;:71:::0;;::::1;::::0;-1:-1:-1;20262:71:172::1;:::i;:::-;20144:211;::::0;::::1;::::0;;28230:42:227;28299:15;;;20144:211:172::1;::::0;::::1;28281:34:227::0;28351:15;;28331:18;;;28324:43;28193:18;;20144:211:172::1;28046:327:227::0;19919:455:172::1;20559:13;;::::0;::::1;:6:::0;:13:::1;:::i;:::-;20573:1;20559:16;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:22;::::0;;::::1;:::i;:::-;:35;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;20595:13;;::::0;::::1;:6:::0;:13:::1;:::i;:::-;20609:1;20595:16;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:30;;;20559:67;;;;;;;:::i;:::-;:73;::::0;::::1;:67;::::0;;::::1;;:73:::0;;::::1;::::0;-1:-1:-1;20559:73:172::1;:::i;:::-;20476:156;;:5;:18;;;20495:15;:29;;;20476:49;;;;;;;;:::i;:::-;;;;;;;:55;;;:156;;;20451:463;;20719:5;:18;;;20738:15;:29;;;20719:49;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;:55;20800:13:::1;;::::0;::::1;:6:::0;:13:::1;:::i;:::-;20814:1;20800:16;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:22;::::0;;::::1;:::i;:::-;:35;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;20836:13;;::::0;::::1;:6:::0;:13:::1;:::i;:::-;20850:1;20836:16;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:30;;;20800:67;;;;;;;:::i;20451:463::-;21108:13;;::::0;::::1;:6:::0;:13:::1;:::i;:::-;21122:1;21108:16;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:22;::::0;;::::1;:::i;:::-;:34;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;21143:13;;::::0;::::1;:6:::0;:13:::1;:::i;:::-;21157:1;21143:16;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:29;;;21108:65;;;;;;;:::i;:::-;;;;;;:74;;;;;;;;;;:::i;:::-;21024:158;;:5;:17;;;21042:15;:28;;;21024:47;;;;;;;;:::i;:::-;;;;;;;:56;;;:158;;;20999:475;;21277:5;:17;;;21295:15;:28;;;21277:47;;;;;;;;:::i;:::-;;;;;;;:56;;;21359:6;:13;;;;;;;;:::i;:::-;21373:1;21359:16;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:22;::::0;;::::1;:::i;:::-;:34;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;21394:13;;::::0;::::1;:6:::0;:13:::1;:::i;:::-;21408:1;21394:16;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:29;;;21359:65;;;;;;;:::i;:::-;;;;;;:74;;;;;;;;;;:::i;:::-;21230:225;::::0;::::1;::::0;;28761:4:227;28749:17;;;21230:225:172::1;::::0;::::1;28731:36:227::0;28803:17;;28783:18;;;28776:45;28704:18;;21230:225:172::1;28565:262:227::0;20999:475:172::1;21671:13;;::::0;::::1;:6:::0;:13:::1;:::i;:::-;21685:1;21671:16;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:22;::::0;;::::1;:::i;:::-;:35;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;21707:13;;::::0;::::1;:6:::0;:13:::1;:::i;:::-;21721:1;21707:16;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:30;;;21671:67;;;;;;;:::i;:::-;;;;;;:76;;;;;;;;;;:::i;:::-;21585:162;;:5;:18;;;21604:15;:29;;;21585:49;;;;;;;;:::i;:::-;;;;;;;:58;;;:162;;;21560:483;;21842:5;:18;;;21861:15;:29;;;21842:49;;;;;;;;:::i;:::-;;;;;;;:58;;;21926:6;:13;;;;;;;;:::i;:::-;21940:1;21926:16;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:22;::::0;;::::1;:::i;:::-;:35;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;21962:13;;::::0;::::1;:6:::0;:13:::1;:::i;:::-;21976:1;21962:16;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:30;;;21926:67;;;;;;;:::i;21560:483::-;22061:17;22081:12;:5;:10;:12::i;:::-;4477:1;22115:18:::0;;;:7:::1;:18;::::0;;;;;22061:32;;-1:-1:-1;22111:4517:172::1;;22202:11:::0;;22176:49:::1;::::0;;22190:10:::1;15724:34:227::0;;15673:42;15794:15;;;15789:2;15774:18;;15767:43;15826:18;;15819:34;;;22176:49:172::1;::::0;15651:2:227;15636:18;22176:49:172::1;;;;;;;22111:4517;;;22272:46;22321:269;22363:5;22394:15;:28;;;22448:15;:29;;;22503:10;22539:15;:29;;;22321:16;:269::i;:::-;22272:318;;22989:6;:21;;;22960:18;:26;;;:50;22956:3654;;;23076:11:::0;;23043:56:::1;::::0;;23064:10:::1;15724:34:227::0;;15673:42;15794:15;;;15789:2;15774:18;;15767:43;15826:18;;15819:34;;;23043:56:172::1;::::0;15651:2:227;15636:18;23043:56:172::1;;;;;;;;22956:3654;;;23154:18;:28;;;23187:1;23132:56:::0;23128:3482:::1;;23249:11:::0;;23221:51:::1;::::0;;23237:10:::1;15724:34:227::0;;15673:42;15794:15;;;15789:2;15774:18;;15767:43;15826:18;;15819:34;;;23221:51:172::1;::::0;15651:2:227;15636:18;23221:51:172::1;15461:398:227::0;23128:3482:172::1;23327:24;23354:5;:18;;;23373:15;:29;;;23354:49;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;:58:::1;::::0;23615:28:::1;::::0;::::1;::::0;23354:58;;-1:-1:-1;23517:26:172::1;24194:62;:19:::0;:62:::1;::::0;::::1;503:6:148;24194:27:172;:62::i;:::-;24105:152;;24349:21;24312:12;24291:80;24287:187;;;24422:21;24407:36;;24287:187;23966:534;24526:19;24688:28:::0;24900:164:::1;24986:18;:26;;;25014:16;24921:12;24900:48;;:164;;;;;:::i;:::-;24688:406;;25138:178;25215:5;:17;;;25233:15;:28;;;25215:47;;;;;;;;:::i;:::-;;;;;;;:56;;;25138:178;;416:1:148;25160:13:172;25138:43;;:178;;;;;:::i;:::-;25124:192:::0;-1:-1:-1;25369:18:172::1;::::0;-1:-1:-1;25418:76:172::1;25439:12:::0;25418:76:::1;::::0;::::1;503:6:148;25418:41:172;:76::i;:::-;25369:125:::0;-1:-1:-1;25521:33:172::1;25369:125:::0;25521:33;::::1;:::i;:::-;::::0;-1:-1:-1;25580:31:172::1;25600:11:::0;25580:31;::::1;:::i;:::-;;;25638:58;25652:11;25665:10;25677:18;25638:13;:58::i;:::-;25727:63;25737:10;25749:15;25766:10;25778:11;25727:63;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1::0;;26260:34:172;;26296:1:::1;26256:42;26327:46:::0;;;26535:4:::1;26520:20;26487:54:::0;::::1;26480:82:::0;;;-1:-1:-1;;23128:3482:172::1;22250:4378;22111:4517;-1:-1:-1::0;26678:3:172::1;;19683:7031;;;26745:41;26767:19:::0;26745::::1;::::0;::::1;;:41;:::i;:::-;26727:59:::0;-1:-1:-1;;;26829:19:172;::::1;26811:37:::0;::::1;26807:125;;;26871:50;::::0;::::1;::::0;;26884:19;::::1;26871:50;::::0;::::1;3321:25:227::0;3362:18;;;3355:34;;;3294:18;;26871:50:172::1;3147:248:227::0;26807:125:172::1;27619:19:::0;;27615:203:::1;;27654:153;27766:10;27778:15:::0;27661:13:::1;;::::0;::::1;:6:::0;:13:::1;:::i;:::-;27675:1;27661:16;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:22;::::0;;::::1;:::i;:::-;:35;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;27697:13;;::::0;::::1;:6:::0;:13:::1;:::i;:::-;27711:1;27697:16;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:30;;;27661:67;;;;;;;:::i;:::-;:73;::::0;::::1;:67;::::0;;::::1;;:73:::0;;::::1;::::0;-1:-1:-1;27661:73:172::1;:::i;:::-;27654:94;;::::0;:153;:94:::1;:153::i;:::-;27853:1;27832:11;;::::0;::::1;:6:::0;:11:::1;:::i;:::-;:18;;:22;27828:390;;;27893:10;27870:47;27935:13;;::::0;::::1;:6:::0;:13:::1;:::i;:::-;27949:1;27935:16;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:22;::::0;;::::1;:::i;:::-;:35;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;27971:13;;::::0;::::1;:6:::0;:13:::1;:::i;:::-;27985:1;27971:16;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:30;;;27935:67;;;;;;;:::i;:::-;:73;::::0;::::1;:67;::::0;;::::1;;:73:::0;;::::1;::::0;-1:-1:-1;27935:73:172::1;:::i;:::-;28026:13;;::::0;::::1;:6:::0;:13:::1;:::i;:::-;28040:1;28026:16;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:22;::::0;;::::1;:::i;:::-;:34;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;28061:13;;::::0;::::1;:6:::0;:13:::1;:::i;:::-;28075:1;28061:16;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:29;;;28026:65;;;;;;;:::i;:::-;:71;::::0;::::1;:65;::::0;;::::1;;:71:::0;;::::1;::::0;-1:-1:-1;28026:71:172::1;:::i;:::-;28115:15:::0;28148:16;28182:11:::1;;::::0;::::1;:6:::0;:11:::1;:::i;:::-;27870:337;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;27828:390;28232:20:::0;;28228:222:::1;;28268:171;28382:10;28402:4;28409:16:::0;28275:13:::1;;::::0;::::1;:6:::0;:13:::1;:::i;:::-;28289:1;28275:16;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:22;::::0;;::::1;:::i;:::-;:34;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;28310:13;;::::0;::::1;:6:::0;:13:::1;:::i;:::-;28324:1;28310:16;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;:29;;;28275:65;;;;;;;:::i;:::-;:71;::::0;::::1;:65;::::0;;::::1;;:71:::0;;::::1;::::0;-1:-1:-1;28275:71:172::1;:::i;:::-;28268:96;;::::0;:171;;:96:::1;:171::i;:::-;28489:9;28484:138;28508:27;:34;28504:1;:38;28484:138;;;28567:40;28576:27;28604:1;28576:30;;;;;;;;:::i;:::-;;;;;;;28567:8;:40::i;:::-;28544:3;;28484:138;;;;18539:10099;;;2303:20:22::0;1716:1;2809:7;:22;2629:209;2303:20;18373:10265:172;;;:::o;28677:4498::-;2261:21:22;:19;:21::i;:::-;28982:14:172;;28962:16;;:34:::1;::::0;;::::1;::::0;::::1;::::0;28958:107:::1;;29033:16:::0;;29023:27:::1;::::0;::::1;::::0;;18150:42:227;18138:55;;;29023:27:172::1;::::0;::::1;18120:74:227::0;18093:18;;29023:27:172::1;17974:226:227::0;28958:107:172::1;29184:8;:20;;;29205:11;:27;;;29184:49;;;;;;;;:::i;:::-;;;;;;;:55;;;29099:140;;:10;:23;;;29123:11;:30;;;29099:55;;;;;;;;:::i;:::-;;;;;;;:61;;;:140;;;29078:407;;29314:10;:23;;;29338:11;:30;;;29314:55;;;;;;;;:::i;:::-;;;;;;;:61;;;29397:8;:20;;;29418:11;:27;;;29397:49;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;:55;29279:191:::1;::::0;::::1;::::0;;28230:42:227;28299:15;;;29279:191:172::1;::::0;::::1;28281:34:227::0;28351:15;;28331:18;;;28324:43;28193:18;;29279:191:172::1;28046:327:227::0;29078:407:172::1;29608:8;:20;;;29629:11;:27;;;29608:49;;;;;;;;:::i;:::-;;;;;;;:58;;;29520:146;;:10;:23;;;29544:11;:30;;;29520:55;;;;;;;;:::i;:::-;;;;;;;:64;;;:146;;;29499:427;;29749:10;:23;;;29773:11;:30;;;29749:55;;;;;;;;:::i;:::-;;;;;;;:64;;;29835:8;:20;;;29856:11;:27;;;29835:49;;;;;;;;:::i;:::-;;;;;;;:58;;;29706:205;;;;;;;;;;;28761:4:227::0;28749:17;;;28731:36;;28803:17;;28798:2;28783:18;;28776:45;28719:2;28704:18;;28565:262;29499:427:172::1;30042:22;::::0;::::1;::::0;:53;;30065:29;::::1;::::0;30042:53;::::1;;;;;:::i;:::-;;;;;;;:59;;;29961:140;;:8;:21;;;29983:11;:28;;;29961:51;;;;;;;;:::i;:::-;;;;;;;:57;;;:140;;;29940:407;;30176:22;::::0;::::1;::::0;:53;;30199:29;::::1;::::0;30176:53;::::1;;;;;:::i;:::-;;;;;;;:59;;;30257:8;:21;;;30279:11;:28;;;30257:51;;;;;;;;:::i;29940:407::-;30466:22;::::0;::::1;::::0;:53;;30489:29;::::1;::::0;30466:53;::::1;;;;;:::i;:::-;;;;;;;:62;;;30382:146;;:8;:21;;;30404:11;:28;;;30382:51;;;;;;;;:::i;:::-;;;;;;;:60;;;:146;;;30361:427;;30611:22;::::0;::::1;::::0;:53;;30634:29;::::1;::::0;30611:53;::::1;;;;;:::i;:::-;;;;;;;:62;;;30695:8;:21;;;30717:11;:28;;;30695:51;;;;;;;;:::i;30361:427::-;4477:1;31013:7;:26;31021:17;:10;:15;:17::i;:::-;31013:26;;;;;;;;;;;;:40:::0;31009:170:::1;;31078:62;31092:10;31104;:16;;;31122:17;:10;:15;:17::i;:::-;31078:62;::::0;;15673:42:227;15742:15;;;15724:34;;15794:15;;;;15789:2;15774:18;;15767:43;15826:18;;;15819:34;15651:2;15636:18;31078:62:172::1;;;;;;;31158:7;;31009:170;4477:1;31196:7;:24;31204:15;:8;:13;:15::i;:::-;31196:24;;;;;;;;;;;;:38:::0;31192:164:::1;;31259:58;31273:10;31285:8;:14;;;31301:15;:8;:13;:15::i;31192:164::-;31427:52;31433:10;31445;31457:8;31467:11;31427:52;;;;;;;;;:::i;:::-;;;;;;;;31499:51;31553:147;31583:10;31595:11;:29;;;31626:11;:30;;;31658:8;:14;;;31674:16;31553;:147::i;:::-;31499:201;;31710:49;31762:145;31792:8;31802:11;:27;;;31831:11;:28;;;31861:10;:16;;;31879:18;31762:16;:145::i;:::-;31710:197;;31917:40;31972:73;31998:23;32023:21;31972:25;:73::i;:::-;31917:128;;32056:97;32070:16;:27;;;32099:16;:28;;;32129:23;32056:13;:97::i;:::-;32163:91;32177:16;:25;;;32204:16;:26;;;32232:21;32163:13;:91::i;:::-;32464:25;::::0;::::1;::::0;32433:28;;32411:19:::1;::::0;32433:56:::1;::::0;::::1;:::i;:::-;32411:78;;32503:17;32552:16;:27;;;32523:16;:26;;;:56;;;;:::i;:::-;32503:76:::0;-1:-1:-1;32597:15:172;;32593:211:::1;;32647:10;32632:26;::::0;;;:14:::1;:26;::::0;;;;;;32659:23:::1;::::0;::::1;::::0;:55;;32778:11;;32632:26;;32683:30;::::1;;::::0;32659:55;::::1;;;;;:::i;:::-;;;;;;;:61;;;32632:89;;;;;;;;;;;;;;;:142;32722:11;:51;;;32632:142;;;;;;;;;;;;:157;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;32593:211:172::1;32821:13:::0;;32817:201:::1;;32869:10;32854:26;::::0;;;:14:::1;:26;::::0;;;;32881:21:::1;::::0;::::1;::::0;:51;;32994:9;;32854:26;32881:21;32903:28:::1;::::0;::::1;;::::0;32881:51;::::1;;;;;:::i;:::-;;;;;;;:57;;;32854:85;;;;;;;;;;;;;;;:136;32940:11;:49;;;32854:136;;;;;;;;;;;;:149;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;32817:201:172::1;-1:-1:-1::0;;33043:40:172::1;::::0;;33054:10:::1;33158:74:227::0;;33268:13;;33263:2;33248:18;;;33241:41;;;;33324:15;;33318:22;33298:18;;;33291:50;33383:15;;;33377:22;33372:2;33357:18;;;33350:50;;;;33443:15;;33437:22;33431:3;33416:19;;33409:51;33043:40:172::1;::::0;33145:3:227;33130:19;33043:40:172::1;;;;;;;33094:33;33103:23;33094:8;:33::i;:::-;33137:31;33146:21;33137:8;:31::i;:::-;28934:4241;;;2292:1:22;2303:20:::0;1716:1;2809:7;:22;2629:209;2303:20;28677:4498:172;;;;;:::o;470:308:31:-;538:22;594:4;582:24;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;572:34;;621:9;616:132;636:15;;;616:132;;;685:52;722:4;729;;734:1;729:7;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;685:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;685:28:31;;-1:-1:-1;;;685:52:31:i;:::-;672:7;680:1;672:10;;;;;;;;:::i;:::-;;;;;;:65;;;;653:3;;;;;:::i;:::-;;;;616:132;;;;470:308;;;;:::o;13682:940:172:-;2261:21:22;:19;:21::i;:::-;13790:12:172::1;13806:1;13790:17:::0;13786:107:::1;;13830:52;::::0;::::1;::::0;;13855:10:::1;13830:52;::::0;::::1;15724:34:227::0;15673:42;15794:15;;15774:18;;;15767:43;15826:18;;;15819:34;;;15636:18;;13830:52:172::1;15461:398:227::0;13786:107:172::1;13947:10;13902:27;13932:26:::0;;;:14:::1;:26;::::0;;;;;;;::::1;:33:::0;::::1;::::0;;;;;;;:42;;;;;;;;;;14081:37:::1;:12:::0;13932:42;14081:16:::1;:37::i;:::-;14056:62:::0;-1:-1:-1;14132:18:172;;14128:488:::1;;14416:36;14438:14:::0;14416:19;:36:::1;:::i;:::-;14386:10;14371:26;::::0;;;:14:::1;:26;::::0;;;;;;;::::1;:33:::0;::::1;::::0;;;;;;;;;:42;;;;;;;;;:81;;;;14471:66;;33991:34:227;;;34041:18;;34034:43;34093:18;;;34086:34;;;34151:2;34136:18;;34129:34;;;34194:3;34179:19;;34172:35;;;14471:66:172::1;::::0;33917:3:227;33902:19;14471:66:172::1;;;;;;;14551:54;:26;::::0;::::1;14578:10;14590:14:::0;14551:26:::1;:54::i;:::-;13776:846;;2303:20:22::0;1716:1;2809:7;:22;2629:209;12620:171:172;12747:21;;;;12721:7;12747:21;;;:14;:21;;;;;;;;:28;;;;;;;;;;;:37;;;;;;;12620:171;;;;;;:::o;17696:450::-;17772:17;2261:21:22;:19;:21::i;:::-;17819:11:172::1;;::::0;::::1;:5:::0;:11:::1;:::i;:::-;17805:25;;:10;:25;;;17801:101;;17867:10;17879:11;;::::0;::::1;:5:::0;:11:::1;:::i;:::-;17853:38;::::0;::::1;::::0;;28230:42:227;28299:15;;;17853:38:172::1;::::0;::::1;28281:34:227::0;28351:15;;28331:18;;;28324:43;28193:18;;17853:38:172::1;28046:327:227::0;17801:101:172::1;17911:17;17931:12;:10;:5:::0;:10:::1;:::i;:::-;;:12::i;:::-;17957:18;::::0;;;4273:1:::1;17957:18;::::0;;;;;17911:32;;-1:-1:-1;17957:32:172;;17953:187:::1;;4477:1;18038:18:::0;;;18020:4:::1;18038:18;::::0;;;;;;;:31;;;;18088:41;;18020:4;;-1:-1:-1;18088:41:172::1;::::0;::::1;::::0;18100:10:::1;::::0;18112:5;;18046:9;;18088:41:::1;:::i;:::-;;;;;;;;17953:187;17791:355;2303:20:22::0;1716:1;2809:7;:22;2629:209;2336:287;1759:1;2468:7;;:19;2460:63;;;;;;;37772:2:227;2460:63:22;;;37754:21:227;37811:2;37791:18;;;37784:30;37850:33;37830:18;;;37823:61;37901:18;;2460:63:22;37570:355:227;2460:63:22;1759:1;2598:7;:18;2336:287::o;1355:203:27:-;1482:68;;15673:42:227;15742:15;;;1482:68:27;;;15724:34:227;15794:15;;15774:18;;;15767:43;15826:18;;;15819:34;;;1455:96:27;;1475:5;;1505:27;;15636:18:227;;1482:68:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1455:19;:96::i;:::-;1355:203;;;;:::o;941:175::-;1050:58;;38134:42:227;38122:55;;1050:58:27;;;38104:74:227;38194:18;;;38187:34;;;1023:86:27;;1043:5;;1073:23;;38077:18:227;;1050:58:27;37930:297:227;3332:365:86;3399:13;3428:8;:15;3447:1;3428:20;3424:59;;-1:-1:-1;3471:1:86;;3332:365;-1:-1:-1;3332:365:86:o;3424:59::-;-1:-1:-1;3674:4:86;3660:19;3654:26;3651:1;3646:35;;3332:365::o;12679:319::-;12770:16;12822:15;12840:36;12854:8;12864:11;12840:13;:36::i;:::-;12953:14;12950:1;12945:23;;12679:319;-1:-1:-1;;;;12679:319:86:o;541:120:184:-;600:7;647:5;636:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;626:28;;;;;;619:35;;541:120;;;:::o;1075:155:153:-;1151:19;1164:5;1151:12;:19::i;:::-;1146:78;;1207:5;1193:20;;;;;;;;;;;:::i;1146:78::-;1075:155;:::o;33879:5183:172:-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;34166:17:172;34186:12;:5;:10;:12::i;:::-;34307:40;;;5872:1;34307:40;;;;;;;;;34166:32;;-1:-1:-1;34213:26:172;;34271:33;;34307:40;;;;;;;;;;;;;;;;;;;-1:-1:-1;34501:11:172;;4055:4:159;4049:11;;4087:1;4073:16;;4120:4;4109:16;;4102:27;;;34485:29:172;;;;4149:16:159;;;4142:27;34516:30:172;;;3967:22:159;4189:16;;4182:27;4246:4;4235:16;;4222:30;;34271:76:172;;-1:-1:-1;34365:14:172;34413:1;6305;34380:34;34365:50;;;;;;;;:::i;:::-;;;;;;:199;;;;34633:476;34696:5;:17;;;34714:12;34696:31;;;;;;;;:::i;:::-;;;;;;;:37;;;34680:55;;34757:5;:17;;;34775:12;34757:31;;;;;;;;:::i;:::-;;;;;;;:40;;;34633:476;;34819:5;:17;;;34837:12;34819:31;;;;;;;;:::i;:::-;;;;;;;:39;;;34880:14;:27;34895:5;:11;;;34880:27;;;;;;;;;;;;;;;:66;34908:5;:17;;;34926:12;34908:31;;;;;;;;:::i;:::-;;;;;;;:37;;;34880:66;;;;;;;;;;;;;;;:132;34947:5;:17;;;34965:12;34947:31;;;;;;;;:::i;:::-;;;;;;;:64;;;34880:132;;;;;;;;;;;;35090:1;5980:4:159;5974:11;;6012:1;5998:16;;6045:4;6034:16;;6027:27;;;;6074:16;;;6067:27;;;;5888:22;6114:16;;6107:27;;;;6165:4;6154:16;;6147:27;6205:4;6194:16;;6187:27;6251:4;6240:16;;6227:30;;5974:11;5767:506;34633:476:172;34583:14;34628:1;6840;34598:31;34583:47;;;;;;;;:::i;:::-;;;;;;:526;;;;35179:486;35242:5;:18;;;35261:13;35242:33;;;;;;;;:::i;:::-;;;;;;;:39;;;35226:57;;35305:5;:18;;;35324:13;35305:33;;;;;;;;:::i;:::-;;;;;;;:42;;;35179:486;;35369:5;:18;;;35388:13;35369:33;;;;;;;;:::i;:::-;;;;;;;:41;;;35432:14;:27;35447:5;:11;;;35432:27;;;;;;;;;;;;;;;:68;35460:5;:18;;;35479:13;35460:33;;;;;;;;:::i;:::-;;;;;;;:39;;;35432:68;;;;;;;;;;;;;;;:136;35501:5;:18;;;35520:13;35501:33;;;;;;;;:::i;35179:486::-;35128:14;35174:1;7007;35143:32;35128:48;;;;;;;;:::i;:::-;;;;;;:537;;;;35693:47;35710:14;35726:13;35693:16;:47::i;:::-;35683:57;;34253:1502;35931:24;35994:5;:11;;;35978:29;;35931:77;;36350:36;36388:34;36426:5;:32;;;:61;;;:84;;;36528:5;:15;;;:21;;;36567:55;36597:9;36616:4;1053:42:93;1150:25;;;1195:4;1188:20;1256:4;1243:18;;;933:344;36567:55:172;36640:51;36664:5;:15;;;:26;;;36640:23;:51::i;:::-;36734:16;;;36748:1;36734:16;;;;;;;;;36426:338;;;;;;;;;;;;;;36709:7;;36426:338;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;36349:415;;;;36779:31;36833:19;36853:1;36833:22;;;;;;;;:::i;:::-;;;;;;;36779:77;;36870:20;36893:19;36913:1;36893:22;;;;;;;;:::i;:::-;;;;;;;36870:45;;37084:25;37112:14;:27;37127:5;:11;;;37112:27;;;;;;;;;;;;;;;:68;37140:5;:18;;;37159:13;37140:33;;;;;;;;:::i;:::-;;;;;;;:39;;;37112:68;;;;;;;;;;;;;;;:132;37181:5;:39;;;37221:13;37181:54;;;;;;;;:::i;:::-;;;;;;;:62;;;37112:132;;;;;;;;;;;;37084:160;;38297:34;38374:72;38400:5;:18;;;38419:13;38400:33;;;;;;;;:::i;:::-;;;;;;;:42;;;38374:72;;38444:1;38374:17;:25;;:72;;;;;:::i;:::-;38297:150;;38533:19;38491:16;38469:84;38465:169;;;38596:19;38577:38;;38465:169;-1:-1:-1;;3283:4:159;3277:11;;3315:1;3301:16;;3348:4;3337:16;;3330:27;;;3377:16;;;3370:27;;;3195:22;3423:16;;3410:30;;;38745:7:172;6500:1;38745:36;;;;;;;;:::i;:::-;;;;;;;;;;;:135;;;;38902:143;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;38902:143:172;;;;;;;;;;;-1:-1:-1;;;;38902:143:172;;;;-1:-1:-1;38902:143:172;33879:5183::o;6057:849:150:-;6141:7;6211:8;253:2:148;6188:31:150;6184:706;;;253:2:148;6259:31:150;;;503:6:148;6312:21:150;;:25;6308:185;;6368:31;6386:1;6389:9;6368:17;:31::i;:::-;6361:38;;;;;6308:185;6453:21;6461:1;6464:9;6453:7;:21::i;6184:706::-;253:2:148;6517:8:150;:31;6513:377;;;6590:31;;;416:1:148;6643:21:150;;:25;6639:190;;6699:32;6716:1;6719:11;6699:16;:32::i;6639:190::-;6785:25;6795:1;6798:11;6785:9;:25::i;6513:377::-;-1:-1:-1;6874:1:150;6867:8;;649:163:149;741:7;767:38;:1;776;339:4:148;796:8:149;767;:38::i;:::-;760:45;649:163;-1:-1:-1;;;;649:163:149:o;7325:878:150:-;7414:7;7484:14;253:2:148;7461:37:150;7457:730;;;253:2:148;7540:37:150;;;416:1:148;7599:21:150;;:25;7595:190;;7655:32;7672:1;7675:11;7655:16;:32::i;7457:730::-;253:2:148;7809:14:150;:37;7805:382;;;7886:37;;;503:6:148;7945:21:150;;:25;7941:185;;8001:31;8019:1;8022:9;8001:17;:31::i;39582:1324:172:-;39792:5;39703:18;:26;;;6840:1;39703:55;;;;;;;;:::i;:::-;;;;;;;7824:1;39703:86;;;;;;;;:::i;:::-;;;;;;:94;;;;;39897:6;39807:18;:26;;;7007:1;39807:56;;;;;;;;:::i;:::-;;;;;;;7824:1;39807:87;;;;;;;;:::i;:::-;;;;;;;;;;:96;39918:9;;39914:379;;40029:24;;:30;40014:46;;;;;;:14;:46;;;;;40094:26;;;;:55;;40277:5;;40014:46;40094:26;6840:1;;40094:55;;;;;;:::i;:::-;;;;;;;7125:1;40094:79;;;;;;;;:::i;:::-;;;;;;;40014:175;;;;;;;;;;;;;;;:259;40190:18;:26;;;6840:1;40190:55;;;;;;;;:::i;:::-;;;;;;;7367:1;40190:82;;;;;;;;:::i;:::-;;;;;;;40014:259;;;;;;;;;;;;:268;;;;;;;:::i;:::-;;;;-1:-1:-1;;39914:379:172;40306:10;;40302:384;;40419:24;;:30;40404:46;;;;;;:14;:46;;;;;40484:26;;;;:56;;40669:6;;40404:46;40484:26;7007:1;;40484:56;;;;;;:::i;:::-;;;;;;;7125:1;40484:80;;;;;;;;:::i;:::-;;;;;;;40404:176;;;;;;;;;;;;;;;:261;40581:18;:26;;;7007:1;40581:56;;;;;;;;:::i;:::-;;;;;;;7367:1;40581:83;;;;;;;;:::i;:::-;;;;;;;40404:261;;;;;;;;;;;;:271;;;;;;;:::i;:::-;;;;-1:-1:-1;;40302:384:172;40852:47;40860:10;40872:18;:26;;;40852:47;;;;;;;:::i;:::-;;;;;;;;39582:1324;;;:::o;40912:2667::-;41217:22;;;;:29;:33;41213:489;;41593:18;:24;;;:34;;;:40;;;:44;;;41638:18;:28;;;41668:18;:22;;;41593:98;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;41213:489;41860:24;;:33;;;41856:1717;;;42353:30;42385:28;42417:18;:41;;;:68;;;:97;;;:120;;;42555:18;:24;;;:34;;;:40;;;42613:74;42643:18;:28;;;42681:4;1053:42:93;1150:25;;;1195:4;1188:20;1256:4;1243:18;;;933:344;42613:74:172;42705:64;42723:18;:24;;;:34;;;:45;;;42705:17;:64::i;:::-;42787:26;;;;42831:16;;;42845:1;42831:16;;;;;;;;;42417:444;;;;;;;;;;;;;;42787:26;42417:444;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;43072:18;;42352:509;;-1:-1:-1;42352:509:172;-1:-1:-1;43072:22:172;43068:495;;43461:18;:24;;;:34;;;:40;;;:44;;;43506:18;:28;;;43536:11;43461:87;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;41895:1678;;40912:2667;:::o;44123:654::-;44307:40;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;44307:40:172;44488:72;44513:23;44538:21;44488:24;:72::i;:::-;44414:146;;44415:27;;;44414:146;44698:72;44723:21;44746:23;44698:24;:72::i;:::-;44656:26;;;44628:142;44629:25;;;44628:142;44629:16;44123:654;-1:-1:-1;;44123:654:172:o;6674:198:29:-;6757:12;6788:77;6809:6;6817:4;6788:77;;;;;;;;;;;;;;;;;:20;:77::i;588:104:37:-;646:7;676:1;672;:5;:13;;684:1;672:13;;;-1:-1:-1;680:1:37;;588:104;-1:-1:-1;588:104:37:o;5196:642:27:-;5615:23;5641:69;5669:4;5641:69;;;;;;;;;;;;;;;;;5649:5;5641:27;;;;:69;;;;;:::i;:::-;5615:95;;5728:10;:17;5749:1;5728:22;:56;;;;5765:10;5754:30;;;;;;;;;;;;:::i;:::-;5720:111;;;;;;;42859:2:227;5720:111:27;;;42841:21:227;42898:2;42878:18;;;42871:30;42937:34;42917:18;;;42910:62;43008:12;42988:18;;;42981:40;43038:19;;5720:111:27;42657:406:227;11749:428:86;11839:15;11890:26;11923:21;11935:8;11923:11;:21::i;:::-;11947:1;11923:25;11919:1;:29;11890:58;;11962:14;11979:43;12000:8;12010:11;11979:20;:43::i;:::-;12094:44;;;;12090:57;;;12112:4;12090:57;;11749:428;-1:-1:-1;;;11749:428:86:o;550:376:153:-;615:4;650:1;635:5;:12;:16;631:34;;;-1:-1:-1;660:5:153;;550:376;-1:-1:-1;550:376:153:o;631:34::-;-1:-1:-1;846:1:153;835:13;829:20;691:16;825:32;667:18:152;883:36:153;;550:376::o;7166:2290:87:-;7301:18;7359:24;7400:14;:21;7386:36;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7386:36:87;;7359:63;;7571:21;7645:1;7621:14;:21;:25;:57;;7677:1;7621:57;;;7649:14;:21;7673:1;7649:25;7621:57;7599:11;:18;7595:1;:22;:84;7571:108;;7694:26;7739:13;7723:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7694:59;;7767:14;7817:17;3283:4:159;3277:11;;3315:1;3301:16;;2288:10:87;3348:4:159;3337:16;;3330:27;2326:4:87;3377:16:159;;;3370:27;2211:16:87;3423::159;;3410:30;;;3277:11;2172:169:87;7817:17;7799:7;7807:6;7799:15;;;;;;;;:::i;:::-;;;;;;:35;;;;7854:9;7849:140;7873:11;:18;7869:1;:22;7849:140;;;7916:8;;;;;;;7960:11;7972:1;7960:14;;;;;;;;:::i;:::-;;;;;;;7942:7;7950:6;7942:15;;;;;;;;:::i;:::-;;;;;;;;;;:32;7893:3;;7849:140;;;-1:-1:-1;8007:21:87;;:25;8003:1408;;8052:8;;;;;;;8096:7;8078;8086:6;8078:15;;;;;;;;:::i;:::-;;;;;;:25;;;;8127:9;8122:1275;8146:14;:21;8142:1;:25;8122:1275;;;8824:284;8890:14;8905:1;8890:17;;;;;;;;:::i;:::-;;;;;;;:24;;;8944:81;8973:51;8998:14;9013:1;8998:17;;;;;;;;:::i;:::-;;;;;;;:25;;;4081:13:146;;4096:4;4077:24;;;4058:17;;4048:54;;3908:210;8973:51:87;7389:34:33;7189:15;7376:48;;;7444:4;7437:18;;;;7495:4;7479:21;;;7120:396;8944:81:87;9055:14;9070:1;9055:17;;;;;;;;:::i;:::-;;;;;;;:27;;;8824:36;:284::i;:::-;8196:1010;;9164:19;;;;;;;;2308:25:227;;;2281:18;;9164:19:87;2162:177:227;8196:1010:87;9257:14;9272:1;9257:17;;;;;;;;:::i;:::-;;;;;;;:24;;;9241:42;;9228:7;9236:1;9228:10;;;;;;;;:::i;:::-;;;;;;:55;;;;;9305:8;;;;;;;9353:14;9368:1;9353:17;;;;;;;;:::i;:::-;;;;;;;:25;;;9335:7;9343:6;9335:15;;;;;;;;:::i;:::-;;;;;;;;;;:43;8169:3;;8122:1275;;;;8003:1408;-1:-1:-1;9432:7:87;7166:2290;-1:-1:-1;;;;;7166:2290:87:o;46814:214:172:-;46891:15;1517:4:89;1485:36;;;;;5054:1:172;1484:147:89;46925:96:172;863:785:89;3534:689:150;3614:9;726:2:148;3663:9:150;:34;3659:548;;3721:6;;:30;;3734:17;3721:30;;;3730:1;3721:30;3717:34;;3659:548;;;-1:-1:-1;3933:2:150;:15;;;3970:6;;;;:1;3933:15;3970:6;3933:15;4157:6;;;;:::i;:::-;;:11;:35;;4175:17;4157:35;;2590:688;2765:2;:15;;;2804:5;2765:15;2804:1;:5;:::i;:::-;2800:9;;726:2:148;3179:9:150;:34;3175:97;;3233:6;;:28;;3246:15;3252:9;3246:2;:15;:::i;:::-;3233:28;;;-1:-1:-1;3242:1:150;;2590:688;-1:-1:-1;;2590:688:150:o;5172:598::-;5253:9;726:2:148;5302:11:150;:36;5298:456;;5362:6;;:14;;5375:1;5362:14;;;5371:1;5362:14;5358:18;;;;5298:456;;;5427:2;:17;;;;5466:1;5427:17;5466:5;;;;:::i;:::-;;5462:9;;5690:1;5686;:5;5681:1;:10;5677:63;;-1:-1:-1;5720:1:150;5715:6;;5172:598;-1:-1:-1;;5172:598:150:o;4596:207::-;4670:7;726:2:148;4720:11:150;:36;;:66;;4774:11;4768:2;:17;4763:1;:23;;;;;:::i;:::-;;4720:66;;6012:299:37;6113:7;6132:14;6149:25;6156:1;6159;6162:11;6149:6;:25::i;:::-;6132:42;-1:-1:-1;6200:11:37;6188:8;:23;;;;;;;;:::i;:::-;;:56;;;;;6243:1;6228:11;6215:25;;;;;:::i;:::-;6225:1;6222;6215:25;:29;6188:56;6184:98;;;6260:11;6270:1;6260:11;;:::i;:::-;;;6184:98;6298:6;6012:299;-1:-1:-1;;;;;6012:299:37:o;47034:196:172:-;47105:15;1526:58:89;1517:4;1485:36;;;;;1484:101;47139:84:172;863:785:89;44783:2025:172;44966:18;44986:19;45210:27;45272:147;45358:21;:29;;;45389:16;45294:21;:31;;;45272:68;;:147;;;;;:::i;:::-;45473:33;;;;45210:219;;-1:-1:-1;45597:77:172;;;45593:183;;;-1:-1:-1;45750:13:172;45593:183;45921:163;45981:23;:29;;;:42;;;46024:23;:37;;;45981:81;;;;;;;;:::i;:::-;;;;;;;:90;;;45921:163;;46073:1;45943:16;45921:46;;:163;;;;;:::i;:::-;45907:177;;46173:26;46234:104;46288:23;:31;;;46321:16;46256;46234:53;;:104;;;;;:::i;:::-;46173:175;;46635:166;46690:21;:27;;;:40;;;46731:21;:35;;;46690:77;;;;;;;;:::i;46635:166::-;46358:443;;45007:1801;;;44783:2025;;;;;:::o;7058:325:29:-;7199:12;7224;7238:23;7265:6;:19;;7285:4;7265:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7223:67;;;;7307:69;7334:6;7342:7;7351:10;7363:12;7307:26;:69::i;:::-;7300:76;7058:325;-1:-1:-1;;;;;;7058:325:29:o;4108:223::-;4241:12;4272:52;4294:6;4302:4;4308:1;4311:12;4272:21;:52::i;10570:572:86:-;10667:14;10779:21;10791:8;10779:11;:21::i;:::-;10764:11;:36;10760:119;;10846:8;10856:11;10823:45;;;;;;;;;;;;:::i;10760:119::-;-1:-1:-1;11113:1:86;11096:19;11074:42;11092:1;11074:42;11068:49;11119:6;11064:62;;10570:572::o;1014:366:34:-;1120:4;1137:17;1156:24;1184:33;1201:4;1207:9;1184:16;:33::i;:::-;1136:81;;-1:-1:-1;1136:81:34;-1:-1:-1;1256:26:34;1247:5;:35;;;;;;;;:::i;:::-;;:58;;;;;1299:6;1286:19;;:9;:19;;;1247:58;1246:127;;;;1322:51;1349:6;1357:4;1363:9;1322:26;:51::i;1667:4213:37:-;1749:14;;;2289:6;2286:1;2283;2276:20;2329:1;2326;2322:9;2313:18;;2384:5;2380:2;2377:13;2369:5;2365:2;2361:14;2357:34;2348:43;;;2486:5;2495:1;2486:10;2482:368;;2824:11;2816:5;:19;;;;;:::i;:::-;;2809:26;;;;;;2482:368;2974:5;2960:11;:19;2952:53;;;;;;;45900:2:227;2952:53:37;;;45882:21:227;45939:2;45919:18;;;45912:30;45978:23;45958:18;;;45951:51;46019:18;;2952:53:37;45698:345:227;2952:53:37;3261:17;3396:11;3393:1;3390;3383:25;4774:1;3944;3929:12;;:16;;3914:32;;4049:22;;;;4755:1;:15;;4754:21;;5007;;;5003:25;;4992:36;5076:21;;;5072:25;;5061:36;5146:21;;;5142:25;;5131:36;5216:21;;;5212:25;;5201:36;5286:21;;;5282:25;;5271:36;5357:21;;;5353:25;;;5342:36;;;3899:12;4294;;;4290:23;;;4286:31;;;3510:20;;;3499:32;;;4406:12;;;;3557:21;;4147:16;;;;4397:21;;;;5821:15;;;-1:-1:-1;;;;1667:4213:37:o;7671:628:29:-;7851:12;7879:7;7875:418;;;7906:10;:17;7927:1;7906:22;7902:286;;1702:19;;;;8113:60;;;;;;;46250:2:227;8113:60:29;;;46232:21:227;46289:2;46269:18;;;46262:30;46328:31;46308:18;;;46301:59;46377:18;;8113:60:29;46048:353:227;8113:60:29;-1:-1:-1;8208:10:29;8201:17;;7875:418;8249:33;8257:10;8269:12;8249:7;:33::i;5165:446::-;5330:12;5387:5;5362:21;:30;;5354:81;;;;;;;46608:2:227;5354:81:29;;;46590:21:227;46647:2;46627:18;;;46620:30;46686:34;46666:18;;;46659:62;46757:8;46737:18;;;46730:36;46783:19;;5354:81:29;46406:402:227;5354:81:29;5446:12;5460:23;5487:6;:11;;5506:5;5513:4;5487:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5445:73;;;;5535:69;5562:6;5570:7;5579:10;5591:12;5535:26;:69::i;:::-;5528:76;5165:446;-1:-1:-1;;;;;;;5165:446:29:o;2145:730:33:-;2226:7;2235:12;2263:9;:16;2283:2;2263:22;2259:610;;2599:4;2584:20;;2578:27;2648:4;2633:20;;2627:27;2705:4;2690:20;;2684:27;2301:9;2676:36;2746:25;2757:4;2676:36;2578:27;2627;2746:10;:25::i;:::-;2739:32;;;;;;;;;2259:610;-1:-1:-1;2818:1:33;;-1:-1:-1;2822:35:33;2259:610;2145:730;;;;;:::o;1786:473:34:-;1929:4;1946:12;1960:19;1983:6;:17;;2037:34;;;2073:4;2079:9;2014:75;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1983:116;;;;2014:75;1983:116;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1945:154;;;;2117:7;:42;;;;;2157:2;2140:6;:13;:19;;2117:42;:134;;;;-1:-1:-1;2175:29:34;;2216:34;;2175:29;;;;;;;;;;;;:::i;:::-;:76;;1786:473;-1:-1:-1;;;;;;1786:473:34:o;8821:540:29:-;8980:17;;:21;8976:379;;9208:10;9202:17;9264:15;9251:10;9247:2;9243:19;9236:44;8976:379;9331:12;9324:20;;;;;;;;;;;:::i;5009:1456:33:-;5097:7;;6021:66;6008:79;;6004:161;;;-1:-1:-1;6119:1:33;;-1:-1:-1;6123:30:33;6103:51;;6004:161;6276:24;;;6259:14;6276:24;;;;;;;;;47557:25:227;;;47630:4;47618:17;;47598:18;;;47591:45;;;;47652:18;;;47645:34;;;47695:18;;;47688:34;;;6276:24:33;;47529:19:227;;6276:24:33;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6276:24:33;;;;;;-1:-1:-1;;6314:20:33;;;6310:101;;6366:1;6370:29;6350:50;;;;;;;6310:101;6429:6;-1:-1:-1;6437:20:33;;-1:-1:-1;5009:1456:33;;;;;;;;:::o;14:154:227:-;100:42;93:5;89:54;82:5;79:65;69:93;;158:1;155;148:12;173:383;250:6;258;266;319:2;307:9;298:7;294:23;290:32;287:52;;;335:1;332;325:12;287:52;374:9;361:23;393:31;418:5;393:31;:::i;:::-;443:5;495:2;480:18;;467:32;;-1:-1:-1;546:2:227;531:18;;;518:32;;173:383;-1:-1:-1;;;173:383:227:o;561:180::-;620:6;673:2;661:9;652:7;648:23;644:32;641:52;;;689:1;686;679:12;641:52;-1:-1:-1;712:23:227;;561:180;-1:-1:-1;561:180:227:o;938:967::-;1066:6;1074;1082;1090;1098;1151:3;1139:9;1130:7;1126:23;1122:33;1119:53;;;1168:1;1165;1158:12;1119:53;1207:9;1194:23;1226:31;1251:5;1226:31;:::i;:::-;1276:5;-1:-1:-1;1333:2:227;1318:18;;1305:32;1346:33;1305:32;1346:33;:::i;:::-;1398:7;-1:-1:-1;1452:2:227;1437:18;;1424:32;;-1:-1:-1;1507:2:227;1492:18;;1479:32;1530:18;1560:14;;;1557:34;;;1587:1;1584;1577:12;1557:34;1625:6;1614:9;1610:22;1600:32;;1670:7;1663:4;1659:2;1655:13;1651:27;1641:55;;1692:1;1689;1682:12;1641:55;1732:2;1719:16;1758:2;1750:6;1747:14;1744:34;;;1774:1;1771;1764:12;1744:34;1819:7;1814:2;1805:6;1801:2;1797:15;1793:24;1790:37;1787:57;;;1840:1;1837;1830:12;1787:57;938:967;;;;-1:-1:-1;938:967:227;;-1:-1:-1;1871:2:227;1863:11;;1893:6;938:967;-1:-1:-1;;;938:967:227:o;1910:247::-;1969:6;2022:2;2010:9;2001:7;1997:23;1993:32;1990:52;;;2038:1;2035;2028:12;1990:52;2077:9;2064:23;2096:31;2121:5;2096:31;:::i;2344:394::-;2437:6;2490:2;2478:9;2469:7;2465:23;2461:32;2458:52;;;2506:1;2503;2496:12;2458:52;2546:9;2533:23;2579:18;2571:6;2568:30;2565:50;;;2611:1;2608;2601:12;2565:50;2634:22;;2690:3;2672:16;;;2668:26;2665:46;;;2707:1;2704;2697:12;2743:399;2841:6;2894:2;2882:9;2873:7;2869:23;2865:32;2862:52;;;2910:1;2907;2900:12;2862:52;2950:9;2937:23;2983:18;2975:6;2972:30;2969:50;;;3015:1;3012;3005:12;2969:50;3038:22;;3094:3;3076:16;;;3072:26;3069:46;;;3111:1;3108;3101:12;3400:184;3452:77;3449:1;3442:88;3549:4;3546:1;3539:15;3573:4;3570:1;3563:15;3589:253;3661:2;3655:9;3703:4;3691:17;;3738:18;3723:34;;3759:22;;;3720:62;3717:88;;;3785:18;;:::i;:::-;3821:2;3814:22;3589:253;:::o;3847:334::-;3918:2;3912:9;3974:2;3964:13;;3979:66;3960:86;3948:99;;4077:18;4062:34;;4098:22;;;4059:62;4056:88;;;4124:18;;:::i;:::-;4160:2;4153:22;3847:334;;-1:-1:-1;3847:334:227:o;4186:118::-;4272:5;4265:13;4258:21;4251:5;4248:32;4238:60;;4294:1;4291;4284:12;4309:128;4374:20;;4403:28;4374:20;4403:28;:::i;4442:570::-;4500:5;4548:4;4536:9;4531:3;4527:19;4523:30;4520:50;;;4566:1;4563;4556:12;4520:50;4588:22;;:::i;:::-;4579:31;;4647:9;4634:23;4666:33;4691:7;4666:33;:::i;:::-;4708:22;;4782:2;4767:18;;4754:32;4795:33;4754:32;4795:33;:::i;:::-;4855:2;4844:14;;4837:31;4920:2;4905:18;;4892:32;4933:33;4892:32;4933:33;:::i;:::-;4993:2;4982:14;;4975:31;4986:5;4442:570;-1:-1:-1;;4442:570:227:o;5017:185::-;5079:4;5112:18;5104:6;5101:30;5098:56;;;5134:18;;:::i;:::-;-1:-1:-1;5179:1:227;5175:14;5191:4;5171:25;;5017:185::o;5207:156::-;5273:20;;5333:4;5322:16;;5312:27;;5302:55;;5353:1;5350;5343:12;5368:419;5417:5;5465:4;5453:9;5448:3;5444:19;5440:30;5437:50;;;5483:1;5480;5473:12;5437:50;5505:22;;:::i;:::-;5496:31;;5564:9;5551:23;5583:33;5608:7;5583:33;:::i;:::-;5625:22;;5679:36;5711:2;5696:18;;5679:36;:::i;:::-;5674:2;5667:5;5663:14;5656:60;5776:2;5765:9;5761:18;5748:32;5743:2;5736:5;5732:14;5725:56;5368:419;;;;:::o;5792:703::-;5848:5;5901:3;5894:4;5886:6;5882:17;5878:27;5868:55;;5919:1;5916;5909:12;5868:55;5955:6;5942:20;5981:4;6005:62;6021:45;6063:2;6021:45;:::i;:::-;6005:62;:::i;:::-;6101:15;;;6163:4;6206:11;;;6194:24;;6190:33;;;6132:12;;;;6089:3;6235:15;;;6232:35;;;6263:1;6260;6253:12;6232:35;6299:2;6291:6;6287:15;6311:155;6327:6;6322:3;6319:15;6311:155;;;6393:30;6419:3;6414;6393:30;:::i;:::-;6381:43;;6444:12;;;;6344;;6311:155;;;-1:-1:-1;6484:5:227;;5792:703;-1:-1:-1;;;;;;;5792:703:227:o;6500:1052::-;6554:5;6602:4;6590:9;6585:3;6581:19;6577:30;6574:50;;;6620:1;6617;6610:12;6574:50;6653:2;6647:9;6695:4;6687:6;6683:17;6719:18;6787:6;6775:10;6772:22;6767:2;6755:10;6752:18;6749:46;6746:72;;;6798:18;;:::i;:::-;6838:10;6834:2;6827:22;6867:6;6858:15;;6910:9;6897:23;6882:38;;6929:33;6954:7;6929:33;:::i;:::-;6986:7;6978:6;6971:23;7027:35;7058:2;7047:9;7043:18;7027:35;:::i;:::-;7022:2;7014:6;7010:15;7003:60;7096:54;7146:3;7141:2;7130:9;7126:18;7096:54;:::i;:::-;7091:2;7083:6;7079:15;7072:79;7202:4;7191:9;7187:20;7174:34;7160:48;;7231:2;7223:6;7220:14;7217:34;;;7247:1;7244;7237:12;7217:34;7286:59;7341:3;7332:6;7321:9;7317:22;7286:59;:::i;:::-;7279:4;7271:6;7267:17;7260:86;7399:3;7388:9;7384:19;7371:33;7355:49;;7429:2;7419:8;7416:16;7413:36;;;7445:1;7442;7435:12;7413:36;;7484:61;7541:3;7530:8;7519:9;7515:24;7484:61;:::i;:::-;7477:4;7469:6;7465:17;7458:88;;;6500:1052;;;;:::o;7557:245::-;7605:4;7638:18;7630:6;7627:30;7624:56;;;7660:18;;:::i;:::-;-1:-1:-1;7717:2:227;7705:15;7722:66;7701:88;7791:4;7697:99;;7557:245::o;7807:462::-;7849:5;7902:3;7895:4;7887:6;7883:17;7879:27;7869:55;;7920:1;7917;7910:12;7869:55;7956:6;7943:20;7987:48;8003:31;8031:2;8003:31;:::i;7987:48::-;8060:2;8051:7;8044:19;8106:3;8099:4;8094:2;8086:6;8082:15;8078:26;8075:35;8072:55;;;8123:1;8120;8113:12;8072:55;8188:2;8181:4;8173:6;8169:17;8162:4;8153:7;8149:18;8136:55;8236:1;8211:16;;;8229:4;8207:27;8200:38;;;;8215:7;7807:462;-1:-1:-1;;;7807:462:227:o;8274:2554::-;8343:5;8396:3;8389:4;8381:6;8377:17;8373:27;8363:55;;8414:1;8411;8404:12;8363:55;8450:6;8437:20;8476:4;8500:62;8516:45;8558:2;8516:45;:::i;8500:62::-;8596:15;;;8682:1;8678:10;;;;8666:23;;8662:32;;;8627:12;;;;8706:15;;;8703:35;;;8734:1;8731;8724:12;8703:35;8770:2;8762:6;8758:15;8782:2017;8798:6;8793:3;8790:15;8782:2017;;;8884:3;8871:17;8911:18;8961:2;8948:11;8945:19;8942:39;;;8977:1;8974;8967:12;8942:39;9004:24;;;;9135:4;9052:12;;;9066:66;9048:85;9044:96;9041:186;;;9181:1;9210:2;9206;9199:14;9041:186;9253:22;;:::i;:::-;9324:2;9320;9316:11;9303:25;9341:33;9366:7;9341:33;:::i;:::-;9387:22;;9432:2;9476:11;;;9463:25;9504:16;;;9501:106;;;9561:1;9590:2;9586;9579:14;9501:106;9630:17;;9682:2;9674:11;;9670:21;-1:-1:-1;9660:119:227;;9733:1;9762:2;9758;9751:14;9660:119;9824:2;9820;9816:11;9803:25;9854:63;9870:46;9912:3;9870:46;:::i;9854:63::-;9961:18;;;10060:1;10056:11;;;;10048:20;;10044:29;;;10001:14;;;;10089:17;;;10086:110;;;10148:1;10178:3;10173;10166:16;10086:110;10222:11;;;;10246:174;10264:8;10257:5;10254:19;10246:174;;;10346:19;;10332:34;;10285:14;;;;10392;;;;10246:174;;;10440:14;;;10433:29;-1:-1:-1;;;10512:4:227;10504:13;;10491:27;10534:16;;;10531:109;;;10592:1;10622:3;10617;10610:16;10531:109;10676:49;10721:3;10716:2;10705:8;10701:2;10697:17;10693:26;10676:49;:::i;:::-;10660:14;;;10653:73;;;;-1:-1:-1;10739:18:227;;-1:-1:-1;;10777:12:227;;;;8815;;8782:2017;;;-1:-1:-1;10817:5:227;8274:2554;-1:-1:-1;;;;;;8274:2554:227:o;10833:1365::-;11130:6;11138;11146;11154;11162;11206:9;11197:7;11193:23;11236:3;11232:2;11228:12;11225:32;;;11253:1;11250;11243:12;11225:32;11293:9;11280:23;11322:18;11363:2;11355:6;11352:14;11349:34;;;11379:1;11376;11369:12;11349:34;11402:58;11452:7;11443:6;11432:9;11428:22;11402:58;:::i;:::-;11392:68;;11513:2;11502:9;11498:18;11485:32;11469:48;;11542:2;11532:8;11529:16;11526:36;;;11558:1;11555;11548:12;11526:36;11581:60;11633:7;11622:8;11611:9;11607:24;11581:60;:::i;:::-;11571:70;;11734:3;11665:66;11661:2;11657:75;11653:85;11650:105;;;11751:1;11748;11741:12;11650:105;11789:2;11778:9;11774:18;11764:28;;11845:3;11834:9;11830:19;11817:33;11801:49;;11875:2;11865:8;11862:16;11859:36;;;11891:1;11888;11881:12;11859:36;11914:78;11984:7;11973:8;11962:9;11958:24;11914:78;:::i;:::-;11904:88;;12045:3;12034:9;12030:19;12017:33;12001:49;;12075:2;12065:8;12062:16;12059:36;;;12091:1;12088;12081:12;12059:36;;;12114:78;12184:7;12173:8;12162:9;12158:24;12114:78;:::i;:::-;12104:88;;;10833:1365;;;;;;;;:::o;12203:626::-;12300:6;12308;12361:2;12349:9;12340:7;12336:23;12332:32;12329:52;;;12377:1;12374;12367:12;12329:52;12417:9;12404:23;12446:18;12487:2;12479:6;12476:14;12473:34;;;12503:1;12500;12493:12;12473:34;12541:6;12530:9;12526:22;12516:32;;12586:7;12579:4;12575:2;12571:13;12567:27;12557:55;;12608:1;12605;12598:12;12557:55;12648:2;12635:16;12674:2;12666:6;12663:14;12660:34;;;12690:1;12687;12680:12;12660:34;12743:7;12738:2;12728:6;12725:1;12721:14;12717:2;12713:23;12709:32;12706:45;12703:65;;;12764:1;12761;12754:12;12703:65;12795:2;12787:11;;;;;12817:6;;-1:-1:-1;12203:626:227;;-1:-1:-1;;;;12203:626:227:o;12834:250::-;12919:1;12929:113;12943:6;12940:1;12937:13;12929:113;;;13019:11;;;13013:18;13000:11;;;12993:39;12965:2;12958:10;12929:113;;;-1:-1:-1;;13076:1:227;13058:16;;13051:27;12834:250::o;13089:329::-;13130:3;13168:5;13162:12;13195:6;13190:3;13183:19;13211:76;13280:6;13273:4;13268:3;13264:14;13257:4;13250:5;13246:16;13211:76;:::i;:::-;13332:2;13320:15;13337:66;13316:88;13307:98;;;;13407:4;13303:109;;13089:329;-1:-1:-1;;13089:329:227:o;13423:859::-;13583:4;13612:2;13652;13641:9;13637:18;13682:2;13671:9;13664:21;13705:6;13740;13734:13;13771:6;13763;13756:22;13809:2;13798:9;13794:18;13787:25;;13871:2;13861:6;13858:1;13854:14;13843:9;13839:30;13835:39;13821:53;;13909:2;13901:6;13897:15;13930:1;13940:313;13954:6;13951:1;13948:13;13940:313;;;14043:66;14031:9;14023:6;14019:22;14015:95;14010:3;14003:108;14134:39;14166:6;14157;14151:13;14134:39;:::i;:::-;14124:49;-1:-1:-1;14231:12:227;;;;14196:15;;;;13976:1;13969:9;13940:313;;;-1:-1:-1;14270:6:227;;13423:859;-1:-1:-1;;;;;;;13423:859:227:o;14287:456::-;14364:6;14372;14380;14433:2;14421:9;14412:7;14408:23;14404:32;14401:52;;;14449:1;14446;14439:12;14401:52;14488:9;14475:23;14507:31;14532:5;14507:31;:::i;:::-;14557:5;-1:-1:-1;14614:2:227;14599:18;;14586:32;14627:33;14586:32;14627:33;:::i;:::-;14287:456;;14679:7;;-1:-1:-1;;;14733:2:227;14718:18;;;;14705:32;;14287:456::o;14748:315::-;14816:6;14824;14877:2;14865:9;14856:7;14852:23;14848:32;14845:52;;;14893:1;14890;14883:12;14845:52;14932:9;14919:23;14951:31;14976:5;14951:31;:::i;:::-;15001:5;15053:2;15038:18;;;;15025:32;;-1:-1:-1;;;14748:315:227:o;15068:388::-;15155:6;15208:2;15196:9;15187:7;15183:23;15179:32;15176:52;;;15224:1;15221;15214:12;15176:52;15264:9;15251:23;15297:18;15289:6;15286:30;15283:50;;;15329:1;15326;15319:12;15283:50;15352:22;;15408:3;15390:16;;;15386:26;15383:46;;;15425:1;15422;15415:12;16339:184;16391:77;16388:1;16381:88;16488:4;16485:1;16478:15;16512:4;16509:1;16502:15;16528:125;16593:9;;;16614:10;;;16611:36;;;16627:18;;:::i;16658:325::-;16746:6;16741:3;16734:19;16798:6;16791:5;16784:4;16779:3;16775:14;16762:43;;16850:1;16843:4;16834:6;16829:3;16825:16;16821:27;16814:38;16716:3;16972:4;16902:66;16897:2;16889:6;16885:15;16881:88;16876:3;16872:98;16868:109;16861:116;;16658:325;;;;:::o;16988:610::-;17220:4;17249:42;17330:2;17322:6;17318:15;17307:9;17300:34;17382:2;17374:6;17370:15;17365:2;17354:9;17350:18;17343:43;;17422:6;17417:2;17406:9;17402:18;17395:34;17465:6;17460:2;17449:9;17445:18;17438:34;17509:3;17503;17492:9;17488:19;17481:32;17530:62;17587:3;17576:9;17572:19;17564:6;17556;17530:62;:::i;:::-;17522:70;16988:610;-1:-1:-1;;;;;;;;16988:610:227:o;17603:184::-;17673:6;17726:2;17714:9;17705:7;17701:23;17697:32;17694:52;;;17742:1;17739;17732:12;17694:52;-1:-1:-1;17765:16:227;;17603:184;-1:-1:-1;17603:184:227:o;18394:394::-;18498:4;18556:11;18543:25;18646:66;18635:8;18619:14;18615:29;18611:102;18591:18;18587:127;18577:155;;18728:1;18725;18718:12;18577:155;18749:33;;;;;18394:394;-1:-1:-1;;18394:394:227:o;18793:580::-;18870:4;18876:6;18936:11;18923:25;19026:66;19015:8;18999:14;18995:29;18991:102;18971:18;18967:127;18957:155;;19108:1;19105;19098:12;18957:155;19135:33;;19187:20;;;-1:-1:-1;19230:18:227;19219:30;;19216:50;;;19262:1;19259;19252:12;19216:50;19295:4;19283:17;;-1:-1:-1;19326:14:227;19322:27;;;19312:38;;19309:58;;;19363:1;19360;19353:12;19378:630;19494:4;19500:6;19560:11;19547:25;19650:66;19639:8;19623:14;19619:29;19615:102;19595:18;19591:127;19581:155;;19732:1;19729;19722:12;19581:155;19759:33;;19811:20;;;-1:-1:-1;19854:18:227;19843:30;;19840:50;;;19886:1;19883;19876:12;19840:50;19919:4;19907:17;;-1:-1:-1;19978:4:227;19966:17;;19950:14;19946:38;19936:49;;19933:69;;;19998:1;19995;19988:12;20296:604;20389:4;20395:6;20455:11;20442:25;20545:66;20534:8;20518:14;20514:29;20510:102;20490:18;20486:127;20476:155;;20627:1;20624;20617:12;20476:155;20654:33;;20706:20;;;-1:-1:-1;20749:18:227;20738:30;;20735:50;;;20781:1;20778;20771:12;20735:50;20814:4;20802:17;;-1:-1:-1;20865:1:227;20861:14;;;20845;20841:35;20831:46;;20828:66;;;20890:1;20887;20880:12;20905:671;21150:2;21139:9;21132:21;21113:4;21176:61;21233:2;21222:9;21218:18;21210:6;21202;21176:61;:::i;:::-;21285:9;21277:6;21273:22;21268:2;21257:9;21253:18;21246:50;21320:6;21312;21305:22;21350:66;21342:6;21339:78;21336:98;;;21430:1;21427;21420:12;21336:98;21464:6;21461:1;21457:14;21518:6;21510;21505:2;21497:6;21493:15;21480:45;21546:19;21567:2;21542:28;;20905:671;-1:-1:-1;;;;;;20905:671:227:o;21581:1097::-;21740:6;21748;21756;21764;21817:3;21805:9;21796:7;21792:23;21788:33;21785:53;;;21834:1;21831;21824:12;21785:53;21866:9;21860:16;21885:31;21910:5;21885:31;:::i;:::-;21985:2;21970:18;;21964:25;21935:5;;-1:-1:-1;21998:33:227;21964:25;21998:33;:::i;:::-;22102:2;22087:18;;22081:25;22050:7;;-1:-1:-1;22115:33:227;22081:25;22115:33;:::i;:::-;22218:2;22203:18;;22197:25;22167:7;;-1:-1:-1;22245:18:227;22234:30;;22231:50;;;22277:1;22274;22267:12;22231:50;22300:22;;22353:4;22345:13;;22341:27;-1:-1:-1;22331:55:227;;22382:1;22379;22372:12;22331:55;22411:2;22405:9;22436:48;22452:31;22480:2;22452:31;:::i;22436:48::-;22507:2;22500:5;22493:17;22547:7;22542:2;22537;22533;22529:11;22525:20;22522:33;22519:53;;;22568:1;22565;22558:12;22519:53;22581:67;22645:2;22640;22633:5;22629:14;22624:2;22620;22616:11;22581:67;:::i;:::-;21581:1097;;;;-1:-1:-1;21581:1097:227;;-1:-1:-1;;;;21581:1097:227:o;22683:218::-;22763:6;22816:2;22804:9;22795:7;22791:23;22787:32;22784:52;;;22832:1;22829;22822:12;22784:52;22855:40;22887:7;22876:9;22855:40;:::i;22906:664::-;22961:3;22999:5;22993:12;23026:6;23021:3;23014:19;23052:4;23081:2;23076:3;23072:12;23065:19;;23118:2;23111:5;23107:14;23139:1;23149:396;23163:6;23160:1;23157:13;23149:396;;;23222:13;;23264:9;;23275:42;23260:58;23248:71;;23363:11;;;23357:18;23377:4;23353:29;23339:12;;;23332:51;23406:4;23450:11;;;23444:18;23430:12;;;23423:40;23492:4;23483:14;;;;23520:15;;;;23185:1;23178:9;23149:396;;;-1:-1:-1;23561:3:227;;22906:664;-1:-1:-1;;;;;22906:664:227:o;23575:835::-;23625:3;23653:42;23734:2;23726:5;23720:12;23716:21;23711:3;23704:34;23801:4;23794:5;23790:16;23784:23;23777:31;23770:39;23763:4;23758:3;23754:14;23747:63;23856:4;23849:5;23845:16;23839:23;23919:2;23904:12;23898:19;23894:28;23887:4;23882:3;23878:14;23871:52;23989:2;23981:4;23967:12;23963:23;23957:30;23953:39;23948:2;23943:3;23939:12;23932:61;24060:2;24052:4;24038:12;24034:23;24028:30;24024:39;24018:3;24013;24009:13;24002:62;;;24112:2;24105:5;24101:14;24095:21;24148:4;24141;24136:3;24132:14;24125:28;24174:62;24230:4;24225:3;24221:14;24205;24174:62;:::i;:::-;24162:74;;24284:3;24277:5;24273:15;24267:22;24331:3;24325:4;24321:14;24314:4;24309:3;24305:14;24298:38;24352:52;24399:4;24383:14;24352:52;:::i;24415:585::-;24674:4;24703:42;24784:2;24776:6;24772:15;24761:9;24754:34;24836:2;24828:6;24824:15;24819:2;24808:9;24804:18;24797:43;;24876:3;24871:2;24860:9;24856:18;24849:31;24897:54;24946:3;24935:9;24931:19;24923:6;24897:54;:::i;:::-;24889:62;;24987:6;24982:2;24971:9;24967:18;24960:34;24415:585;;;;;;;:::o;25005:435::-;25230:42;25222:6;25218:55;25207:9;25200:74;25310:6;25305:2;25294:9;25290:18;25283:34;25353:2;25348;25337:9;25333:18;25326:30;25181:4;25373:61;25430:2;25419:9;25415:18;25407:6;25399;25373:61;:::i;26092:184::-;26144:77;26141:1;26134:88;26241:4;26238:1;26231:15;26265:4;26262:1;26255:15;26281:394;26385:4;26443:11;26430:25;26533:66;26522:8;26506:14;26502:29;26498:102;26478:18;26474:127;26464:155;;26615:1;26612;26605:12;26680:972;26804:9;26863:4;26855:5;26839:14;26835:26;26831:37;26828:57;;;26881:1;26878;26871:12;26828:57;26914:2;26908:9;26956:4;26948:6;26944:17;26980:18;27048:6;27036:10;27033:22;27028:2;27016:10;27013:18;27010:46;27007:72;;;27059:18;;:::i;:::-;27099:10;27095:2;27088:22;27146:5;27133:19;27119:33;;27175:2;27167:6;27164:14;27161:34;;;27191:1;27188;27181:12;27161:34;27219:61;27265:14;27256:6;27249:5;27245:18;27219:61;:::i;:::-;27211:6;27204:77;27338:2;27331:5;27327:14;27314:28;27309:2;27301:6;27297:15;27290:53;27400:2;27393:5;27389:14;27376:28;27371:2;27363:6;27359:15;27352:53;27454:2;27447:5;27443:14;27430:28;27414:44;;27483:2;27473:8;27470:16;27467:36;;;27499:1;27496;27489:12;27467:36;;27536:81;27602:14;27591:8;27584:5;27580:20;27536:81;:::i;:::-;27531:2;27519:15;;27512:106;-1:-1:-1;27523:6:227;26680:972;-1:-1:-1;;26680:972:227:o;27657:384::-;27751:4;27809:11;27796:25;27899:66;27888:8;27872:14;27868:29;27864:102;27844:18;27840:127;27830:155;;27981:1;27978;27971:12;28378:182;28435:6;28488:2;28476:9;28467:7;28463:23;28459:32;28456:52;;;28504:1;28501;28494:12;28456:52;28527:27;28544:9;28527:27;:::i;29235:128::-;29302:9;;;29323:11;;;29320:37;;;29337:18;;:::i;29368:435::-;29421:3;29459:5;29453:12;29486:6;29481:3;29474:19;29512:4;29541:2;29536:3;29532:12;29525:19;;29578:2;29571:5;29567:14;29599:1;29609:169;29623:6;29620:1;29617:13;29609:169;;;29684:13;;29672:26;;29718:12;;;;29753:15;;;;29645:1;29638:9;29609:169;;29808:2006;30056:4;30085:42;30166:2;30158:6;30154:15;30143:9;30136:34;30189:2;30227:3;30222:2;30211:9;30207:18;30200:31;30266:6;30260:13;30310:3;30304;30293:9;30289:19;30282:32;30337:60;30392:3;30381:9;30377:19;30363:12;30337:60;:::i;:::-;30323:74;;30452:2;30444:6;30440:15;30434:22;30428:3;30417:9;30413:19;30406:51;30476:4;30535:2;30527:6;30523:15;30517:22;30511:3;30500:9;30496:19;30489:51;30559:4;30612:2;30604:6;30600:15;30594:22;30681:66;30669:9;30661:6;30657:22;30653:95;30647:3;30636:9;30632:19;30625:124;30769:6;30804:14;30798:21;30843:6;30835;30828:22;30878:2;30870:6;30866:15;30859:22;;30937:2;30927:6;30924:1;30920:14;30912:6;30908:27;30904:36;30983:2;30967:14;30963:23;30949:37;;31004:1;31014:685;31028:6;31025:1;31022:13;31014:685;;;31114:66;31105:6;31097;31093:19;31089:92;31084:3;31077:105;31211:6;31205:13;31261:2;31256;31250:9;31246:18;31238:6;31231:34;31314:2;31310;31306:11;31300:18;31355:2;31350;31342:6;31338:15;31331:27;31385:61;31442:2;31434:6;31430:15;31414:14;31385:61;:::i;:::-;31487:11;;;31481:18;31536:19;;;31519:15;;;31512:44;31481:18;31371:75;-1:-1:-1;31579:40:227;31371:75;31481:18;31579:40;:::i;:::-;31642:15;;;;31677:12;;;;31569:50;-1:-1:-1;;;31050:1:227;31043:9;31014:685;;;-1:-1:-1;31738:18:227;;;31731:34;;;;-1:-1:-1;;31781:18:227;;;31774:34;;;;-1:-1:-1;31716:6:227;;29808:2006;-1:-1:-1;;;;;;29808:2006:227:o;31819:1089::-;32161:4;32190:3;32232:42;32224:6;32220:55;32209:9;32202:74;32312:2;32307;32296:9;32292:18;32285:30;32338:53;32387:2;32376:9;32372:18;32364:6;32338:53;:::i;:::-;32324:67;;32439:9;32431:6;32427:22;32422:2;32411:9;32407:18;32400:50;32467:41;32501:6;32493;32467:41;:::i;:::-;32459:49;;;32557:6;32544:20;32539:2;32528:9;32524:18;32517:48;32627:2;32619:6;32615:15;32602:29;32596:3;32585:9;32581:19;32574:58;32694:2;32686:6;32682:15;32669:29;32663:3;32652:9;32648:19;32641:58;32761:2;32753:6;32749:15;32736:29;32730:3;32719:9;32715:19;32708:58;32828:3;32820:6;32816:16;32803:30;32797:3;32786:9;32782:19;32775:59;32896:3;32888:6;32884:16;32871:30;32865:3;32854:9;32850:19;32843:59;31819:1089;;;;;;;:::o;33471:195::-;33510:3;33541:66;33534:5;33531:77;33528:103;;33611:18;;:::i;:::-;-1:-1:-1;33658:1:227;33647:13;;33471:195::o;34218:::-;34322:9;34359:48;34392:14;34385:5;34359:48;:::i;34418:593::-;34499:5;34506:6;34566:3;34553:17;34648:66;34637:8;34621:14;34617:29;34613:102;34593:18;34589:127;34579:155;;34730:1;34727;34720:12;34579:155;34758:33;;34862:4;34849:18;;;-1:-1:-1;34810:21:227;;-1:-1:-1;34890:18:227;34879:30;;34876:50;;;34922:1;34919;34912:12;34876:50;34981:4;34973:6;34969:17;34953:14;34949:38;34942:5;34938:50;34935:70;;;35001:1;34998;34991:12;35016:753;35127:6;35122:3;35115:19;35097:3;35153:4;35182:2;35177:3;35173:12;35166:19;;35208:5;35231:1;35241:503;35255:6;35252:1;35249:13;35241:503;;;35332:6;35319:20;35352:33;35377:7;35352:33;:::i;:::-;35423:42;35410:56;35398:69;;35540:4;35505:33;35522:15;;;35505:33;:::i;:::-;35501:44;35487:12;;;35480:66;35569:4;35620:15;;;35607:29;35593:12;;;35586:51;35660:4;35684:12;;;;35719:15;;;;35277:1;35270:9;35241:503;;35774:1791;35976:4;36005:42;36086:2;36078:6;36074:15;36063:9;36056:34;36126:2;36121;36110:9;36106:18;36099:30;36164:6;36151:20;36180:31;36205:5;36180:31;:::i;:::-;36247:14;;36242:2;36227:18;;36220:42;36311:2;36299:15;;36286:29;36324:30;36286:29;36324:30;:::i;:::-;36398:15;36391:23;36385:3;36370:19;;36363:52;36464:4;36452:17;;36439:31;36479:33;36439:31;36479:33;:::i;:::-;36549:16;;36543:3;36528:19;;36521:45;36615:2;36603:15;;36590:29;36628:33;36590:29;36628:33;:::i;:::-;36698:16;;36692:3;36677:19;;36670:45;36764:3;36752:16;;36739:30;36778:33;36739:30;36778:33;:::i;:::-;36849:16;36842:4;36827:20;;36820:46;36909:79;36983:3;36971:16;;36975:6;36909:79;:::i;:::-;37025:4;37019:3;37008:9;37004:19;36997:33;37053:97;37145:3;37134:9;37130:19;37116:12;37102;37053:97;:::i;:::-;37039:111;;;37197:79;37271:3;37263:6;37259:16;37251:6;37197:79;:::i;:::-;37341:66;37329:9;37321:6;37317:22;37313:95;37307:3;37296:9;37292:19;37285:124;37426:88;37507:6;37491:14;37475;37426:88;:::i;:::-;37418:96;;;;;37552:6;37545:4;37534:9;37530:20;37523:36;35774:1791;;;;;;:::o;38232:260::-;38413:2;38402:9;38395:21;38376:4;38433:53;38482:2;38471:9;38467:18;38459:6;38433:53;:::i;38497:217::-;38644:2;38633:9;38626:21;38607:4;38664:44;38704:2;38693:9;38689:18;38681:6;38664:44;:::i;38719:673::-;38782:3;38813;38845:5;38839:12;38872:6;38867:3;38860:19;38898:4;38927:2;38922:3;38918:12;38911:19;;38983:2;38973:6;38970:1;38966:14;38959:5;38955:26;38951:35;39020:2;39013:5;39009:14;39041:1;39051:315;39065:6;39062:1;39059:13;39051:315;;;39148:66;39140:5;39134:4;39130:16;39126:89;39121:3;39114:102;39237:49;39281:4;39272:6;39266:13;39237:49;:::i;:::-;39344:12;;;;39229:57;-1:-1:-1;39309:15:227;;;;39087:1;39080:9;39051:315;;39397:901;39911:42;39903:6;39899:55;39888:9;39881:74;39991:6;39986:2;39975:9;39971:18;39964:34;40034:6;40029:2;40018:9;40014:18;40007:34;40077:3;40072:2;40061:9;40057:18;40050:31;39862:4;40104:67;40166:3;40155:9;40151:19;40143:6;40104:67;:::i;:::-;40220:9;40212:6;40208:22;40202:3;40191:9;40187:19;40180:51;40248:44;40285:6;40277;40248:44;:::i;40303:661::-;40368:5;40421:3;40414:4;40406:6;40402:17;40398:27;40388:55;;40439:1;40436;40429:12;40388:55;40468:6;40462:13;40494:4;40518:62;40534:45;40576:2;40534:45;:::i;40518:62::-;40614:15;;;40700:1;40696:10;;;;40684:23;;40680:32;;;40645:12;;;;40724:15;;;40721:35;;;40752:1;40749;40742:12;40721:35;40788:2;40780:6;40776:15;40800:135;40816:6;40811:3;40808:15;40800:135;;;40882:10;;40870:23;;40913:12;;;;40833;;40800:135;;40969:614;41098:6;41106;41159:2;41147:9;41138:7;41134:23;41130:32;41127:52;;;41175:1;41172;41165:12;41127:52;41208:9;41202:16;41237:18;41278:2;41270:6;41267:14;41264:34;;;41294:1;41291;41284:12;41264:34;41317:72;41381:7;41372:6;41361:9;41357:22;41317:72;:::i;:::-;41307:82;;41435:2;41424:9;41420:18;41414:25;41398:41;;41464:2;41454:8;41451:16;41448:36;;;41480:1;41477;41470:12;41448:36;;41503:74;41569:7;41558:8;41547:9;41543:24;41503:74;:::i;:::-;41493:84;;;40969:614;;;;;:::o;41588:441::-;41857:42;41849:6;41845:55;41834:9;41827:74;41937:2;41932;41921:9;41917:18;41910:30;41808:4;41957:66;42019:2;42008:9;42004:18;41996:6;41957:66;:::i;42034:368::-;42277:6;42266:9;42259:25;42320:2;42315;42304:9;42300:18;42293:30;42240:4;42340:56;42392:2;42381:9;42377:18;42369:6;42340:56;:::i;42407:245::-;42474:6;42527:2;42515:9;42506:7;42502:23;42498:32;42495:52;;;42543:1;42540;42533:12;42495:52;42575:9;42569:16;42594:28;42616:5;42594:28;:::i;43068:184::-;43120:77;43117:1;43110:88;43217:4;43214:1;43207:15;43241:4;43238:1;43231:15;43257:168;43330:9;;;43361;;43378:15;;;43372:22;;43358:37;43348:71;;43399:18;;:::i;43430:482::-;43519:1;43562:5;43519:1;43576:330;43597:7;43587:8;43584:21;43576:330;;;43716:4;43648:66;43644:77;43638:4;43635:87;43632:113;;;43725:18;;:::i;:::-;43775:7;43765:8;43761:22;43758:55;;;43795:16;;;;43758:55;43874:22;;;;43834:15;;;;43576:330;;;43580:3;43430:482;;;;;:::o;43917:866::-;43966:5;43996:8;43986:80;;-1:-1:-1;44037:1:227;44051:5;;43986:80;44085:4;44075:76;;-1:-1:-1;44122:1:227;44136:5;;44075:76;44167:4;44185:1;44180:59;;;;44253:1;44248:130;;;;44160:218;;44180:59;44210:1;44201:10;;44224:5;;;44248:130;44285:3;44275:8;44272:17;44269:43;;;44292:18;;:::i;:::-;-1:-1:-1;;44348:1:227;44334:16;;44363:5;;44160:218;;44462:2;44452:8;44449:16;44443:3;44437:4;44434:13;44430:36;44424:2;44414:8;44411:16;44406:2;44400:4;44397:12;44393:35;44390:77;44387:159;;;-1:-1:-1;44499:19:227;;;44531:5;;44387:159;44578:34;44603:8;44597:4;44578:34;:::i;:::-;44708:6;44640:66;44636:79;44627:7;44624:92;44621:118;;;44719:18;;:::i;:::-;44757:20;;43917:866;-1:-1:-1;;;43917:866:227:o;44788:131::-;44848:5;44877:36;44904:8;44898:4;44877:36;:::i;44924:184::-;44976:77;44973:1;44966:88;45073:4;45070:1;45063:15;45097:4;45094:1;45087:15;45113:287;45242:3;45280:6;45274:13;45296:66;45355:6;45350:3;45343:4;45335:6;45331:17;45296:66;:::i;45405:288::-;45580:2;45569:9;45562:21;45543:4;45600:44;45640:2;45629:9;45625:18;45617:6;45600:44;:::i;:::-;45592:52;;45680:6;45675:2;45664:9;45660:18;45653:34;45405:288;;;;;:::o;46813:::-;46988:6;46977:9;46970:25;47031:2;47026;47015:9;47011:18;47004:30;46951:4;47051:44;47091:2;47080:9;47076:18;47068:6;47051:44;:::i", - "linkReferences": {} - }, - "methodIdentifiers": { - "addOrder(((address,uint8,uint256)[],(address,uint8,uint256)[],(address,bytes,uint256[]),bytes))": "847a1bc9", - "clear((address,bool,(address,address,address),(address,uint8,uint256)[],(address,uint8,uint256)[]),(address,bool,(address,address,address),(address,uint8,uint256)[],(address,uint8,uint256)[]),(uint256,uint256,uint256,uint256,uint256,uint256),(address,uint256[],bytes)[],(address,uint256[],bytes)[])": "9e18968b", - "deposit(address,uint256,uint256)": "0efe6a8b", - "flashFee(address,uint256)": "d9d98ce4", - "flashLoan(address,address,uint256,bytes)": "5cffe9de", - "maxFlashLoan(address)": "613255ab", - "multicall(bytes[])": "ac9650d8", - "orderExists(bytes32)": "2cb77e9f", - "removeOrder((address,bool,(address,address,address),(address,uint8,uint256)[],(address,uint8,uint256)[]))": "e23746a3", - "takeOrders((uint256,uint256,uint256,((address,bool,(address,address,address),(address,uint8,uint256)[],(address,uint8,uint256)[]),uint256,uint256,(address,uint256[],bytes)[])[],bytes))": "8a44689c", - "vaultBalance(address,address,uint256)": "d97b2e48", - "withdraw(address,uint256,uint256)": "b5c5f672" - }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"deployer\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"meta\",\"type\":\"bytes\"}],\"internalType\":\"struct DeployerDiscoverableMetaV3ConstructionConfig\",\"name\":\"config\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"result\",\"type\":\"bytes32\"}],\"name\":\"FlashLenderCallbackFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"i\",\"type\":\"uint256\"}],\"name\":\"InvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"minimumInput\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"input\",\"type\":\"uint256\"}],\"name\":\"MinimumInput\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoOrders\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"NotOrderOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"unmeta\",\"type\":\"bytes\"}],\"name\":\"NotRainMetaV1\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OrderNoHandleIO\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OrderNoInputs\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OrderNoOutputs\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OrderNoSources\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"SameOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"bytecode\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"sourceIndex\",\"type\":\"uint256\"}],\"name\":\"SourceIndexOutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"aliceTokenDecimals\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"bobTokenDecimals\",\"type\":\"uint8\"}],\"name\":\"TokenDecimalsMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"aliceToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"bobToken\",\"type\":\"address\"}],\"name\":\"TokenMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"expectedHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"actualHash\",\"type\":\"bytes32\"}],\"name\":\"UnexpectedMetaHash\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"inputs\",\"type\":\"uint256\"}],\"name\":\"UnsupportedCalculateInputs\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"outputs\",\"type\":\"uint256\"}],\"name\":\"UnsupportedCalculateOutputs\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"inputs\",\"type\":\"uint256\"}],\"name\":\"UnsupportedHandleInputs\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"vaultId\",\"type\":\"uint256\"}],\"name\":\"ZeroDepositAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroMaximumInput\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"vaultId\",\"type\":\"uint256\"}],\"name\":\"ZeroWithdrawTargetAmount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"contract IExpressionDeployerV3\",\"name\":\"expressionDeployer\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"handleIO\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"contract IInterpreterV2\",\"name\":\"interpreter\",\"type\":\"address\"},{\"internalType\":\"contract IInterpreterStoreV1\",\"name\":\"store\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"expression\",\"type\":\"address\"}],\"internalType\":\"struct EvaluableV2\",\"name\":\"evaluable\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"vaultId\",\"type\":\"uint256\"}],\"internalType\":\"struct IO[]\",\"name\":\"validInputs\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"vaultId\",\"type\":\"uint256\"}],\"internalType\":\"struct IO[]\",\"name\":\"validOutputs\",\"type\":\"tuple[]\"}],\"indexed\":false,\"internalType\":\"struct OrderV2\",\"name\":\"order\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"orderHash\",\"type\":\"bytes32\"}],\"name\":\"AddOrder\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"aliceOutput\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bobOutput\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"aliceInput\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bobInput\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"struct ClearStateChange\",\"name\":\"clearStateChange\",\"type\":\"tuple\"}],\"name\":\"AfterClear\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"handleIO\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"contract IInterpreterV2\",\"name\":\"interpreter\",\"type\":\"address\"},{\"internalType\":\"contract IInterpreterStoreV1\",\"name\":\"store\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"expression\",\"type\":\"address\"}],\"internalType\":\"struct EvaluableV2\",\"name\":\"evaluable\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"vaultId\",\"type\":\"uint256\"}],\"internalType\":\"struct IO[]\",\"name\":\"validInputs\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"vaultId\",\"type\":\"uint256\"}],\"internalType\":\"struct IO[]\",\"name\":\"validOutputs\",\"type\":\"tuple[]\"}],\"indexed\":false,\"internalType\":\"struct OrderV2\",\"name\":\"alice\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"handleIO\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"contract IInterpreterV2\",\"name\":\"interpreter\",\"type\":\"address\"},{\"internalType\":\"contract IInterpreterStoreV1\",\"name\":\"store\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"expression\",\"type\":\"address\"}],\"internalType\":\"struct EvaluableV2\",\"name\":\"evaluable\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"vaultId\",\"type\":\"uint256\"}],\"internalType\":\"struct IO[]\",\"name\":\"validInputs\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"vaultId\",\"type\":\"uint256\"}],\"internalType\":\"struct IO[]\",\"name\":\"validOutputs\",\"type\":\"tuple[]\"}],\"indexed\":false,\"internalType\":\"struct OrderV2\",\"name\":\"bob\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"aliceInputIOIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"aliceOutputIOIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bobInputIOIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bobOutputIOIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"aliceBountyVaultId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bobBountyVaultId\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"struct ClearConfig\",\"name\":\"clearConfig\",\"type\":\"tuple\"}],\"name\":\"Clear\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[][]\",\"name\":\"context\",\"type\":\"uint256[][]\"}],\"name\":\"Context\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"vaultId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"subject\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"meta\",\"type\":\"bytes\"}],\"name\":\"MetaV1\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"orderHash\",\"type\":\"bytes32\"}],\"name\":\"OrderExceedsMaxRatio\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"orderHash\",\"type\":\"bytes32\"}],\"name\":\"OrderNotFound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"orderHash\",\"type\":\"bytes32\"}],\"name\":\"OrderZeroAmount\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"handleIO\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"contract IInterpreterV2\",\"name\":\"interpreter\",\"type\":\"address\"},{\"internalType\":\"contract IInterpreterStoreV1\",\"name\":\"store\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"expression\",\"type\":\"address\"}],\"internalType\":\"struct EvaluableV2\",\"name\":\"evaluable\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"vaultId\",\"type\":\"uint256\"}],\"internalType\":\"struct IO[]\",\"name\":\"validInputs\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"vaultId\",\"type\":\"uint256\"}],\"internalType\":\"struct IO[]\",\"name\":\"validOutputs\",\"type\":\"tuple[]\"}],\"indexed\":false,\"internalType\":\"struct OrderV2\",\"name\":\"order\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"orderHash\",\"type\":\"bytes32\"}],\"name\":\"RemoveOrder\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"handleIO\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"contract IInterpreterV2\",\"name\":\"interpreter\",\"type\":\"address\"},{\"internalType\":\"contract IInterpreterStoreV1\",\"name\":\"store\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"expression\",\"type\":\"address\"}],\"internalType\":\"struct EvaluableV2\",\"name\":\"evaluable\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"vaultId\",\"type\":\"uint256\"}],\"internalType\":\"struct IO[]\",\"name\":\"validInputs\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"vaultId\",\"type\":\"uint256\"}],\"internalType\":\"struct IO[]\",\"name\":\"validOutputs\",\"type\":\"tuple[]\"}],\"internalType\":\"struct OrderV2\",\"name\":\"order\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"inputIOIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"outputIOIndex\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"context\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct SignedContextV1[]\",\"name\":\"signedContext\",\"type\":\"tuple[]\"}],\"indexed\":false,\"internalType\":\"struct TakeOrderConfigV2\",\"name\":\"config\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"input\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"output\",\"type\":\"uint256\"}],\"name\":\"TakeOrder\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"vaultId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"targetAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"vaultId\",\"type\":\"uint256\"}],\"internalType\":\"struct IO[]\",\"name\":\"validInputs\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"vaultId\",\"type\":\"uint256\"}],\"internalType\":\"struct IO[]\",\"name\":\"validOutputs\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"contract IExpressionDeployerV3\",\"name\":\"deployer\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"bytecode\",\"type\":\"bytes\"},{\"internalType\":\"uint256[]\",\"name\":\"constants\",\"type\":\"uint256[]\"}],\"internalType\":\"struct EvaluableConfigV3\",\"name\":\"evaluableConfig\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"meta\",\"type\":\"bytes\"}],\"internalType\":\"struct OrderConfigV2\",\"name\":\"config\",\"type\":\"tuple\"}],\"name\":\"addOrder\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"stateChanged\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"handleIO\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"contract IInterpreterV2\",\"name\":\"interpreter\",\"type\":\"address\"},{\"internalType\":\"contract IInterpreterStoreV1\",\"name\":\"store\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"expression\",\"type\":\"address\"}],\"internalType\":\"struct EvaluableV2\",\"name\":\"evaluable\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"vaultId\",\"type\":\"uint256\"}],\"internalType\":\"struct IO[]\",\"name\":\"validInputs\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"vaultId\",\"type\":\"uint256\"}],\"internalType\":\"struct IO[]\",\"name\":\"validOutputs\",\"type\":\"tuple[]\"}],\"internalType\":\"struct OrderV2\",\"name\":\"aliceOrder\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"handleIO\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"contract IInterpreterV2\",\"name\":\"interpreter\",\"type\":\"address\"},{\"internalType\":\"contract IInterpreterStoreV1\",\"name\":\"store\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"expression\",\"type\":\"address\"}],\"internalType\":\"struct EvaluableV2\",\"name\":\"evaluable\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"vaultId\",\"type\":\"uint256\"}],\"internalType\":\"struct IO[]\",\"name\":\"validInputs\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"vaultId\",\"type\":\"uint256\"}],\"internalType\":\"struct IO[]\",\"name\":\"validOutputs\",\"type\":\"tuple[]\"}],\"internalType\":\"struct OrderV2\",\"name\":\"bobOrder\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"aliceInputIOIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"aliceOutputIOIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bobInputIOIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bobOutputIOIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"aliceBountyVaultId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bobBountyVaultId\",\"type\":\"uint256\"}],\"internalType\":\"struct ClearConfig\",\"name\":\"clearConfig\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"context\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct SignedContextV1[]\",\"name\":\"aliceSignedContext\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"context\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct SignedContextV1[]\",\"name\":\"bobSignedContext\",\"type\":\"tuple[]\"}],\"name\":\"clear\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"vaultId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"flashFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC3156FlashBorrower\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"flashLoan\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"maxFlashLoan\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"data\",\"type\":\"bytes[]\"}],\"name\":\"multicall\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"results\",\"type\":\"bytes[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"orderHash\",\"type\":\"bytes32\"}],\"name\":\"orderExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"handleIO\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"contract IInterpreterV2\",\"name\":\"interpreter\",\"type\":\"address\"},{\"internalType\":\"contract IInterpreterStoreV1\",\"name\":\"store\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"expression\",\"type\":\"address\"}],\"internalType\":\"struct EvaluableV2\",\"name\":\"evaluable\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"vaultId\",\"type\":\"uint256\"}],\"internalType\":\"struct IO[]\",\"name\":\"validInputs\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"vaultId\",\"type\":\"uint256\"}],\"internalType\":\"struct IO[]\",\"name\":\"validOutputs\",\"type\":\"tuple[]\"}],\"internalType\":\"struct OrderV2\",\"name\":\"order\",\"type\":\"tuple\"}],\"name\":\"removeOrder\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"stateChanged\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"minimumInput\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maximumInput\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maximumIORatio\",\"type\":\"uint256\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"handleIO\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"contract IInterpreterV2\",\"name\":\"interpreter\",\"type\":\"address\"},{\"internalType\":\"contract IInterpreterStoreV1\",\"name\":\"store\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"expression\",\"type\":\"address\"}],\"internalType\":\"struct EvaluableV2\",\"name\":\"evaluable\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"vaultId\",\"type\":\"uint256\"}],\"internalType\":\"struct IO[]\",\"name\":\"validInputs\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"vaultId\",\"type\":\"uint256\"}],\"internalType\":\"struct IO[]\",\"name\":\"validOutputs\",\"type\":\"tuple[]\"}],\"internalType\":\"struct OrderV2\",\"name\":\"order\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"inputIOIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"outputIOIndex\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"context\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"internalType\":\"struct SignedContextV1[]\",\"name\":\"signedContext\",\"type\":\"tuple[]\"}],\"internalType\":\"struct TakeOrderConfigV2[]\",\"name\":\"orders\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct TakeOrdersConfigV2\",\"name\":\"config\",\"type\":\"tuple\"}],\"name\":\"takeOrders\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"totalTakerInput\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalTakerOutput\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"vaultId\",\"type\":\"uint256\"}],\"name\":\"vaultBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"vaultId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"targetAmount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"FlashLenderCallbackFailed(bytes32)\":[{\"params\":{\"result\":\"The value that was returned by `onFlashLoan`.\"}}],\"MinimumInput(uint256,uint256)\":[{\"params\":{\"input\":\"The input that was achieved.\",\"minimumInput\":\"The minimum input required.\"}}],\"NotOrderOwner(address,address)\":[{\"params\":{\"owner\":\"The owner of the order.\",\"sender\":\"`msg.sender` attempting to modify the order.\"}}],\"NotRainMetaV1(bytes)\":[{\"params\":{\"unmeta\":\"the bytes that are not meta.\"}}],\"SameOwner(address)\":[{\"params\":{\"owner\":\"The owner of both orders.\"}}],\"SourceIndexOutOfBounds(bytes,uint256)\":[{\"params\":{\"bytecode\":\"The bytecode that was inspected.\",\"sourceIndex\":\"The source index that was out of bounds.\"}}],\"TokenDecimalsMismatch(uint8,uint8)\":[{\"params\":{\"aliceTokenDecimals\":\"The input or output decimals of one order.\",\"bobTokenDecimals\":\"The input or output decimals of the other order.\"}}],\"TokenMismatch(address,address)\":[{\"params\":{\"aliceToken\":\"The input or output of one order.\",\"bobToken\":\"The input or output of the other order that doesn't match a.\"}}],\"UnexpectedMetaHash(bytes32,bytes32)\":[{\"params\":{\"actualHash\":\"The hash of the metadata seen by the `IMetaV1` contract.\",\"expectedHash\":\"The hash expected by the `IMetaV1` contract.\"}}],\"UnsupportedCalculateInputs(uint256)\":[{\"params\":{\"inputs\":\"The inputs the expression wants.\"}}],\"UnsupportedCalculateOutputs(uint256)\":[{\"params\":{\"outputs\":\"The outputs the expression offers.\"}}],\"UnsupportedHandleInputs(uint256)\":[{\"params\":{\"inputs\":\"The inputs the expression wants.\"}}],\"ZeroDepositAmount(address,address,uint256)\":[{\"params\":{\"sender\":\"`msg.sender` depositing tokens.\",\"token\":\"The token being deposited.\",\"vaultId\":\"The vault ID the tokens are being deposited under.\"}}],\"ZeroWithdrawTargetAmount(address,address,uint256)\":[{\"params\":{\"sender\":\"`msg.sender` withdrawing tokens.\",\"token\":\"The token being withdrawn.\",\"vaultId\":\"The vault ID the tokens are being withdrawn from.\"}}]},\"events\":{\"AddOrder(address,address,(address,bool,(address,address,address),(address,uint8,uint256)[],(address,uint8,uint256)[]),bytes32)\":{\"params\":{\"expressionDeployer\":\"The expression deployer that ran the integrity check for this order. This is NOT included in the `Order` itself but is important for offchain processes to ignore untrusted deployers before interacting with them.\",\"order\":\"The newly added order. MUST be handed back as-is when clearing orders and contains derived information in addition to the order config that was provided by the order owner.\",\"orderHash\":\"The hash of the order as it is recorded onchain. Only the hash is stored in Orderbook storage to avoid paying gas to store the entire order.\",\"sender\":\"`msg.sender` adding the order and is owner of the order.\"}},\"AfterClear(address,(uint256,uint256,uint256,uint256))\":{\"params\":{\"clearStateChange\":\"The final vault state changes from the clearance.\",\"sender\":\"`msg.sender` clearing the order.\"}},\"Clear(address,(address,bool,(address,address,address),(address,uint8,uint256)[],(address,uint8,uint256)[]),(address,bool,(address,address,address),(address,uint8,uint256)[],(address,uint8,uint256)[]),(uint256,uint256,uint256,uint256,uint256,uint256))\":{\"params\":{\"alice\":\"One of the orders.\",\"bob\":\"The other order.\",\"clearConfig\":\"Additional config required to process the clearance.\",\"sender\":\"`msg.sender` clearing both orders.\"}},\"Context(address,uint256[][])\":{\"params\":{\"context\":\"The context that was built.\",\"sender\":\"`msg.sender` building the context.\"}},\"Deposit(address,address,uint256,uint256)\":{\"params\":{\"amount\":\"The amount of tokens deposited.\",\"sender\":\"`msg.sender` depositing tokens. Delegated deposits are NOT supported.\",\"token\":\"The token being deposited.\",\"vaultId\":\"The vault ID the tokens are being deposited under.\"}},\"MetaV1(address,uint256,bytes)\":{\"params\":{\"meta\":\"Rain metadata V1 compliant metadata bytes. https://github.com/rainprotocol/specs/blob/main/metadata-v1.md\",\"sender\":\"The msg.sender.\",\"subject\":\"The entity that the metadata is about. MAY be the address of the emitting contract (as `uint256`) OR anything else. The interpretation of the subject is context specific, so will often be a hash of some data/thing that this metadata is about.\"}},\"OrderExceedsMaxRatio(address,address,bytes32)\":{\"params\":{\"orderHash\":\"Hash of the order that had an excess ratio.\",\"owner\":\"Owner of the order that had an excess ratio.\",\"sender\":\"`msg.sender` clearing the order that had an excess ratio.\"}},\"OrderNotFound(address,address,bytes32)\":{\"params\":{\"orderHash\":\"Hash of the order that was not found.\",\"owner\":\"Owner of the order that was not found.\",\"sender\":\"`msg.sender` clearing the order that wasn't found.\"}},\"OrderZeroAmount(address,address,bytes32)\":{\"params\":{\"orderHash\":\"Hash of the order that evaluated to a 0 amount.\",\"owner\":\"Owner of the order that evaluated to a 0 amount.\",\"sender\":\"`msg.sender` clearing the order that had a 0 amount.\"}},\"RemoveOrder(address,(address,bool,(address,address,address),(address,uint8,uint256)[],(address,uint8,uint256)[]),bytes32)\":{\"params\":{\"order\":\"The removed order.\",\"orderHash\":\"The hash of the removed order.\",\"sender\":\"`msg.sender` removing the order and is owner of the order.\"}},\"TakeOrder(address,((address,bool,(address,address,address),(address,uint8,uint256)[],(address,uint8,uint256)[]),uint256,uint256,(address,uint256[],bytes)[]),uint256,uint256)\":{\"params\":{\"config\":\"All config defining the orders to attempt to take.\",\"input\":\"The input amount from the perspective of sender.\",\"output\":\"The output amount from the perspective of sender.\",\"sender\":\"`msg.sender` taking the orders.\"}},\"Withdraw(address,address,uint256,uint256,uint256)\":{\"params\":{\"amount\":\"The amount of tokens withdrawn, can be less than the target amount if the vault does not have the funds available to cover the target amount. For example an active order might move tokens before the withdraw completes.\",\"sender\":\"`msg.sender` withdrawing tokens. Delegated withdrawals are NOT supported.\",\"targetAmount\":\"The amount of tokens requested to withdraw.\",\"token\":\"The token being withdrawn.\",\"vaultId\":\"The vault ID the tokens are being withdrawn from.\"}}},\"kind\":\"dev\",\"methods\":{\"addOrder(((address,uint8,uint256)[],(address,uint8,uint256)[],(address,bytes,uint256[]),bytes))\":{\"params\":{\"config\":\"All config required to build an `Order`.\"},\"returns\":{\"stateChanged\":\"True if the order was added, false if it already existed.\"}},\"clear((address,bool,(address,address,address),(address,uint8,uint256)[],(address,uint8,uint256)[]),(address,bool,(address,address,address),(address,uint8,uint256)[],(address,uint8,uint256)[]),(uint256,uint256,uint256,uint256,uint256,uint256),(address,uint256[],bytes)[],(address,uint256[],bytes)[])\":{\"params\":{\"alice\":\"Some order to clear.\",\"aliceSignedContext\":\"Optional signed context that is relevant to A.\",\"bob\":\"Another order to clear.\",\"bobSignedContext\":\"Optional signed context that is relevant to B.\",\"clearConfig\":\"Additional configuration for the clearance such as how to handle the bounty payment for the `msg.sender`.\"}},\"deposit(address,uint256,uint256)\":{\"params\":{\"amount\":\"The amount of tokens to deposit.\",\"token\":\"The token to deposit.\",\"vaultId\":\"The vault ID to deposit under.\"}},\"flashFee(address,uint256)\":{\"details\":\"The fee to be charged for a given loan.\",\"params\":{\"amount\":\"The amount of tokens lent.\",\"token\":\"The loan currency.\"},\"returns\":{\"_0\":\"The amount of `token` to be charged for the loan, on top of the returned principal.\"}},\"flashLoan(address,address,uint256,bytes)\":{\"details\":\"Initiate a flash loan.\",\"params\":{\"amount\":\"The amount of tokens lent.\",\"data\":\"Arbitrary data structure, intended to contain user-defined parameters.\",\"receiver\":\"The receiver of the tokens in the loan, and the receiver of the callback.\",\"token\":\"The loan currency.\"}},\"maxFlashLoan(address)\":{\"details\":\"The amount of currency available to be lent.\",\"params\":{\"token\":\"The loan currency.\"},\"returns\":{\"_0\":\"The amount of `token` that can be borrowed.\"}},\"multicall(bytes[])\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Receives and executes a batch of function calls on this contract.\"},\"orderExists(bytes32)\":{\"params\":{\"orderHash\":\"The hash of the order to check.\"},\"returns\":{\"_0\":\"True if the order exists, false otherwise.\"}},\"removeOrder((address,bool,(address,address,address),(address,uint8,uint256)[],(address,uint8,uint256)[]))\":{\"params\":{\"order\":\"The `Order` data exactly as it was added.\"},\"returns\":{\"stateChanged\":\"True if the order was removed, false if it did not exist.\"}},\"takeOrders((uint256,uint256,uint256,((address,bool,(address,address,address),(address,uint8,uint256)[],(address,uint8,uint256)[]),uint256,uint256,(address,uint256[],bytes)[])[],bytes))\":{\"params\":{\"config\":\"The constraints and list of orders to take, orders are processed sequentially in order as provided, there is NO ATTEMPT onchain to predict/filter/sort these orders other than evaluating them as provided. Inputs and outputs are from the perspective of `msg.sender` except for values specified by the orders themselves which are the from the perspective of that order.\"},\"returns\":{\"totalTakerInput\":\"Total tokens sent to `msg.sender`, taken from order vaults processed.\",\"totalTakerOutput\":\"Total tokens taken from `msg.sender` and distributed between vaults.\"}},\"vaultBalance(address,address,uint256)\":{\"params\":{\"id\":\"The vault ID to read.\",\"owner\":\"The owner of the vault.\",\"token\":\"The token the vault is for.\"},\"returns\":{\"_0\":\"The current balance of the vault.\"}},\"withdraw(address,uint256,uint256)\":{\"params\":{\"targetAmount\":\"The amount of tokens to attempt to withdraw. MAY result in fewer tokens withdrawn if the vault balance is lower than the target amount. MAY NOT be zero, the order book MUST revert with `ZeroWithdrawTargetAmount` if the amount is zero.\",\"token\":\"The token to withdraw.\",\"vaultId\":\"The vault ID to withdraw from.\"}}},\"stateVariables\":{\"sVaultBalances\":{\"details\":\"Vault balances are stored in a mapping of owner => token => vault ID This gives 1:1 parity with the `IOrderBookV1` interface but keeping the `sFoo` naming convention for storage variables.\"}},\"title\":\"OrderBook See `IOrderBookV1` for more documentation.\",\"version\":1},\"userdoc\":{\"errors\":{\"FlashLenderCallbackFailed(bytes32)\":[{\"notice\":\"Thrown when the `onFlashLoan` callback returns anything other than ON_FLASH_LOAN_CALLBACK_SUCCESS.\"}],\"InvalidSignature(uint256)\":[{\"notice\":\"Thrown when the ith signature from a list of signed contexts is invalid.\"}],\"MinimumInput(uint256,uint256)\":[{\"notice\":\"Thrown when the minimum input is not met.\"}],\"NoOrders()\":[{\"notice\":\"Thrown when take orders is called with no orders.\"}],\"NotOrderOwner(address,address)\":[{\"notice\":\"Thrown when the `msg.sender` modifying an order is not its owner.\"}],\"NotRainMetaV1(bytes)\":[{\"notice\":\"Thrown when some bytes are expected to be rain meta and are not.\"}],\"OrderNoHandleIO()\":[{\"notice\":\"MUST be thrown by `addOrder` if the order has no associated handle IO.\"}],\"OrderNoInputs()\":[{\"notice\":\"MUST be thrown by `addOrder` if the order has no inputs.\"}],\"OrderNoOutputs()\":[{\"notice\":\"MUST be thrown by `addOrder` if the order has no outputs.\"}],\"OrderNoSources()\":[{\"notice\":\"MUST be thrown by `addOrder` if the order has no associated calculation.\"}],\"SameOwner(address)\":[{\"notice\":\"Thrown when two orders have the same owner during clear.\"}],\"SourceIndexOutOfBounds(bytes,uint256)\":[{\"notice\":\"Thrown when a bytecode source index is out of bounds.\"}],\"TokenDecimalsMismatch(uint8,uint8)\":[{\"notice\":\"Thrown when the input and output token decimals don't match, in either direction.\"}],\"TokenMismatch(address,address)\":[{\"notice\":\"Thrown when the input and output tokens don't match, in either direction.\"}],\"UnexpectedMetaHash(bytes32,bytes32)\":[{\"notice\":\"Thrown when hashed metadata does NOT match the expected hash.\"}],\"UnsupportedCalculateInputs(uint256)\":[{\"notice\":\"Thrown when calculate order expression wants inputs.\"}],\"UnsupportedCalculateOutputs(uint256)\":[{\"notice\":\"Thrown when calculate order expression offers too few outputs.\"}],\"UnsupportedHandleInputs(uint256)\":[{\"notice\":\"Thrown when handle IO expression wants inputs.\"}],\"ZeroDepositAmount(address,address,uint256)\":[{\"notice\":\"MUST be thrown by `deposit` if the amount is zero.\"}],\"ZeroMaximumInput()\":[{\"notice\":\"Thrown when take orders is called with a zero maximum input.\"}],\"ZeroWithdrawTargetAmount(address,address,uint256)\":[{\"notice\":\"MUST be thrown by `withdraw` if the amount _requested_ to withdraw is zero. The withdrawal MAY still not move any tokens if the vault balance is zero, or the withdrawal is used to repay a flash loan.\"}]},\"events\":{\"AddOrder(address,address,(address,bool,(address,address,address),(address,uint8,uint256)[],(address,uint8,uint256)[]),bytes32)\":{\"notice\":\"An order has been added to the orderbook. The order is permanently and always active according to its expression until/unless it is removed.\"},\"AfterClear(address,(uint256,uint256,uint256,uint256))\":{\"notice\":\"Emitted after two orders clear. Includes all final state changes in the vault balances, including the clearer's vaults.\"},\"Clear(address,(address,bool,(address,address,address),(address,uint8,uint256)[],(address,uint8,uint256)[]),(address,bool,(address,address,address),(address,uint8,uint256)[],(address,uint8,uint256)[]),(uint256,uint256,uint256,uint256,uint256,uint256))\":{\"notice\":\"Emitted before two orders clear. Covers both orders and includes all the state before anything is calculated.\"},\"Context(address,uint256[][])\":{\"notice\":\"Calling contracts SHOULD emit `Context` before calling `eval` if they are able. Notably `eval` MAY be called within a static call which means that events cannot be emitted, in which case this does not apply. It MAY NOT be useful to emit this multiple times for several eval calls if they all share a common context, in which case a single emit is sufficient.\"},\"Deposit(address,address,uint256,uint256)\":{\"notice\":\"Some tokens have been deposited to a vault.\"},\"MetaV1(address,uint256,bytes)\":{\"notice\":\"An onchain wrapper to carry arbitrary Rain metadata. Assigns the sender to the metadata so that tooling can easily drop/ignore data from unknown sources. As metadata is about something, the subject MUST be provided.\"},\"OrderExceedsMaxRatio(address,address,bytes32)\":{\"notice\":\"Emitted when an order evaluates to a ratio exceeding the counterparty's maximum limit. An error rather than an error so that we allow attempting many orders in a loop and NOT rollback on a \\\"best effort\\\" basis to clear.\"},\"OrderNotFound(address,address,bytes32)\":{\"notice\":\"Emitted when attempting to match an order that either never existed or was removed. An event rather than an error so that we allow attempting many orders in a loop and NOT rollback on \\\"best effort\\\" basis to clear.\"},\"OrderZeroAmount(address,address,bytes32)\":{\"notice\":\"Emitted when an order evaluates to a zero amount. An event rather than an error so that we allow attempting many orders in a loop and NOT rollback on a \\\"best effort\\\" basis to clear.\"},\"RemoveOrder(address,(address,bool,(address,address,address),(address,uint8,uint256)[],(address,uint8,uint256)[]),bytes32)\":{\"notice\":\"An order has been removed from the orderbook. This effectively deactivates it. Orders can be added again after removal.\"},\"TakeOrder(address,((address,bool,(address,address,address),(address,uint8,uint256)[],(address,uint8,uint256)[]),uint256,uint256,(address,uint256[],bytes)[]),uint256,uint256)\":{\"notice\":\"Some order has been taken by `msg.sender`. This is the same as them placing inverse orders then immediately clearing them all, but costs less gas and is more convenient and reliable. Analogous to a market buy against the specified orders. Each order that is matched within a the `takeOrders` loop emits its own individual event.\"},\"Withdraw(address,address,uint256,uint256,uint256)\":{\"notice\":\"Some tokens have been withdrawn from a vault.\"}},\"kind\":\"user\",\"methods\":{\"addOrder(((address,uint8,uint256)[],(address,uint8,uint256)[],(address,bytes,uint256[]),bytes))\":{\"notice\":\"Given an order config, deploys the expression and builds the full `Order` for the config, then records it as an active order. Delegated adding an order is NOT supported. The `msg.sender` that adds an order is ALWAYS the owner and all resulting vault movements are their own. MUST revert with `OrderNoSources` if the order has no associated calculation and `OrderNoHandleIO` if the order has no handle IO entrypoint. The calculation MUST return at least two values from evaluation, the maximum amount and the IO ratio. The handle IO entrypoint SHOULD return zero values from evaluation. Either MAY revert during evaluation on the interpreter, which MUST prevent the order from clearing. MUST revert with `OrderNoInputs` if the order has no inputs. MUST revert with `OrderNoOutputs` if the order has no outputs. If the order already exists, the order book MUST NOT change state, which includes not emitting an event. Instead it MUST return false. If the order book modifies state it MUST emit an `AddOrder` event and return true.\"},\"clear((address,bool,(address,address,address),(address,uint8,uint256)[],(address,uint8,uint256)[]),(address,bool,(address,address,address),(address,uint8,uint256)[],(address,uint8,uint256)[]),(uint256,uint256,uint256,uint256,uint256,uint256),(address,uint256[],bytes)[],(address,uint256[],bytes)[])\":{\"notice\":\"Allows `msg.sender` to match two live orders placed earlier by non-interactive parties and claim a bounty in the process. The clearer is free to select any two live orders on the order book for matching and as long as they have compatible tokens, ratios and amounts, the orders will clear. Clearing the orders DOES NOT remove them from the orderbook, they remain live until explicitly removed by their owner. Even if the input vault balances are completely emptied, the orders remain live until removed. This allows order owners to deploy a strategy over a long period of time and periodically top up the input vaults. Clearing two orders from the same owner is disallowed. Any mismatch in the ratios between the two orders will cause either more inputs than there are available outputs (transaction will revert) or less inputs than there are available outputs. In the latter case the excess outputs are given to the `msg.sender` of clear, to the vaults they specify in the clear config. This not only incentivises \\\"automatic\\\" clear calls for both alice and bob, but incentivises _prioritising greater ratio differences_ with a larger bounty. The second point is important because it implicitly prioritises orders that are further from the current market price, thus putting constant increasing pressure on the entire system the further it drifts from the norm, no matter how esoteric the individual order expressions and sizings might be. All else equal there are several factors that would impact how reliably some order clears relative to the wider market, such as: - Bounties are effectively percentages of cleared amounts so larger orders have larger bounties and cover gas costs more easily - High gas on the network means that orders are harder to clear profitably so the negative spread of the ratios will need to be larger - Complex and stateful expressions cost more gas to evalulate so the negative spread will need to be larger - Erratic behavior of the order owner could reduce the willingness of third parties to interact if it could result in wasted gas due to orders suddently being removed before clearance etc. - Dynamic and highly volatile words used in the expression could be ignored or low priority by clearers who want to be sure that they can accurately predict the ratios that they include in their clearance - Geopolitical issues such as sanctions and regulatory restrictions could cause issues for certain owners and clearers\"},\"constructor\":{\"notice\":\"Initializes the orderbook upon construction for compatibility with Open Zeppelin upgradeable contracts. Orderbook itself does NOT support factory deployments as each order is a unique expression deployment rather than needing to wrap up expressions with proxies.\"},\"deposit(address,uint256,uint256)\":{\"notice\":\"Vault IDs are namespaced by the token address so there is no risk of collision between tokens. For example, vault ID 0 for token A is completely different to vault ID 0 for token B. `0` amount deposits are unsupported as underlying token contracts handle `0` value transfers differently and this would be a source of confusion. The order book MUST revert with `ZeroDepositAmount` if the amount is zero.\"},\"maxFlashLoan(address)\":{\"notice\":\"There's no limit to the size of a flash loan from `Orderbook` other than the current tokens deposited in `Orderbook`. If there is an active debt then loans are disabled so the max becomes `0` until after repayment.\"},\"orderExists(bytes32)\":{\"notice\":\"Returns true if the order exists, false otherwise.\"},\"removeOrder((address,bool,(address,address,address),(address,uint8,uint256)[],(address,uint8,uint256)[]))\":{\"notice\":\"Order owner can remove their own orders. Delegated order removal is NOT supported and will revert. Removing an order multiple times or removing an order that never existed are valid, the event will be emitted and the transaction will complete with that order hash definitely, redundantly not live.\"},\"takeOrders((uint256,uint256,uint256,((address,bool,(address,address,address),(address,uint8,uint256)[],(address,uint8,uint256)[]),uint256,uint256,(address,uint256[],bytes)[])[],bytes))\":{\"notice\":\"Allows `msg.sender` to attempt to fill a list of orders in sequence without needing to place their own order and clear them. This works like a market buy but against a specific set of orders. Every order will looped over and calculated individually then filled maximally until the request input is reached for the `msg.sender`. The `msg.sender` is responsible for selecting the best orders at the time according to their criteria and MAY specify a maximum IO ratio to guard against an order spiking the ratio beyond what the `msg.sender` expected and is comfortable with. As orders may be removed and calculate their ratios dynamically, all issues fulfilling an order other than misconfiguration by the `msg.sender` are no-ops and DO NOT revert the transaction. This allows the `msg.sender` to optimistically provide a list of orders that they aren't sure will completely fill at a good price, and fallback to more reliable orders further down their list. Misconfiguration such as token mismatches are errors that revert as this is known and static at all times to the `msg.sender` so MUST be provided correctly. `msg.sender` MAY specify a minimum input that MUST be reached across all orders in the list, otherwise the transaction will revert, this MAY be set to zero. Exactly like withdraw, if there is an active flash loan for `msg.sender` they will have their outstanding loan reduced by the final input amount preferentially before sending any tokens. Notably this allows arb bots implemented as flash loan borrowers to connect orders against external liquidity directly by paying back the loan with a `takeOrders` call and outputting the result of the external trade. Rounding errors always favour the order never the `msg.sender`.\"},\"vaultBalance(address,address,uint256)\":{\"notice\":\"Get the current balance of a vault for a given owner, token and vault ID.\"},\"withdraw(address,uint256,uint256)\":{\"notice\":\"Allows the sender to withdraw any tokens from their own vaults. If the withrawer has an active flash loan debt denominated in the same token being withdrawn then Orderbook will merely reduce the debt and NOT send the amount of tokens repaid to the flashloan debt. MUST revert if the amount _requested_ to withdraw is zero. The withdrawal MAY still not move any tokens (without revert) if the vault balance is zero, or the withdrawal is used to repay a flash loan, or due to any other internal accounting.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/concrete/OrderBook.sol\":\"OrderBook\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":1000000},\"remappings\":[\":@prb/test/=lib/rain.interpreter/lib/prb-math/lib/prb-test/src/\",\":axelar-gmp-sdk-solidity/=lib/sushixswap-v2/lib/axelar-gmp-sdk-solidity/\",\":bitwise/=lib/rain.interpreter/src/lib/bitwise/\",\":bytecode/=lib/rain.interpreter/src/lib/bytecode/\",\":caller/=lib/rain.interpreter/src/lib/caller/\",\":compile/=lib/rain.interpreter/src/lib/compile/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":eval/=lib/rain.interpreter/src/lib/eval/\",\":extern/=lib/rain.interpreter/src/lib/extern/\",\":forge-gas-snapshot/=lib/sushixswap-v2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":integrity/=lib/rain.interpreter/src/lib/integrity/\",\":ns/=lib/rain.interpreter/src/lib/ns/\",\":op/=lib/rain.interpreter/src/lib/op/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":parse/=lib/rain.interpreter/src/lib/parse/\",\":prb-math/=lib/rain.interpreter/lib/prb-math/src/\",\":prb-test/=lib/rain.interpreter/lib/prb-math/lib/prb-test/src/\",\":rain.chainlink/=lib/rain.interpreter/lib/rain.chainlink/src/\",\":rain.datacontract/=lib/rain.interpreter/lib/rain.datacontract/src/\",\":rain.erc1820/=lib/rain.erc1820/src/\",\":rain.extrospection/=lib/rain.factory/lib/rain.extrospection/\",\":rain.factory/=lib/rain.factory/\",\":rain.interpreter/=lib/rain.interpreter/\",\":rain.lib.hash/=lib/rain.lib.memkv/lib/rain.lib.hash/src/\",\":rain.lib.memkv/=lib/rain.lib.memkv/src/\",\":rain.lib.typecast/=lib/rain.interpreter/lib/rain.lib.typecast/src/\",\":rain.math.fixedpoint/=lib/rain.math.fixedpoint/src/\",\":rain.math.saturating/=lib/rain.math.fixedpoint/lib/rain.math.saturating/src/\",\":rain.metadata/=lib/rain.metadata/src/\",\":rain.solmem/=lib/rain.solmem/src/\",\":sol.lib.binmaskflag/=lib/rain.interpreter/lib/sol.lib.binmaskflag/src/\",\":state/=lib/rain.interpreter/src/lib/state/\",\":sushixswap-v2/=lib/sushixswap-v2/\",\":uniswap/=lib/rain.interpreter/src/lib/uniswap/\",\":v2-core/=lib/rain.interpreter/lib/v2-core/contracts/\",\":v2-periphery/=lib/rain.interpreter/lib/v2-periphery/contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol\":{\"keccak256\":\"0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c45b821ef9e882e57c256697a152e108f0f2ad6997609af8904cae99c9bd422e\",\"dweb:/ipfs/QmRKCJW6jjzR5UYZcLpGnhEJ75UVbH6EHkEa49sWx2SKng\"]},\"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34\",\"dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xec63854014a5b4f2b3290ab9103a21bdf902a508d0f41a8573fea49e98bf571a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc5b5dc12fbc4002f282eaa7a5f06d8310ed62c1c77c5770f6283e058454c39a\",\"dweb:/ipfs/Qme9rE2wS3yBuyJq9GgbmzbsBQsW2M2sVFqYYLw7bosGrv\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68\",\"dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"lib/openzeppelin-contracts/contracts/utils/Multicall.sol\":{\"keccak256\":\"0xface9a29da6448061decb3506735c0c37aae8820ffaacfea982b1a8633be20d4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b5e6f84ed95d9b7f8d6fd8b1019c0aa2114d417dd7a57728d05f6fabf30b8d0\",\"dweb:/ipfs/Qmbbgsakxi9caqBtYpAa8UKQCXvNmKnyRNyp8YAVpa91gM\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x809bc3edb4bcbef8263fa616c1b60ee0004b50a8a1bfa164d8f57fd31f520c58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b93a1e39a4a19eba1600b92c96f435442db88cac91e315c8291547a2a7bcfe2\",\"dweb:/ipfs/QmTm34KVe6uZBZwq8dZDNWwPcm24qBJdxqL3rPxBJ4LrMv\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol\":{\"keccak256\":\"0x3af3ca86df39aac39a0514c84459d691434a108d2151c8ce9d69f32e315cab80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77d1f1cf302cd5e1dfbbb4ce3b281b28e8c52942d4319fce43df2e1b6f02a52d\",\"dweb:/ipfs/QmT6ZXStmK3Knhh9BokeVHQ9HXTBZNgL3Eb1ar1cYg1hWy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]},\"lib/rain.interpreter/src/abstract/DeployerDiscoverableMetaV3.sol\":{\"keccak256\":\"0xe333361bf503def41107d2e38acb421f11766e636ffe0728fef933097c66857b\",\"license\":\"CAL\",\"urls\":[\"bzz-raw://43b69e65c41a2cb13304d8d8b7fe31ee8d1cb55708b6cf60b799552bb09b4c1b\",\"dweb:/ipfs/QmXy4CDRjBVMezbH72uTkYJNrt6yQLVnjNkheD5773MKrn\"]},\"lib/rain.interpreter/src/interface/IInterpreterCallerV2.sol\":{\"keccak256\":\"0xd6f76317b41d50fb6b3fbfcffa5fa8b4a3bb547a17bf52244f67f5c364fcd6bc\",\"license\":\"CAL\",\"urls\":[\"bzz-raw://e7a35981e397564e85c53fab7b46bf8118328cfdb729264f946f7826c205f813\",\"dweb:/ipfs/QmfXnGW5RTDgqoMkp3k4E3eWBBS7hXWzmhw56XcfvB766E\"]},\"lib/rain.interpreter/src/interface/IInterpreterStoreV1.sol\":{\"keccak256\":\"0x8fe347844f029b84087daae66742fb10aa9e44f94ac90af696318188aa922c19\",\"license\":\"CAL\",\"urls\":[\"bzz-raw://5eea5d2116f643db3ede89fd2dc3a5d293e35aec1d62a9daf6531f88a9656fb3\",\"dweb:/ipfs/Qmdys5MsEjgpXokb5FhMg96SYB6Bmf3frtVRvX74WrbKTc\"]},\"lib/rain.interpreter/src/interface/deprecated/IExpressionDeployerV1.sol\":{\"keccak256\":\"0x5e903fdb445cc16e63bb86d53eeb49172e2472cd7344a762c6d85684aec8251d\",\"license\":\"CAL\",\"urls\":[\"bzz-raw://5dab81bd2f092f392afbb295525c3602246ab5620de7630e84dab37b955f7e4d\",\"dweb:/ipfs/QmaGiCBSf2KjwjpVtJwG4k6iGqPKYs8dq6gkUYo9EFWkTg\"]},\"lib/rain.interpreter/src/interface/deprecated/IExpressionDeployerV2.sol\":{\"keccak256\":\"0xc98ea86cd5d633d01b4136258bc0026b3d4bade652f831b482867e97df0e5365\",\"license\":\"CAL\",\"urls\":[\"bzz-raw://d412df06ddccb1be19f6e962872297395546c591ccd42ccad91559aa0e5ee214\",\"dweb:/ipfs/QmebpvwxNtv9XNoKi9y8Ldqhzy3GWY5kwoSNDQL2vJHrbg\"]},\"lib/rain.interpreter/src/interface/deprecated/IInterpreterCallerV1.sol\":{\"keccak256\":\"0xdfccb8ca0e4673ac476d1ccfcd1ffa69300f910c41352cc51c3408a58bf095b2\",\"license\":\"CAL\",\"urls\":[\"bzz-raw://9a44b64873ed13c9c7d964e1d3b66dc2e80bb457563def325551bf796db8791c\",\"dweb:/ipfs/QmWTfH9qtwki5DFRAri1ouV7NVZ1mQzraz9eRumNEbcSNU\"]},\"lib/rain.interpreter/src/interface/deprecated/IInterpreterV1.sol\":{\"keccak256\":\"0xb58d3b75312da70f4fb7896dc07d8a3d77de0638d169db4acf6c246ddab0f518\",\"license\":\"CAL\",\"urls\":[\"bzz-raw://970029663ca4321640ca0d577213e938046a3fe2995b580f9f7c8f0bfa34a3f3\",\"dweb:/ipfs/QmeZgH1RKqLgDh56FWQATBy8BCt6CyGiCuamrKY22QyCRz\"]},\"lib/rain.interpreter/src/interface/unstable/IExpressionDeployerV3.sol\":{\"keccak256\":\"0x408f6c6fa3766cf7d24ffe1c98eb57b77af5bfbe946f266fd7a3b800de4ddb79\",\"license\":\"CAL\",\"urls\":[\"bzz-raw://186b12c32030d2b7e4e81f1a11ac7c7a63b0f14b7dc1b6df50cbd2be7459bb69\",\"dweb:/ipfs/QmXRV3DGCoQtVxufMtiuXLvN3GF6YNTLyPLVVeoLL53sMg\"]},\"lib/rain.interpreter/src/interface/unstable/IInterpreterV2.sol\":{\"keccak256\":\"0xcf050192ba12f7eb129e0262cee4920cbd65bb331e7487cfc21151882464be50\",\"license\":\"CAL\",\"urls\":[\"bzz-raw://10ff84f0acf532c5e11e69b7ab41c739ce4ad0f9193d347b5cc4a34f158774a8\",\"dweb:/ipfs/QmRvfB8jCdCwDdLrLHQh8yLLLv2eowpwjfwXgy2u629xew\"]},\"lib/rain.interpreter/src/lib/bytecode/LibBytecode.sol\":{\"keccak256\":\"0xac53e84486e843acbabd6ba258550ba947c35c33a570e4615e57ff15a77d57e0\",\"license\":\"CAL\",\"urls\":[\"bzz-raw://e07c2907da9323f1d6d5b6557e87a904fdf1be3768ad64bb59655d060128bee4\",\"dweb:/ipfs/QmbukDZevfHYZ27yPqfmG1UFw8TsGbCRyH6Uc536QrtgHK\"]},\"lib/rain.interpreter/src/lib/caller/LibContext.sol\":{\"keccak256\":\"0x155499b7b1624484d2b03b9aecc7d7133c6c69bd17aa278b756c27e2c48af74a\",\"license\":\"CAL\",\"urls\":[\"bzz-raw://a2c9276f73ba44f1978b06847a23eed697b62f72eaa02e5e5711c30ea8097c05\",\"dweb:/ipfs/QmfKhi9K4Sp45t2dXCz5pms7mkoXARWkYgB661uc8DPrbF\"]},\"lib/rain.interpreter/src/lib/caller/LibDeployerDiscoverable.sol\":{\"keccak256\":\"0x3949de1f4537cd262d54a06a64028343793c6110611c7b4967de3153de4b3b55\",\"license\":\"CAL\",\"urls\":[\"bzz-raw://9bdd88ec9a7dc671c33bf73e9fe1801bcf7d4a2eb4e6308186f8a7adc4b712dc\",\"dweb:/ipfs/Qme27jUCKETZ9ASPqVbyiQPGTj7ifgZdmRZcsJqgm5hkEW\"]},\"lib/rain.interpreter/src/lib/caller/LibEncodedDispatch.sol\":{\"keccak256\":\"0x4f011d07a8fa4b24efccb02022bff68730d53c852424817a4ca3cfc134bbc455\",\"license\":\"CAL\",\"urls\":[\"bzz-raw://fd0ffd2bdc5e2af1f2f67938d70e2ae694a0285a4fae4818530aa86edce400b1\",\"dweb:/ipfs/QmQAcoLvHatMANZpm5aP1vCaVm3xp1tF5MnZjQiX7AfiRe\"]},\"lib/rain.interpreter/src/lib/caller/LibEvaluable.sol\":{\"keccak256\":\"0xc3e649c4d698822ae81c4ec0814d2dd506e601795914a7af0883c5c40678ab21\",\"license\":\"CAL\",\"urls\":[\"bzz-raw://901d9258689585e338aeb648d77ca083766c423dabc78db46285b3fb69fb12d1\",\"dweb:/ipfs/QmPVw7yuoDuqWorxpM7oWPhjSGRXhcEeu1dXQrjBDvpfrn\"]},\"lib/rain.interpreter/src/lib/ns/LibNamespace.sol\":{\"keccak256\":\"0x29574214b0e499343ea999d676764a18618485dece1cedc732ab73e779302153\",\"license\":\"CAL\",\"urls\":[\"bzz-raw://4de0c0b4d297bbe286bf2e6ec8ba38ef3ea93811826d910c00381df86e54661f\",\"dweb:/ipfs/QmdJv5EgqtuRo2iTdChUE5hjhJgtBhBzztYqPUXevU6J5y\"]},\"lib/rain.lib.memkv/lib/rain.lib.hash/src/LibHashNoAlloc.sol\":{\"keccak256\":\"0x52c8b6906d61bcc7e70d594cb097f53e361569904e27019ebeed0b4c94d2aed8\",\"license\":\"CAL\",\"urls\":[\"bzz-raw://62999b0afefbe97e1d41c2c57b67a186e5a1618758f8f9cf17776c1d67f27d24\",\"dweb:/ipfs/QmfVsV2CVp91F9dHNWziKvSo54Wgb84k5Ct7Rtxxyptw35\"]},\"lib/rain.math.fixedpoint/src/lib/FixedPointDecimalConstants.sol\":{\"keccak256\":\"0x0d49e0111affa09a4767373bc550609ca3fc4ebf644c53f68ec7b750363d665b\",\"license\":\"CAL\",\"urls\":[\"bzz-raw://eca030b8ff848c042a97ab8522d555db426afac4053697f985be714047bfcd75\",\"dweb:/ipfs/QmRNwqGPXmyCszjcMBj6GM6AZfJ92XcwdjSm9QfJeWW6jN\"]},\"lib/rain.math.fixedpoint/src/lib/LibFixedPointDecimalArithmeticOpenZeppelin.sol\":{\"keccak256\":\"0x600663b6bfbf145f08708b4335b77fd34a81f498db39958af54eb55c778cedcc\",\"license\":\"CAL\",\"urls\":[\"bzz-raw://92aca54bb5df1ed98b5efa836aea98f0b1711dbf42bff369f028da972da1db28\",\"dweb:/ipfs/Qmbheu4ofHfGn9BWfYow84aH21xGAuqMSjSMpWJ7cvBeE5\"]},\"lib/rain.math.fixedpoint/src/lib/LibFixedPointDecimalScale.sol\":{\"keccak256\":\"0x4b4a1f943159fd837a9b243a226fdb9b4afd4fab0eb45b276fd6e7612950300a\",\"license\":\"CAL\",\"urls\":[\"bzz-raw://4a8e53ce2a5fb2c97a0e3b9151aadd4b047cb987a6e77404806245833f3879c8\",\"dweb:/ipfs/QmcU5b4EqUacgXWEorbH2MzJmBEwf4Qos6sruq7nUGLZ79\"]},\"lib/rain.metadata/src/IMetaV1.sol\":{\"keccak256\":\"0xd1959040fcc89be7a4dc8c9c193e4e5a78b84b05848b86c54d39c3d717ad1843\",\"license\":\"CAL\",\"urls\":[\"bzz-raw://7d3cba2279a6b8912f783430eef89c4a6482a489632ead7e2a3594d2162fa2b3\",\"dweb:/ipfs/QmfJFn72vcnq4LXpeBs9PWuDRzJSr58uVeDVjWpxjMHFWs\"]},\"lib/rain.metadata/src/LibMeta.sol\":{\"keccak256\":\"0x04665ba6364cc67050b2a245daa780c39039dd51653f7b2029910f242f5dd285\",\"license\":\"CAL\",\"urls\":[\"bzz-raw://4341f3462120c37c832c03c6c9a0d52a100708fad713ced970f09747badd9d6d\",\"dweb:/ipfs/QmUGovuLTuTmCSTvYWc6SehzyoYAzVsAnPBNmE3hmRDAQU\"]},\"lib/rain.solmem/src/lib/LibBytes.sol\":{\"keccak256\":\"0xcdc485d90d6d8a89a842b64c83efd15266c5c80916535736aa8a05497bcf5625\",\"license\":\"CAL\",\"urls\":[\"bzz-raw://a45d0edb1d404207ad328d7a4eb16ee52d68db8dbb44796caa521a4765dfe353\",\"dweb:/ipfs/QmVT8vbFLMmD1sg1sEz21mTrDRE58yFNsmKDPnZ3LX8yYk\"]},\"lib/rain.solmem/src/lib/LibMemCpy.sol\":{\"keccak256\":\"0x6a2df10cc8f19bf99711c06ddf744080d922104b2f8aab4093ca1df8849a8406\",\"license\":\"CAL\",\"urls\":[\"bzz-raw://58cdb4a850867b5ae325c28cd588a98e9c0b313fb7b70974fcb9ad357f552102\",\"dweb:/ipfs/QmYvf96iHnS81aqt9sEcdvqpq6ghsk2fa8RVNBc6pttQJe\"]},\"lib/rain.solmem/src/lib/LibPointer.sol\":{\"keccak256\":\"0xcd833cbf588ec10836cdfbddd426fc14dfa145ed2e63054f6bbd06e296e698f7\",\"license\":\"CAL\",\"urls\":[\"bzz-raw://9ce0af4045e276c5e4c352c1c435f4ecea7552192b1d99e33732c1067bea0ad7\",\"dweb:/ipfs/Qmc5NCFTwgg2AemUz9K1fPei51ivge3eUrWP8k56kF8ADG\"]},\"lib/rain.solmem/src/lib/LibUint256Array.sol\":{\"keccak256\":\"0x120ff38e1ce110465281d3d27d63c7c8d7ecbeba65aeacbffa7bec393501cbde\",\"license\":\"CAL\",\"urls\":[\"bzz-raw://0acaffcfb7a060e2cc60940768ac2c8c25c142834336de35984d1c53eba6f7b6\",\"dweb:/ipfs/QmcFAtiTDm43ZQTqAmpJUYuCbbTg6U6ytziB37qWU5h7sL\"]},\"src/abstract/OrderBookV3FlashLender.sol\":{\"keccak256\":\"0x7c8af4eadf49bf142d27079e4d17a508269b40a19672ca8ade7eb436b608e26e\",\"license\":\"CAL\",\"urls\":[\"bzz-raw://1dc704e5a3e32fd90168f1b297160bffd61090de2a65e4e881f49fd980ce7fd4\",\"dweb:/ipfs/QmZhd6p6XzUEo3qHJTF7iwKkRUSvpwSrNHkEBxYYmumxtW\"]},\"src/concrete/OrderBook.sol\":{\"keccak256\":\"0xe5fb1a2b325029e79ad2129dee22c5954d57f2952b009074fdb55a3cebebcb9c\",\"license\":\"CAL\",\"urls\":[\"bzz-raw://7457d8b36045f51a7200e8013b1f9babd12e7b59f9ae4017030b6d449cdc5a0b\",\"dweb:/ipfs/QmdL5cvSsf8qt3Cj8kjgjMcPqRWqeHA9bquP1KcuZ1oBen\"]},\"src/interface/deprecated/IOrderBookV2.sol\":{\"keccak256\":\"0xc4f99b2e74b48063eb0383184446e5ad65aa158e12519949e28bed62b49d88fb\",\"license\":\"CAL\",\"urls\":[\"bzz-raw://1a2cdc0410026ffc686d4100505564a9dff28b2364cadfeb75b3eea4dde841dc\",\"dweb:/ipfs/QmXC1QtN2Go2RLH8bK9GrtsxfMLY5eKaksW53utMTaNuR8\"]},\"src/interface/ierc3156/IERC3156FlashBorrower.sol\":{\"keccak256\":\"0x493227b1bc21c04ba2506d8d63f8fab8eb828683cf41336db1076edee2e010a7\",\"license\":\"CC0\",\"urls\":[\"bzz-raw://99b27f1f11576c22462c93ab613835522dfc89a7e28e584df034b339187bc15c\",\"dweb:/ipfs/QmQZ1H8PotScE5rSbruZn97MC6pgDNTuCQcjtg8ZWU4SPB\"]},\"src/interface/ierc3156/IERC3156FlashLender.sol\":{\"keccak256\":\"0x1c14bc32c7483a68f5cb3ff65f64a8a32b279472525340033ce8e0b462fd1e72\",\"license\":\"CC0\",\"urls\":[\"bzz-raw://e25cbc0c4512d737fd9fb32f30af0f9bcccd10f28870c927057f6bcaac213dd4\",\"dweb:/ipfs/Qmey7YDkCTMXgoRDVHUbHRH6f4MJz6mBdfucp7v7bVy1ie\"]},\"src/interface/unstable/IOrderBookV3.sol\":{\"keccak256\":\"0x1aba9fbf5e9c2f410a2c24d56361718ac4ec6d62431ee07107bb83660740b6a1\",\"license\":\"CAL\",\"urls\":[\"bzz-raw://12e803376fce4b36bcb7c228faa2aa5360b85688539485212f129b3467e23852\",\"dweb:/ipfs/QmV7oBCy2idxp8pY9yhGGcqbdpfVcqgpRvpJ1wYDNg7rZT\"]},\"src/interface/unstable/IOrderBookV3OrderTaker.sol\":{\"keccak256\":\"0x256cda8259c6c344e80ea5db35c7899e2c6f337ca040653ebdf7527e2e1d776e\",\"license\":\"CAL\",\"urls\":[\"bzz-raw://5b26e4385457c5c18b0c4cb394d00662364912f082510df6015e0127059c05b9\",\"dweb:/ipfs/QmaQmiW8dDDAcfzRJZVavcZo9QLeFrN44obvRydJouJbL1\"]},\"src/lib/LibOrder.sol\":{\"keccak256\":\"0xa170543b2f0250c5ad500f918e83a3618c86aab9b4fdc428b1e9146d6c914bcb\",\"license\":\"CAL\",\"urls\":[\"bzz-raw://134077a0303267df981e9b5868e988989e01432e9eb21778c7432c5ee724c615\",\"dweb:/ipfs/QmSDbRcrBYQJEitQUCBgv9YZmMDiF6uk4HDGeje4qSe4Zc\"]}},\"version\":1}", - "metadata": { - "compiler": { - "version": "0.8.19+commit.7dd6d404" - }, - "language": "Solidity", - "output": { - "abi": [ - { - "inputs": [ - { - "internalType": "struct DeployerDiscoverableMetaV3ConstructionConfig", - "name": "config", - "type": "tuple", - "components": [ - { - "internalType": "address", - "name": "deployer", - "type": "address" - }, - { - "internalType": "bytes", - "name": "meta", - "type": "bytes" - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "result", - "type": "bytes32" - } - ], - "type": "error", - "name": "FlashLenderCallbackFailed" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "i", - "type": "uint256" - } - ], - "type": "error", - "name": "InvalidSignature" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "minimumInput", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "input", - "type": "uint256" - } - ], - "type": "error", - "name": "MinimumInput" - }, - { - "inputs": [], - "type": "error", - "name": "NoOrders" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "type": "error", - "name": "NotOrderOwner" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "unmeta", - "type": "bytes" - } - ], - "type": "error", - "name": "NotRainMetaV1" - }, - { - "inputs": [], - "type": "error", - "name": "OrderNoHandleIO" - }, - { - "inputs": [], - "type": "error", - "name": "OrderNoInputs" - }, - { - "inputs": [], - "type": "error", - "name": "OrderNoOutputs" - }, - { - "inputs": [], - "type": "error", - "name": "OrderNoSources" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "type": "error", - "name": "SameOwner" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "bytecode", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "sourceIndex", - "type": "uint256" - } - ], - "type": "error", - "name": "SourceIndexOutOfBounds" - }, - { - "inputs": [ - { - "internalType": "uint8", - "name": "aliceTokenDecimals", - "type": "uint8" - }, - { - "internalType": "uint8", - "name": "bobTokenDecimals", - "type": "uint8" - } - ], - "type": "error", - "name": "TokenDecimalsMismatch" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "aliceToken", - "type": "address" - }, - { - "internalType": "address", - "name": "bobToken", - "type": "address" - } - ], - "type": "error", - "name": "TokenMismatch" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "expectedHash", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "actualHash", - "type": "bytes32" - } - ], - "type": "error", - "name": "UnexpectedMetaHash" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "inputs", - "type": "uint256" - } - ], - "type": "error", - "name": "UnsupportedCalculateInputs" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "outputs", - "type": "uint256" - } - ], - "type": "error", - "name": "UnsupportedCalculateOutputs" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "inputs", - "type": "uint256" - } - ], - "type": "error", - "name": "UnsupportedHandleInputs" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "vaultId", - "type": "uint256" - } - ], - "type": "error", - "name": "ZeroDepositAmount" - }, - { - "inputs": [], - "type": "error", - "name": "ZeroMaximumInput" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "vaultId", - "type": "uint256" - } - ], - "type": "error", - "name": "ZeroWithdrawTargetAmount" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address", - "indexed": false - }, - { - "internalType": "contract IExpressionDeployerV3", - "name": "expressionDeployer", - "type": "address", - "indexed": false - }, - { - "internalType": "struct OrderV2", - "name": "order", - "type": "tuple", - "components": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "bool", - "name": "handleIO", - "type": "bool" - }, - { - "internalType": "struct EvaluableV2", - "name": "evaluable", - "type": "tuple", - "components": [ - { - "internalType": "contract IInterpreterV2", - "name": "interpreter", - "type": "address" - }, - { - "internalType": "contract IInterpreterStoreV1", - "name": "store", - "type": "address" - }, - { - "internalType": "address", - "name": "expression", - "type": "address" - } - ] - }, - { - "internalType": "struct IO[]", - "name": "validInputs", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint8", - "name": "decimals", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "vaultId", - "type": "uint256" - } - ] - }, - { - "internalType": "struct IO[]", - "name": "validOutputs", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint8", - "name": "decimals", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "vaultId", - "type": "uint256" - } - ] - } - ], - "indexed": false - }, - { - "internalType": "bytes32", - "name": "orderHash", - "type": "bytes32", - "indexed": false - } - ], - "type": "event", - "name": "AddOrder", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address", - "indexed": false - }, - { - "internalType": "struct ClearStateChange", - "name": "clearStateChange", - "type": "tuple", - "components": [ - { - "internalType": "uint256", - "name": "aliceOutput", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "bobOutput", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "aliceInput", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "bobInput", - "type": "uint256" - } - ], - "indexed": false - } - ], - "type": "event", - "name": "AfterClear", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address", - "indexed": false - }, - { - "internalType": "struct OrderV2", - "name": "alice", - "type": "tuple", - "components": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "bool", - "name": "handleIO", - "type": "bool" - }, - { - "internalType": "struct EvaluableV2", - "name": "evaluable", - "type": "tuple", - "components": [ - { - "internalType": "contract IInterpreterV2", - "name": "interpreter", - "type": "address" - }, - { - "internalType": "contract IInterpreterStoreV1", - "name": "store", - "type": "address" - }, - { - "internalType": "address", - "name": "expression", - "type": "address" - } - ] - }, - { - "internalType": "struct IO[]", - "name": "validInputs", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint8", - "name": "decimals", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "vaultId", - "type": "uint256" - } - ] - }, - { - "internalType": "struct IO[]", - "name": "validOutputs", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint8", - "name": "decimals", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "vaultId", - "type": "uint256" - } - ] - } - ], - "indexed": false - }, - { - "internalType": "struct OrderV2", - "name": "bob", - "type": "tuple", - "components": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "bool", - "name": "handleIO", - "type": "bool" - }, - { - "internalType": "struct EvaluableV2", - "name": "evaluable", - "type": "tuple", - "components": [ - { - "internalType": "contract IInterpreterV2", - "name": "interpreter", - "type": "address" - }, - { - "internalType": "contract IInterpreterStoreV1", - "name": "store", - "type": "address" - }, - { - "internalType": "address", - "name": "expression", - "type": "address" - } - ] - }, - { - "internalType": "struct IO[]", - "name": "validInputs", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint8", - "name": "decimals", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "vaultId", - "type": "uint256" - } - ] - }, - { - "internalType": "struct IO[]", - "name": "validOutputs", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint8", - "name": "decimals", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "vaultId", - "type": "uint256" - } - ] - } - ], - "indexed": false - }, - { - "internalType": "struct ClearConfig", - "name": "clearConfig", - "type": "tuple", - "components": [ - { - "internalType": "uint256", - "name": "aliceInputIOIndex", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "aliceOutputIOIndex", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "bobInputIOIndex", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "bobOutputIOIndex", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "aliceBountyVaultId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "bobBountyVaultId", - "type": "uint256" - } - ], - "indexed": false - } - ], - "type": "event", - "name": "Clear", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address", - "indexed": false - }, - { - "internalType": "uint256[][]", - "name": "context", - "type": "uint256[][]", - "indexed": false - } - ], - "type": "event", - "name": "Context", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address", - "indexed": false - }, - { - "internalType": "address", - "name": "token", - "type": "address", - "indexed": false - }, - { - "internalType": "uint256", - "name": "vaultId", - "type": "uint256", - "indexed": false - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256", - "indexed": false - } - ], - "type": "event", - "name": "Deposit", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address", - "indexed": false - }, - { - "internalType": "uint256", - "name": "subject", - "type": "uint256", - "indexed": false - }, - { - "internalType": "bytes", - "name": "meta", - "type": "bytes", - "indexed": false - } - ], - "type": "event", - "name": "MetaV1", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address", - "indexed": false - }, - { - "internalType": "address", - "name": "owner", - "type": "address", - "indexed": false - }, - { - "internalType": "bytes32", - "name": "orderHash", - "type": "bytes32", - "indexed": false - } - ], - "type": "event", - "name": "OrderExceedsMaxRatio", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address", - "indexed": false - }, - { - "internalType": "address", - "name": "owner", - "type": "address", - "indexed": false - }, - { - "internalType": "bytes32", - "name": "orderHash", - "type": "bytes32", - "indexed": false - } - ], - "type": "event", - "name": "OrderNotFound", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address", - "indexed": false - }, - { - "internalType": "address", - "name": "owner", - "type": "address", - "indexed": false - }, - { - "internalType": "bytes32", - "name": "orderHash", - "type": "bytes32", - "indexed": false - } - ], - "type": "event", - "name": "OrderZeroAmount", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address", - "indexed": false - }, - { - "internalType": "struct OrderV2", - "name": "order", - "type": "tuple", - "components": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "bool", - "name": "handleIO", - "type": "bool" - }, - { - "internalType": "struct EvaluableV2", - "name": "evaluable", - "type": "tuple", - "components": [ - { - "internalType": "contract IInterpreterV2", - "name": "interpreter", - "type": "address" - }, - { - "internalType": "contract IInterpreterStoreV1", - "name": "store", - "type": "address" - }, - { - "internalType": "address", - "name": "expression", - "type": "address" - } - ] - }, - { - "internalType": "struct IO[]", - "name": "validInputs", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint8", - "name": "decimals", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "vaultId", - "type": "uint256" - } - ] - }, - { - "internalType": "struct IO[]", - "name": "validOutputs", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint8", - "name": "decimals", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "vaultId", - "type": "uint256" - } - ] - } - ], - "indexed": false - }, - { - "internalType": "bytes32", - "name": "orderHash", - "type": "bytes32", - "indexed": false - } - ], - "type": "event", - "name": "RemoveOrder", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address", - "indexed": false - }, - { - "internalType": "struct TakeOrderConfigV2", - "name": "config", - "type": "tuple", - "components": [ - { - "internalType": "struct OrderV2", - "name": "order", - "type": "tuple", - "components": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "bool", - "name": "handleIO", - "type": "bool" - }, - { - "internalType": "struct EvaluableV2", - "name": "evaluable", - "type": "tuple", - "components": [ - { - "internalType": "contract IInterpreterV2", - "name": "interpreter", - "type": "address" - }, - { - "internalType": "contract IInterpreterStoreV1", - "name": "store", - "type": "address" - }, - { - "internalType": "address", - "name": "expression", - "type": "address" - } - ] - }, - { - "internalType": "struct IO[]", - "name": "validInputs", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint8", - "name": "decimals", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "vaultId", - "type": "uint256" - } - ] - }, - { - "internalType": "struct IO[]", - "name": "validOutputs", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint8", - "name": "decimals", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "vaultId", - "type": "uint256" - } - ] - } - ] - }, - { - "internalType": "uint256", - "name": "inputIOIndex", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "outputIOIndex", - "type": "uint256" - }, - { - "internalType": "struct SignedContextV1[]", - "name": "signedContext", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "signer", - "type": "address" - }, - { - "internalType": "uint256[]", - "name": "context", - "type": "uint256[]" - }, - { - "internalType": "bytes", - "name": "signature", - "type": "bytes" - } - ] - } - ], - "indexed": false - }, - { - "internalType": "uint256", - "name": "input", - "type": "uint256", - "indexed": false - }, - { - "internalType": "uint256", - "name": "output", - "type": "uint256", - "indexed": false - } - ], - "type": "event", - "name": "TakeOrder", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address", - "indexed": false - }, - { - "internalType": "address", - "name": "token", - "type": "address", - "indexed": false - }, - { - "internalType": "uint256", - "name": "vaultId", - "type": "uint256", - "indexed": false - }, - { - "internalType": "uint256", - "name": "targetAmount", - "type": "uint256", - "indexed": false - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256", - "indexed": false - } - ], - "type": "event", - "name": "Withdraw", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "struct OrderConfigV2", - "name": "config", - "type": "tuple", - "components": [ - { - "internalType": "struct IO[]", - "name": "validInputs", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint8", - "name": "decimals", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "vaultId", - "type": "uint256" - } - ] - }, - { - "internalType": "struct IO[]", - "name": "validOutputs", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint8", - "name": "decimals", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "vaultId", - "type": "uint256" - } - ] - }, - { - "internalType": "struct EvaluableConfigV3", - "name": "evaluableConfig", - "type": "tuple", - "components": [ - { - "internalType": "contract IExpressionDeployerV3", - "name": "deployer", - "type": "address" - }, - { - "internalType": "bytes", - "name": "bytecode", - "type": "bytes" - }, - { - "internalType": "uint256[]", - "name": "constants", - "type": "uint256[]" - } - ] - }, - { - "internalType": "bytes", - "name": "meta", - "type": "bytes" - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "addOrder", - "outputs": [ - { - "internalType": "bool", - "name": "stateChanged", - "type": "bool" - } - ] - }, - { - "inputs": [ - { - "internalType": "struct OrderV2", - "name": "aliceOrder", - "type": "tuple", - "components": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "bool", - "name": "handleIO", - "type": "bool" - }, - { - "internalType": "struct EvaluableV2", - "name": "evaluable", - "type": "tuple", - "components": [ - { - "internalType": "contract IInterpreterV2", - "name": "interpreter", - "type": "address" - }, - { - "internalType": "contract IInterpreterStoreV1", - "name": "store", - "type": "address" - }, - { - "internalType": "address", - "name": "expression", - "type": "address" - } - ] - }, - { - "internalType": "struct IO[]", - "name": "validInputs", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint8", - "name": "decimals", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "vaultId", - "type": "uint256" - } - ] - }, - { - "internalType": "struct IO[]", - "name": "validOutputs", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint8", - "name": "decimals", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "vaultId", - "type": "uint256" - } - ] - } - ] - }, - { - "internalType": "struct OrderV2", - "name": "bobOrder", - "type": "tuple", - "components": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "bool", - "name": "handleIO", - "type": "bool" - }, - { - "internalType": "struct EvaluableV2", - "name": "evaluable", - "type": "tuple", - "components": [ - { - "internalType": "contract IInterpreterV2", - "name": "interpreter", - "type": "address" - }, - { - "internalType": "contract IInterpreterStoreV1", - "name": "store", - "type": "address" - }, - { - "internalType": "address", - "name": "expression", - "type": "address" - } - ] - }, - { - "internalType": "struct IO[]", - "name": "validInputs", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint8", - "name": "decimals", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "vaultId", - "type": "uint256" - } - ] - }, - { - "internalType": "struct IO[]", - "name": "validOutputs", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint8", - "name": "decimals", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "vaultId", - "type": "uint256" - } - ] - } - ] - }, - { - "internalType": "struct ClearConfig", - "name": "clearConfig", - "type": "tuple", - "components": [ - { - "internalType": "uint256", - "name": "aliceInputIOIndex", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "aliceOutputIOIndex", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "bobInputIOIndex", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "bobOutputIOIndex", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "aliceBountyVaultId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "bobBountyVaultId", - "type": "uint256" - } - ] - }, - { - "internalType": "struct SignedContextV1[]", - "name": "aliceSignedContext", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "signer", - "type": "address" - }, - { - "internalType": "uint256[]", - "name": "context", - "type": "uint256[]" - }, - { - "internalType": "bytes", - "name": "signature", - "type": "bytes" - } - ] - }, - { - "internalType": "struct SignedContextV1[]", - "name": "bobSignedContext", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "signer", - "type": "address" - }, - { - "internalType": "uint256[]", - "name": "context", - "type": "uint256[]" - }, - { - "internalType": "bytes", - "name": "signature", - "type": "bytes" - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "clear" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "vaultId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "deposit" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function", - "name": "flashFee", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [ - { - "internalType": "contract IERC3156FlashBorrower", - "name": "receiver", - "type": "address" - }, - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "flashLoan", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function", - "name": "maxFlashLoan", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [ - { - "internalType": "bytes[]", - "name": "data", - "type": "bytes[]" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "multicall", - "outputs": [ - { - "internalType": "bytes[]", - "name": "results", - "type": "bytes[]" - } - ] - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "orderHash", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function", - "name": "orderExists", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ] - }, - { - "inputs": [ - { - "internalType": "struct OrderV2", - "name": "order", - "type": "tuple", - "components": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "bool", - "name": "handleIO", - "type": "bool" - }, - { - "internalType": "struct EvaluableV2", - "name": "evaluable", - "type": "tuple", - "components": [ - { - "internalType": "contract IInterpreterV2", - "name": "interpreter", - "type": "address" - }, - { - "internalType": "contract IInterpreterStoreV1", - "name": "store", - "type": "address" - }, - { - "internalType": "address", - "name": "expression", - "type": "address" - } - ] - }, - { - "internalType": "struct IO[]", - "name": "validInputs", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint8", - "name": "decimals", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "vaultId", - "type": "uint256" - } - ] - }, - { - "internalType": "struct IO[]", - "name": "validOutputs", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint8", - "name": "decimals", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "vaultId", - "type": "uint256" - } - ] - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "removeOrder", - "outputs": [ - { - "internalType": "bool", - "name": "stateChanged", - "type": "bool" - } - ] - }, - { - "inputs": [ - { - "internalType": "struct TakeOrdersConfigV2", - "name": "config", - "type": "tuple", - "components": [ - { - "internalType": "uint256", - "name": "minimumInput", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maximumInput", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maximumIORatio", - "type": "uint256" - }, - { - "internalType": "struct TakeOrderConfigV2[]", - "name": "orders", - "type": "tuple[]", - "components": [ - { - "internalType": "struct OrderV2", - "name": "order", - "type": "tuple", - "components": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "bool", - "name": "handleIO", - "type": "bool" - }, - { - "internalType": "struct EvaluableV2", - "name": "evaluable", - "type": "tuple", - "components": [ - { - "internalType": "contract IInterpreterV2", - "name": "interpreter", - "type": "address" - }, - { - "internalType": "contract IInterpreterStoreV1", - "name": "store", - "type": "address" - }, - { - "internalType": "address", - "name": "expression", - "type": "address" - } - ] - }, - { - "internalType": "struct IO[]", - "name": "validInputs", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint8", - "name": "decimals", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "vaultId", - "type": "uint256" - } - ] - }, - { - "internalType": "struct IO[]", - "name": "validOutputs", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint8", - "name": "decimals", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "vaultId", - "type": "uint256" - } - ] - } - ] - }, - { - "internalType": "uint256", - "name": "inputIOIndex", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "outputIOIndex", - "type": "uint256" - }, - { - "internalType": "struct SignedContextV1[]", - "name": "signedContext", - "type": "tuple[]", - "components": [ - { - "internalType": "address", - "name": "signer", - "type": "address" - }, - { - "internalType": "uint256[]", - "name": "context", - "type": "uint256[]" - }, - { - "internalType": "bytes", - "name": "signature", - "type": "bytes" - } - ] - } - ] - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ] - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "takeOrders", - "outputs": [ - { - "internalType": "uint256", - "name": "totalTakerInput", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "totalTakerOutput", - "type": "uint256" - } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "vaultId", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function", - "name": "vaultBalance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "uint256", - "name": "vaultId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "targetAmount", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "withdraw" - } - ], - "devdoc": { - "kind": "dev", - "methods": { - "addOrder(((address,uint8,uint256)[],(address,uint8,uint256)[],(address,bytes,uint256[]),bytes))": { - "params": { - "config": "All config required to build an `Order`." - }, - "returns": { - "stateChanged": "True if the order was added, false if it already existed." - } - }, - "clear((address,bool,(address,address,address),(address,uint8,uint256)[],(address,uint8,uint256)[]),(address,bool,(address,address,address),(address,uint8,uint256)[],(address,uint8,uint256)[]),(uint256,uint256,uint256,uint256,uint256,uint256),(address,uint256[],bytes)[],(address,uint256[],bytes)[])": { - "params": { - "alice": "Some order to clear.", - "aliceSignedContext": "Optional signed context that is relevant to A.", - "bob": "Another order to clear.", - "bobSignedContext": "Optional signed context that is relevant to B.", - "clearConfig": "Additional configuration for the clearance such as how to handle the bounty payment for the `msg.sender`." - } - }, - "deposit(address,uint256,uint256)": { - "params": { - "amount": "The amount of tokens to deposit.", - "token": "The token to deposit.", - "vaultId": "The vault ID to deposit under." - } - }, - "flashFee(address,uint256)": { - "details": "The fee to be charged for a given loan.", - "params": { - "amount": "The amount of tokens lent.", - "token": "The loan currency." - }, - "returns": { - "_0": "The amount of `token` to be charged for the loan, on top of the returned principal." - } - }, - "flashLoan(address,address,uint256,bytes)": { - "details": "Initiate a flash loan.", - "params": { - "amount": "The amount of tokens lent.", - "data": "Arbitrary data structure, intended to contain user-defined parameters.", - "receiver": "The receiver of the tokens in the loan, and the receiver of the callback.", - "token": "The loan currency." - } - }, - "maxFlashLoan(address)": { - "details": "The amount of currency available to be lent.", - "params": { - "token": "The loan currency." - }, - "returns": { - "_0": "The amount of `token` that can be borrowed." - } - }, - "multicall(bytes[])": { - "custom:oz-upgrades-unsafe-allow-reachable": "delegatecall", - "details": "Receives and executes a batch of function calls on this contract." - }, - "orderExists(bytes32)": { - "params": { - "orderHash": "The hash of the order to check." - }, - "returns": { - "_0": "True if the order exists, false otherwise." - } - }, - "removeOrder((address,bool,(address,address,address),(address,uint8,uint256)[],(address,uint8,uint256)[]))": { - "params": { - "order": "The `Order` data exactly as it was added." - }, - "returns": { - "stateChanged": "True if the order was removed, false if it did not exist." - } - }, - "takeOrders((uint256,uint256,uint256,((address,bool,(address,address,address),(address,uint8,uint256)[],(address,uint8,uint256)[]),uint256,uint256,(address,uint256[],bytes)[])[],bytes))": { - "params": { - "config": "The constraints and list of orders to take, orders are processed sequentially in order as provided, there is NO ATTEMPT onchain to predict/filter/sort these orders other than evaluating them as provided. Inputs and outputs are from the perspective of `msg.sender` except for values specified by the orders themselves which are the from the perspective of that order." - }, - "returns": { - "totalTakerInput": "Total tokens sent to `msg.sender`, taken from order vaults processed.", - "totalTakerOutput": "Total tokens taken from `msg.sender` and distributed between vaults." - } - }, - "vaultBalance(address,address,uint256)": { - "params": { - "id": "The vault ID to read.", - "owner": "The owner of the vault.", - "token": "The token the vault is for." - }, - "returns": { - "_0": "The current balance of the vault." - } - }, - "withdraw(address,uint256,uint256)": { - "params": { - "targetAmount": "The amount of tokens to attempt to withdraw. MAY result in fewer tokens withdrawn if the vault balance is lower than the target amount. MAY NOT be zero, the order book MUST revert with `ZeroWithdrawTargetAmount` if the amount is zero.", - "token": "The token to withdraw.", - "vaultId": "The vault ID to withdraw from." - } - } - }, - "version": 1 - }, - "userdoc": { - "kind": "user", - "methods": { - "addOrder(((address,uint8,uint256)[],(address,uint8,uint256)[],(address,bytes,uint256[]),bytes))": { - "notice": "Given an order config, deploys the expression and builds the full `Order` for the config, then records it as an active order. Delegated adding an order is NOT supported. The `msg.sender` that adds an order is ALWAYS the owner and all resulting vault movements are their own. MUST revert with `OrderNoSources` if the order has no associated calculation and `OrderNoHandleIO` if the order has no handle IO entrypoint. The calculation MUST return at least two values from evaluation, the maximum amount and the IO ratio. The handle IO entrypoint SHOULD return zero values from evaluation. Either MAY revert during evaluation on the interpreter, which MUST prevent the order from clearing. MUST revert with `OrderNoInputs` if the order has no inputs. MUST revert with `OrderNoOutputs` if the order has no outputs. If the order already exists, the order book MUST NOT change state, which includes not emitting an event. Instead it MUST return false. If the order book modifies state it MUST emit an `AddOrder` event and return true." - }, - "clear((address,bool,(address,address,address),(address,uint8,uint256)[],(address,uint8,uint256)[]),(address,bool,(address,address,address),(address,uint8,uint256)[],(address,uint8,uint256)[]),(uint256,uint256,uint256,uint256,uint256,uint256),(address,uint256[],bytes)[],(address,uint256[],bytes)[])": { - "notice": "Allows `msg.sender` to match two live orders placed earlier by non-interactive parties and claim a bounty in the process. The clearer is free to select any two live orders on the order book for matching and as long as they have compatible tokens, ratios and amounts, the orders will clear. Clearing the orders DOES NOT remove them from the orderbook, they remain live until explicitly removed by their owner. Even if the input vault balances are completely emptied, the orders remain live until removed. This allows order owners to deploy a strategy over a long period of time and periodically top up the input vaults. Clearing two orders from the same owner is disallowed. Any mismatch in the ratios between the two orders will cause either more inputs than there are available outputs (transaction will revert) or less inputs than there are available outputs. In the latter case the excess outputs are given to the `msg.sender` of clear, to the vaults they specify in the clear config. This not only incentivises \"automatic\" clear calls for both alice and bob, but incentivises _prioritising greater ratio differences_ with a larger bounty. The second point is important because it implicitly prioritises orders that are further from the current market price, thus putting constant increasing pressure on the entire system the further it drifts from the norm, no matter how esoteric the individual order expressions and sizings might be. All else equal there are several factors that would impact how reliably some order clears relative to the wider market, such as: - Bounties are effectively percentages of cleared amounts so larger orders have larger bounties and cover gas costs more easily - High gas on the network means that orders are harder to clear profitably so the negative spread of the ratios will need to be larger - Complex and stateful expressions cost more gas to evalulate so the negative spread will need to be larger - Erratic behavior of the order owner could reduce the willingness of third parties to interact if it could result in wasted gas due to orders suddently being removed before clearance etc. - Dynamic and highly volatile words used in the expression could be ignored or low priority by clearers who want to be sure that they can accurately predict the ratios that they include in their clearance - Geopolitical issues such as sanctions and regulatory restrictions could cause issues for certain owners and clearers" - }, - "constructor": { - "notice": "Initializes the orderbook upon construction for compatibility with Open Zeppelin upgradeable contracts. Orderbook itself does NOT support factory deployments as each order is a unique expression deployment rather than needing to wrap up expressions with proxies." - }, - "deposit(address,uint256,uint256)": { - "notice": "Vault IDs are namespaced by the token address so there is no risk of collision between tokens. For example, vault ID 0 for token A is completely different to vault ID 0 for token B. `0` amount deposits are unsupported as underlying token contracts handle `0` value transfers differently and this would be a source of confusion. The order book MUST revert with `ZeroDepositAmount` if the amount is zero." - }, - "maxFlashLoan(address)": { - "notice": "There's no limit to the size of a flash loan from `Orderbook` other than the current tokens deposited in `Orderbook`. If there is an active debt then loans are disabled so the max becomes `0` until after repayment." - }, - "orderExists(bytes32)": { - "notice": "Returns true if the order exists, false otherwise." - }, - "removeOrder((address,bool,(address,address,address),(address,uint8,uint256)[],(address,uint8,uint256)[]))": { - "notice": "Order owner can remove their own orders. Delegated order removal is NOT supported and will revert. Removing an order multiple times or removing an order that never existed are valid, the event will be emitted and the transaction will complete with that order hash definitely, redundantly not live." - }, - "takeOrders((uint256,uint256,uint256,((address,bool,(address,address,address),(address,uint8,uint256)[],(address,uint8,uint256)[]),uint256,uint256,(address,uint256[],bytes)[])[],bytes))": { - "notice": "Allows `msg.sender` to attempt to fill a list of orders in sequence without needing to place their own order and clear them. This works like a market buy but against a specific set of orders. Every order will looped over and calculated individually then filled maximally until the request input is reached for the `msg.sender`. The `msg.sender` is responsible for selecting the best orders at the time according to their criteria and MAY specify a maximum IO ratio to guard against an order spiking the ratio beyond what the `msg.sender` expected and is comfortable with. As orders may be removed and calculate their ratios dynamically, all issues fulfilling an order other than misconfiguration by the `msg.sender` are no-ops and DO NOT revert the transaction. This allows the `msg.sender` to optimistically provide a list of orders that they aren't sure will completely fill at a good price, and fallback to more reliable orders further down their list. Misconfiguration such as token mismatches are errors that revert as this is known and static at all times to the `msg.sender` so MUST be provided correctly. `msg.sender` MAY specify a minimum input that MUST be reached across all orders in the list, otherwise the transaction will revert, this MAY be set to zero. Exactly like withdraw, if there is an active flash loan for `msg.sender` they will have their outstanding loan reduced by the final input amount preferentially before sending any tokens. Notably this allows arb bots implemented as flash loan borrowers to connect orders against external liquidity directly by paying back the loan with a `takeOrders` call and outputting the result of the external trade. Rounding errors always favour the order never the `msg.sender`." - }, - "vaultBalance(address,address,uint256)": { - "notice": "Get the current balance of a vault for a given owner, token and vault ID." - }, - "withdraw(address,uint256,uint256)": { - "notice": "Allows the sender to withdraw any tokens from their own vaults. If the withrawer has an active flash loan debt denominated in the same token being withdrawn then Orderbook will merely reduce the debt and NOT send the amount of tokens repaid to the flashloan debt. MUST revert if the amount _requested_ to withdraw is zero. The withdrawal MAY still not move any tokens (without revert) if the vault balance is zero, or the withdrawal is used to repay a flash loan, or due to any other internal accounting." - } - }, - "version": 1 - } - }, - "settings": { - "remappings": [ - "@prb/test/=lib/rain.interpreter/lib/prb-math/lib/prb-test/src/", - "axelar-gmp-sdk-solidity/=lib/sushixswap-v2/lib/axelar-gmp-sdk-solidity/", - "bitwise/=lib/rain.interpreter/src/lib/bitwise/", - "bytecode/=lib/rain.interpreter/src/lib/bytecode/", - "caller/=lib/rain.interpreter/src/lib/caller/", - "compile/=lib/rain.interpreter/src/lib/compile/", - "ds-test/=lib/forge-std/lib/ds-test/src/", - "erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/", - "eval/=lib/rain.interpreter/src/lib/eval/", - "extern/=lib/rain.interpreter/src/lib/extern/", - "forge-gas-snapshot/=lib/sushixswap-v2/lib/forge-gas-snapshot/src/", - "forge-std/=lib/forge-std/src/", - "integrity/=lib/rain.interpreter/src/lib/integrity/", - "ns/=lib/rain.interpreter/src/lib/ns/", - "op/=lib/rain.interpreter/src/lib/op/", - "openzeppelin-contracts/=lib/openzeppelin-contracts/", - "openzeppelin/=lib/openzeppelin-contracts/contracts/", - "parse/=lib/rain.interpreter/src/lib/parse/", - "prb-math/=lib/rain.interpreter/lib/prb-math/src/", - "prb-test/=lib/rain.interpreter/lib/prb-math/lib/prb-test/src/", - "rain.chainlink/=lib/rain.interpreter/lib/rain.chainlink/src/", - "rain.datacontract/=lib/rain.interpreter/lib/rain.datacontract/src/", - "rain.erc1820/=lib/rain.erc1820/src/", - "rain.extrospection/=lib/rain.factory/lib/rain.extrospection/", - "rain.factory/=lib/rain.factory/", - "rain.interpreter/=lib/rain.interpreter/", - "rain.lib.hash/=lib/rain.lib.memkv/lib/rain.lib.hash/src/", - "rain.lib.memkv/=lib/rain.lib.memkv/src/", - "rain.lib.typecast/=lib/rain.interpreter/lib/rain.lib.typecast/src/", - "rain.math.fixedpoint/=lib/rain.math.fixedpoint/src/", - "rain.math.saturating/=lib/rain.math.fixedpoint/lib/rain.math.saturating/src/", - "rain.metadata/=lib/rain.metadata/src/", - "rain.solmem/=lib/rain.solmem/src/", - "sol.lib.binmaskflag/=lib/rain.interpreter/lib/sol.lib.binmaskflag/src/", - "state/=lib/rain.interpreter/src/lib/state/", - "sushixswap-v2/=lib/sushixswap-v2/", - "uniswap/=lib/rain.interpreter/src/lib/uniswap/", - "v2-core/=lib/rain.interpreter/lib/v2-core/contracts/", - "v2-periphery/=lib/rain.interpreter/lib/v2-periphery/contracts/" - ], - "optimizer": { - "enabled": true, - "runs": 1000000 - }, - "metadata": { - "bytecodeHash": "none", - "appendCBOR": false - }, - "compilationTarget": { - "src/concrete/OrderBook.sol": "OrderBook" - }, - "libraries": {} - }, - "sources": { - "lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol": { - "keccak256": "0x0705a4b1b86d7b0bd8432118f226ba139c44b9dcaba0a6eafba2dd7d0639c544", - "urls": [ - "bzz-raw://c45b821ef9e882e57c256697a152e108f0f2ad6997609af8904cae99c9bd422e", - "dweb:/ipfs/QmRKCJW6jjzR5UYZcLpGnhEJ75UVbH6EHkEa49sWx2SKng" - ], - "license": "MIT" - }, - "lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol": { - "keccak256": "0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1", - "urls": [ - "bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34", - "dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1" - ], - "license": "MIT" - }, - "lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol": { - "keccak256": "0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305", - "urls": [ - "bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5", - "dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53" - ], - "license": "MIT" - }, - "lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol": { - "keccak256": "0xec63854014a5b4f2b3290ab9103a21bdf902a508d0f41a8573fea49e98bf571a", - "urls": [ - "bzz-raw://bc5b5dc12fbc4002f282eaa7a5f06d8310ed62c1c77c5770f6283e058454c39a", - "dweb:/ipfs/Qme9rE2wS3yBuyJq9GgbmzbsBQsW2M2sVFqYYLw7bosGrv" - ], - "license": "MIT" - }, - "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol": { - "keccak256": "0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1", - "urls": [ - "bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68", - "dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS" - ], - "license": "MIT" - }, - "lib/openzeppelin-contracts/contracts/utils/Address.sol": { - "keccak256": "0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa", - "urls": [ - "bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931", - "dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm" - ], - "license": "MIT" - }, - "lib/openzeppelin-contracts/contracts/utils/Multicall.sol": { - "keccak256": "0xface9a29da6448061decb3506735c0c37aae8820ffaacfea982b1a8633be20d4", - "urls": [ - "bzz-raw://6b5e6f84ed95d9b7f8d6fd8b1019c0aa2114d417dd7a57728d05f6fabf30b8d0", - "dweb:/ipfs/Qmbbgsakxi9caqBtYpAa8UKQCXvNmKnyRNyp8YAVpa91gM" - ], - "license": "MIT" - }, - "lib/openzeppelin-contracts/contracts/utils/Strings.sol": { - "keccak256": "0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0", - "urls": [ - "bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f", - "dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n" - ], - "license": "MIT" - }, - "lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol": { - "keccak256": "0x809bc3edb4bcbef8263fa616c1b60ee0004b50a8a1bfa164d8f57fd31f520c58", - "urls": [ - "bzz-raw://8b93a1e39a4a19eba1600b92c96f435442db88cac91e315c8291547a2a7bcfe2", - "dweb:/ipfs/QmTm34KVe6uZBZwq8dZDNWwPcm24qBJdxqL3rPxBJ4LrMv" - ], - "license": "MIT" - }, - "lib/openzeppelin-contracts/contracts/utils/cryptography/SignatureChecker.sol": { - "keccak256": "0x3af3ca86df39aac39a0514c84459d691434a108d2151c8ce9d69f32e315cab80", - "urls": [ - "bzz-raw://77d1f1cf302cd5e1dfbbb4ce3b281b28e8c52942d4319fce43df2e1b6f02a52d", - "dweb:/ipfs/QmT6ZXStmK3Knhh9BokeVHQ9HXTBZNgL3Eb1ar1cYg1hWy" - ], - "license": "MIT" - }, - "lib/openzeppelin-contracts/contracts/utils/math/Math.sol": { - "keccak256": "0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3", - "urls": [ - "bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c", - "dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS" - ], - "license": "MIT" - }, - "lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol": { - "keccak256": "0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc", - "urls": [ - "bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7", - "dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6" - ], - "license": "MIT" - }, - "lib/rain.interpreter/src/abstract/DeployerDiscoverableMetaV3.sol": { - "keccak256": "0xe333361bf503def41107d2e38acb421f11766e636ffe0728fef933097c66857b", - "urls": [ - "bzz-raw://43b69e65c41a2cb13304d8d8b7fe31ee8d1cb55708b6cf60b799552bb09b4c1b", - "dweb:/ipfs/QmXy4CDRjBVMezbH72uTkYJNrt6yQLVnjNkheD5773MKrn" - ], - "license": "CAL" - }, - "lib/rain.interpreter/src/interface/IInterpreterCallerV2.sol": { - "keccak256": "0xd6f76317b41d50fb6b3fbfcffa5fa8b4a3bb547a17bf52244f67f5c364fcd6bc", - "urls": [ - "bzz-raw://e7a35981e397564e85c53fab7b46bf8118328cfdb729264f946f7826c205f813", - "dweb:/ipfs/QmfXnGW5RTDgqoMkp3k4E3eWBBS7hXWzmhw56XcfvB766E" - ], - "license": "CAL" - }, - "lib/rain.interpreter/src/interface/IInterpreterStoreV1.sol": { - "keccak256": "0x8fe347844f029b84087daae66742fb10aa9e44f94ac90af696318188aa922c19", - "urls": [ - "bzz-raw://5eea5d2116f643db3ede89fd2dc3a5d293e35aec1d62a9daf6531f88a9656fb3", - "dweb:/ipfs/Qmdys5MsEjgpXokb5FhMg96SYB6Bmf3frtVRvX74WrbKTc" - ], - "license": "CAL" - }, - "lib/rain.interpreter/src/interface/deprecated/IExpressionDeployerV1.sol": { - "keccak256": "0x5e903fdb445cc16e63bb86d53eeb49172e2472cd7344a762c6d85684aec8251d", - "urls": [ - "bzz-raw://5dab81bd2f092f392afbb295525c3602246ab5620de7630e84dab37b955f7e4d", - "dweb:/ipfs/QmaGiCBSf2KjwjpVtJwG4k6iGqPKYs8dq6gkUYo9EFWkTg" - ], - "license": "CAL" - }, - "lib/rain.interpreter/src/interface/deprecated/IExpressionDeployerV2.sol": { - "keccak256": "0xc98ea86cd5d633d01b4136258bc0026b3d4bade652f831b482867e97df0e5365", - "urls": [ - "bzz-raw://d412df06ddccb1be19f6e962872297395546c591ccd42ccad91559aa0e5ee214", - "dweb:/ipfs/QmebpvwxNtv9XNoKi9y8Ldqhzy3GWY5kwoSNDQL2vJHrbg" - ], - "license": "CAL" - }, - "lib/rain.interpreter/src/interface/deprecated/IInterpreterCallerV1.sol": { - "keccak256": "0xdfccb8ca0e4673ac476d1ccfcd1ffa69300f910c41352cc51c3408a58bf095b2", - "urls": [ - "bzz-raw://9a44b64873ed13c9c7d964e1d3b66dc2e80bb457563def325551bf796db8791c", - "dweb:/ipfs/QmWTfH9qtwki5DFRAri1ouV7NVZ1mQzraz9eRumNEbcSNU" - ], - "license": "CAL" - }, - "lib/rain.interpreter/src/interface/deprecated/IInterpreterV1.sol": { - "keccak256": "0xb58d3b75312da70f4fb7896dc07d8a3d77de0638d169db4acf6c246ddab0f518", - "urls": [ - "bzz-raw://970029663ca4321640ca0d577213e938046a3fe2995b580f9f7c8f0bfa34a3f3", - "dweb:/ipfs/QmeZgH1RKqLgDh56FWQATBy8BCt6CyGiCuamrKY22QyCRz" - ], - "license": "CAL" - }, - "lib/rain.interpreter/src/interface/unstable/IExpressionDeployerV3.sol": { - "keccak256": "0x408f6c6fa3766cf7d24ffe1c98eb57b77af5bfbe946f266fd7a3b800de4ddb79", - "urls": [ - "bzz-raw://186b12c32030d2b7e4e81f1a11ac7c7a63b0f14b7dc1b6df50cbd2be7459bb69", - "dweb:/ipfs/QmXRV3DGCoQtVxufMtiuXLvN3GF6YNTLyPLVVeoLL53sMg" - ], - "license": "CAL" - }, - "lib/rain.interpreter/src/interface/unstable/IInterpreterV2.sol": { - "keccak256": "0xcf050192ba12f7eb129e0262cee4920cbd65bb331e7487cfc21151882464be50", - "urls": [ - "bzz-raw://10ff84f0acf532c5e11e69b7ab41c739ce4ad0f9193d347b5cc4a34f158774a8", - "dweb:/ipfs/QmRvfB8jCdCwDdLrLHQh8yLLLv2eowpwjfwXgy2u629xew" - ], - "license": "CAL" - }, - "lib/rain.interpreter/src/lib/bytecode/LibBytecode.sol": { - "keccak256": "0xac53e84486e843acbabd6ba258550ba947c35c33a570e4615e57ff15a77d57e0", - "urls": [ - "bzz-raw://e07c2907da9323f1d6d5b6557e87a904fdf1be3768ad64bb59655d060128bee4", - "dweb:/ipfs/QmbukDZevfHYZ27yPqfmG1UFw8TsGbCRyH6Uc536QrtgHK" - ], - "license": "CAL" - }, - "lib/rain.interpreter/src/lib/caller/LibContext.sol": { - "keccak256": "0x155499b7b1624484d2b03b9aecc7d7133c6c69bd17aa278b756c27e2c48af74a", - "urls": [ - "bzz-raw://a2c9276f73ba44f1978b06847a23eed697b62f72eaa02e5e5711c30ea8097c05", - "dweb:/ipfs/QmfKhi9K4Sp45t2dXCz5pms7mkoXARWkYgB661uc8DPrbF" - ], - "license": "CAL" - }, - "lib/rain.interpreter/src/lib/caller/LibDeployerDiscoverable.sol": { - "keccak256": "0x3949de1f4537cd262d54a06a64028343793c6110611c7b4967de3153de4b3b55", - "urls": [ - "bzz-raw://9bdd88ec9a7dc671c33bf73e9fe1801bcf7d4a2eb4e6308186f8a7adc4b712dc", - "dweb:/ipfs/Qme27jUCKETZ9ASPqVbyiQPGTj7ifgZdmRZcsJqgm5hkEW" - ], - "license": "CAL" - }, - "lib/rain.interpreter/src/lib/caller/LibEncodedDispatch.sol": { - "keccak256": "0x4f011d07a8fa4b24efccb02022bff68730d53c852424817a4ca3cfc134bbc455", - "urls": [ - "bzz-raw://fd0ffd2bdc5e2af1f2f67938d70e2ae694a0285a4fae4818530aa86edce400b1", - "dweb:/ipfs/QmQAcoLvHatMANZpm5aP1vCaVm3xp1tF5MnZjQiX7AfiRe" - ], - "license": "CAL" - }, - "lib/rain.interpreter/src/lib/caller/LibEvaluable.sol": { - "keccak256": "0xc3e649c4d698822ae81c4ec0814d2dd506e601795914a7af0883c5c40678ab21", - "urls": [ - "bzz-raw://901d9258689585e338aeb648d77ca083766c423dabc78db46285b3fb69fb12d1", - "dweb:/ipfs/QmPVw7yuoDuqWorxpM7oWPhjSGRXhcEeu1dXQrjBDvpfrn" - ], - "license": "CAL" - }, - "lib/rain.interpreter/src/lib/ns/LibNamespace.sol": { - "keccak256": "0x29574214b0e499343ea999d676764a18618485dece1cedc732ab73e779302153", - "urls": [ - "bzz-raw://4de0c0b4d297bbe286bf2e6ec8ba38ef3ea93811826d910c00381df86e54661f", - "dweb:/ipfs/QmdJv5EgqtuRo2iTdChUE5hjhJgtBhBzztYqPUXevU6J5y" - ], - "license": "CAL" - }, - "lib/rain.lib.memkv/lib/rain.lib.hash/src/LibHashNoAlloc.sol": { - "keccak256": "0x52c8b6906d61bcc7e70d594cb097f53e361569904e27019ebeed0b4c94d2aed8", - "urls": [ - "bzz-raw://62999b0afefbe97e1d41c2c57b67a186e5a1618758f8f9cf17776c1d67f27d24", - "dweb:/ipfs/QmfVsV2CVp91F9dHNWziKvSo54Wgb84k5Ct7Rtxxyptw35" - ], - "license": "CAL" - }, - "lib/rain.math.fixedpoint/src/lib/FixedPointDecimalConstants.sol": { - "keccak256": "0x0d49e0111affa09a4767373bc550609ca3fc4ebf644c53f68ec7b750363d665b", - "urls": [ - "bzz-raw://eca030b8ff848c042a97ab8522d555db426afac4053697f985be714047bfcd75", - "dweb:/ipfs/QmRNwqGPXmyCszjcMBj6GM6AZfJ92XcwdjSm9QfJeWW6jN" - ], - "license": "CAL" - }, - "lib/rain.math.fixedpoint/src/lib/LibFixedPointDecimalArithmeticOpenZeppelin.sol": { - "keccak256": "0x600663b6bfbf145f08708b4335b77fd34a81f498db39958af54eb55c778cedcc", - "urls": [ - "bzz-raw://92aca54bb5df1ed98b5efa836aea98f0b1711dbf42bff369f028da972da1db28", - "dweb:/ipfs/Qmbheu4ofHfGn9BWfYow84aH21xGAuqMSjSMpWJ7cvBeE5" - ], - "license": "CAL" - }, - "lib/rain.math.fixedpoint/src/lib/LibFixedPointDecimalScale.sol": { - "keccak256": "0x4b4a1f943159fd837a9b243a226fdb9b4afd4fab0eb45b276fd6e7612950300a", - "urls": [ - "bzz-raw://4a8e53ce2a5fb2c97a0e3b9151aadd4b047cb987a6e77404806245833f3879c8", - "dweb:/ipfs/QmcU5b4EqUacgXWEorbH2MzJmBEwf4Qos6sruq7nUGLZ79" - ], - "license": "CAL" - }, - "lib/rain.metadata/src/IMetaV1.sol": { - "keccak256": "0xd1959040fcc89be7a4dc8c9c193e4e5a78b84b05848b86c54d39c3d717ad1843", - "urls": [ - "bzz-raw://7d3cba2279a6b8912f783430eef89c4a6482a489632ead7e2a3594d2162fa2b3", - "dweb:/ipfs/QmfJFn72vcnq4LXpeBs9PWuDRzJSr58uVeDVjWpxjMHFWs" - ], - "license": "CAL" - }, - "lib/rain.metadata/src/LibMeta.sol": { - "keccak256": "0x04665ba6364cc67050b2a245daa780c39039dd51653f7b2029910f242f5dd285", - "urls": [ - "bzz-raw://4341f3462120c37c832c03c6c9a0d52a100708fad713ced970f09747badd9d6d", - "dweb:/ipfs/QmUGovuLTuTmCSTvYWc6SehzyoYAzVsAnPBNmE3hmRDAQU" - ], - "license": "CAL" - }, - "lib/rain.solmem/src/lib/LibBytes.sol": { - "keccak256": "0xcdc485d90d6d8a89a842b64c83efd15266c5c80916535736aa8a05497bcf5625", - "urls": [ - "bzz-raw://a45d0edb1d404207ad328d7a4eb16ee52d68db8dbb44796caa521a4765dfe353", - "dweb:/ipfs/QmVT8vbFLMmD1sg1sEz21mTrDRE58yFNsmKDPnZ3LX8yYk" - ], - "license": "CAL" - }, - "lib/rain.solmem/src/lib/LibMemCpy.sol": { - "keccak256": "0x6a2df10cc8f19bf99711c06ddf744080d922104b2f8aab4093ca1df8849a8406", - "urls": [ - "bzz-raw://58cdb4a850867b5ae325c28cd588a98e9c0b313fb7b70974fcb9ad357f552102", - "dweb:/ipfs/QmYvf96iHnS81aqt9sEcdvqpq6ghsk2fa8RVNBc6pttQJe" - ], - "license": "CAL" - }, - "lib/rain.solmem/src/lib/LibPointer.sol": { - "keccak256": "0xcd833cbf588ec10836cdfbddd426fc14dfa145ed2e63054f6bbd06e296e698f7", - "urls": [ - "bzz-raw://9ce0af4045e276c5e4c352c1c435f4ecea7552192b1d99e33732c1067bea0ad7", - "dweb:/ipfs/Qmc5NCFTwgg2AemUz9K1fPei51ivge3eUrWP8k56kF8ADG" - ], - "license": "CAL" - }, - "lib/rain.solmem/src/lib/LibUint256Array.sol": { - "keccak256": "0x120ff38e1ce110465281d3d27d63c7c8d7ecbeba65aeacbffa7bec393501cbde", - "urls": [ - "bzz-raw://0acaffcfb7a060e2cc60940768ac2c8c25c142834336de35984d1c53eba6f7b6", - "dweb:/ipfs/QmcFAtiTDm43ZQTqAmpJUYuCbbTg6U6ytziB37qWU5h7sL" - ], - "license": "CAL" - }, - "src/abstract/OrderBookV3FlashLender.sol": { - "keccak256": "0x7c8af4eadf49bf142d27079e4d17a508269b40a19672ca8ade7eb436b608e26e", - "urls": [ - "bzz-raw://1dc704e5a3e32fd90168f1b297160bffd61090de2a65e4e881f49fd980ce7fd4", - "dweb:/ipfs/QmZhd6p6XzUEo3qHJTF7iwKkRUSvpwSrNHkEBxYYmumxtW" - ], - "license": "CAL" - }, - "src/concrete/OrderBook.sol": { - "keccak256": "0xe5fb1a2b325029e79ad2129dee22c5954d57f2952b009074fdb55a3cebebcb9c", - "urls": [ - "bzz-raw://7457d8b36045f51a7200e8013b1f9babd12e7b59f9ae4017030b6d449cdc5a0b", - "dweb:/ipfs/QmdL5cvSsf8qt3Cj8kjgjMcPqRWqeHA9bquP1KcuZ1oBen" - ], - "license": "CAL" - }, - "src/interface/deprecated/IOrderBookV2.sol": { - "keccak256": "0xc4f99b2e74b48063eb0383184446e5ad65aa158e12519949e28bed62b49d88fb", - "urls": [ - "bzz-raw://1a2cdc0410026ffc686d4100505564a9dff28b2364cadfeb75b3eea4dde841dc", - "dweb:/ipfs/QmXC1QtN2Go2RLH8bK9GrtsxfMLY5eKaksW53utMTaNuR8" - ], - "license": "CAL" - }, - "src/interface/ierc3156/IERC3156FlashBorrower.sol": { - "keccak256": "0x493227b1bc21c04ba2506d8d63f8fab8eb828683cf41336db1076edee2e010a7", - "urls": [ - "bzz-raw://99b27f1f11576c22462c93ab613835522dfc89a7e28e584df034b339187bc15c", - "dweb:/ipfs/QmQZ1H8PotScE5rSbruZn97MC6pgDNTuCQcjtg8ZWU4SPB" - ], - "license": "CC0" - }, - "src/interface/ierc3156/IERC3156FlashLender.sol": { - "keccak256": "0x1c14bc32c7483a68f5cb3ff65f64a8a32b279472525340033ce8e0b462fd1e72", - "urls": [ - "bzz-raw://e25cbc0c4512d737fd9fb32f30af0f9bcccd10f28870c927057f6bcaac213dd4", - "dweb:/ipfs/Qmey7YDkCTMXgoRDVHUbHRH6f4MJz6mBdfucp7v7bVy1ie" - ], - "license": "CC0" - }, - "src/interface/unstable/IOrderBookV3.sol": { - "keccak256": "0x1aba9fbf5e9c2f410a2c24d56361718ac4ec6d62431ee07107bb83660740b6a1", - "urls": [ - "bzz-raw://12e803376fce4b36bcb7c228faa2aa5360b85688539485212f129b3467e23852", - "dweb:/ipfs/QmV7oBCy2idxp8pY9yhGGcqbdpfVcqgpRvpJ1wYDNg7rZT" - ], - "license": "CAL" - }, - "src/interface/unstable/IOrderBookV3OrderTaker.sol": { - "keccak256": "0x256cda8259c6c344e80ea5db35c7899e2c6f337ca040653ebdf7527e2e1d776e", - "urls": [ - "bzz-raw://5b26e4385457c5c18b0c4cb394d00662364912f082510df6015e0127059c05b9", - "dweb:/ipfs/QmaQmiW8dDDAcfzRJZVavcZo9QLeFrN44obvRydJouJbL1" - ], - "license": "CAL" - }, - "src/lib/LibOrder.sol": { - "keccak256": "0xa170543b2f0250c5ad500f918e83a3618c86aab9b4fdc428b1e9146d6c914bcb", - "urls": [ - "bzz-raw://134077a0303267df981e9b5868e988989e01432e9eb21778c7432c5ee724c615", - "dweb:/ipfs/QmSDbRcrBYQJEitQUCBgv9YZmMDiF6uk4HDGeje4qSe4Zc" - ], - "license": "CAL" - } - }, - "version": 1 - }, - "ast": { - "absolutePath": "src/concrete/OrderBook.sol", - "id": 78179, - "exportedSymbols": { - "CALCULATE_ORDER_ENTRYPOINT": [ - 75941 - ], - "CALCULATE_ORDER_MAX_OUTPUTS": [ - 75957 - ], - "CALCULATE_ORDER_MIN_OUTPUTS": [ - 75953 - ], - "CALLER_META_HASH": [ - 76020 - ], - "CALLING_CONTEXT_COLUMNS": [ - 75969 - ], - "CONTEXT_BASE_COLUMN": [ - 75973 - ], - "CONTEXT_CALCULATIONS_COLUMN": [ - 75981 - ], - "CONTEXT_CALLING_CONTEXT_COLUMN": [ - 75977 - ], - "CONTEXT_VAULT_INPUTS_COLUMN": [ - 75985 - ], - "CONTEXT_VAULT_IO_BALANCE_BEFORE": [ - 76005 - ], - "CONTEXT_VAULT_IO_BALANCE_DIFF": [ - 76009 - ], - "CONTEXT_VAULT_IO_ROWS": [ - 76013 - ], - "CONTEXT_VAULT_IO_TOKEN": [ - 75993 - ], - "CONTEXT_VAULT_IO_TOKEN_DECIMALS": [ - 75997 - ], - "CONTEXT_VAULT_IO_VAULT_ID": [ - 76001 - ], - "CONTEXT_VAULT_OUTPUTS_COLUMN": [ - 75989 - ], - "ClearConfig": [ - 78728 - ], - "ClearStateChange": [ - 78737 - ], - "DeployerDiscoverableMetaV3": [ - 54788 - ], - "DeployerDiscoverableMetaV3ConstructionConfig": [ - 54743 - ], - "EncodedDispatch": [ - 55875 - ], - "EvaluableV2": [ - 55632 - ], - "FLAG_ROUND_UP": [ - 72386 - ], - "FLAG_SATURATE": [ - 72392 - ], - "HANDLE_IO_ENTRYPOINT": [ - 75949 - ], - "HANDLE_IO_MAX_OUTPUTS": [ - 75965 - ], - "HANDLE_IO_MIN_OUTPUTS": [ - 75961 - ], - "IERC20": [ - 44376 - ], - "IExpressionDeployerV3": [ - 55986 - ], - "IInterpreterStoreV1": [ - 55698 - ], - "IInterpreterV2": [ - 56032 - ], - "IOrderBookV3": [ - 79289 - ], - "IOrderBookV3OrderTaker": [ - 79323 - ], - "Input18Amount": [ - 76045 - ], - "LibBytecode": [ - 56710 - ], - "LibContext": [ - 57009 - ], - "LibEncodedDispatch": [ - 57164 - ], - "LibFixedPointDecimalArithmeticOpenZeppelin": [ - 72453 - ], - "LibFixedPointDecimalScale": [ - 72859 - ], - "LibMeta": [ - 73191 - ], - "LibNamespace": [ - 57900 - ], - "LibOrder": [ - 79345 - ], - "LibUint256Array": [ - 73827 - ], - "Math": [ - 46932 - ], - "MinimumInput": [ - 75905 - ], - "Multicall": [ - 45336 - ], - "NoOrders": [ - 78997 - ], - "NotOrderOwner": [ - 75884 - ], - "ORDER_DEAD": [ - 75933 - ], - "ORDER_LIVE": [ - 75929 - ], - "OrderBook": [ - 78178 - ], - "OrderBookV3FlashLender": [ - 75553 - ], - "OrderConfigV2": [ - 79014 - ], - "OrderIOCalculationV2": [ - 76041 - ], - "OrderV2": [ - 79042 - ], - "Output18Amount": [ - 76043 - ], - "ReentrancyGuard": [ - 43711 - ], - "ReentrancyGuardReentrantCall": [ - 75877 - ], - "SafeERC20": [ - 44813 - ], - "SameOwner": [ - 75910 - ], - "SignedContextV1": [ - 55640 - ], - "SourceIndexV2": [ - 55998 - ], - "StateNamespace": [ - 55877 - ], - "TakeOrderConfigV2": [ - 79026 - ], - "TakeOrdersConfigV2": [ - 79055 - ], - "TokenDecimalsMismatch": [ - 75898 - ], - "TokenMismatch": [ - 75891 - ], - "UnsupportedCalculateInputs": [ - 75915 - ], - "UnsupportedCalculateOutputs": [ - 75920 - ], - "UnsupportedHandleInputs": [ - 75925 - ], - "ZeroMaximumInput": [ - 79000 - ] - }, - "nodeType": "SourceUnit", - "src": "32:47201:172", - "nodes": [ - { - "id": 75814, - "nodeType": "PragmaDirective", - "src": "32:24:172", - "nodes": [], - "literals": [ - "solidity", - "=", - "0.8", - ".19" - ] - }, - { - "id": 75816, - "nodeType": "ImportDirective", - "src": "58:74:172", - "nodes": [], - "absolutePath": "lib/openzeppelin-contracts/contracts/utils/math/Math.sol", - "file": "openzeppelin-contracts/contracts/utils/math/Math.sol", - "nameLocation": "-1:-1:-1", - "scope": 78179, - "sourceUnit": 46933, - "symbolAliases": [ - { - "foreign": { - "id": 75815, - "name": "Math", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46932, - "src": "66:4:172", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 75818, - "nodeType": "ImportDirective", - "src": "133:79:172", - "nodes": [], - "absolutePath": "lib/openzeppelin-contracts/contracts/utils/Multicall.sol", - "file": "openzeppelin-contracts/contracts/utils/Multicall.sol", - "nameLocation": "-1:-1:-1", - "scope": 78179, - "sourceUnit": 45337, - "symbolAliases": [ - { - "foreign": { - "id": 75817, - "name": "Multicall", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 45336, - "src": "141:9:172", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 75820, - "nodeType": "ImportDirective", - "src": "213:79:172", - "nodes": [], - "absolutePath": "lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol", - "file": "openzeppelin-contracts/contracts/token/ERC20/IERC20.sol", - "nameLocation": "-1:-1:-1", - "scope": 78179, - "sourceUnit": 44377, - "symbolAliases": [ - { - "foreign": { - "id": 75819, - "name": "IERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 44376, - "src": "221:6:172", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 75822, - "nodeType": "ImportDirective", - "src": "293:91:172", - "nodes": [], - "absolutePath": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol", - "file": "openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol", - "nameLocation": "-1:-1:-1", - "scope": 78179, - "sourceUnit": 44814, - "symbolAliases": [ - { - "foreign": { - "id": 75821, - "name": "SafeERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 44813, - "src": "301:9:172", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 75824, - "nodeType": "ImportDirective", - "src": "385:94:172", - "nodes": [], - "absolutePath": "lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol", - "file": "openzeppelin-contracts/contracts/security/ReentrancyGuard.sol", - "nameLocation": "-1:-1:-1", - "scope": 78179, - "sourceUnit": 43712, - "symbolAliases": [ - { - "foreign": { - "id": 75823, - "name": "ReentrancyGuard", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 43711, - "src": "393:15:172", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 75827, - "nodeType": "ImportDirective", - "src": "481:101:172", - "nodes": [], - "absolutePath": "lib/rain.math.fixedpoint/src/lib/FixedPointDecimalConstants.sol", - "file": "rain.math.fixedpoint/lib/FixedPointDecimalConstants.sol", - "nameLocation": "-1:-1:-1", - "scope": 78179, - "sourceUnit": 72403, - "symbolAliases": [ - { - "foreign": { - "id": 75825, - "name": "FLAG_SATURATE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 72392, - "src": "489:13:172", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - }, - { - "foreign": { - "id": 75826, - "name": "FLAG_ROUND_UP", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 72386, - "src": "504:13:172", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 75829, - "nodeType": "ImportDirective", - "src": "583:135:172", - "nodes": [], - "absolutePath": "lib/rain.math.fixedpoint/src/lib/LibFixedPointDecimalArithmeticOpenZeppelin.sol", - "file": "rain.math.fixedpoint/lib/LibFixedPointDecimalArithmeticOpenZeppelin.sol", - "nameLocation": "-1:-1:-1", - "scope": 78179, - "sourceUnit": 72454, - "symbolAliases": [ - { - "foreign": { - "id": 75828, - "name": "LibFixedPointDecimalArithmeticOpenZeppelin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 72453, - "src": "591:42:172", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 75831, - "nodeType": "ImportDirective", - "src": "719:97:172", - "nodes": [], - "absolutePath": "lib/rain.math.fixedpoint/src/lib/LibFixedPointDecimalScale.sol", - "file": "rain.math.fixedpoint/lib/LibFixedPointDecimalScale.sol", - "nameLocation": "-1:-1:-1", - "scope": 78179, - "sourceUnit": 72860, - "symbolAliases": [ - { - "foreign": { - "id": 75830, - "name": "LibFixedPointDecimalScale", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 72859, - "src": "727:25:172", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 75834, - "nodeType": "ImportDirective", - "src": "817:107:172", - "nodes": [], - "absolutePath": "lib/rain.interpreter/src/lib/caller/LibEncodedDispatch.sol", - "file": "rain.interpreter/src/lib/caller/LibEncodedDispatch.sol", - "nameLocation": "-1:-1:-1", - "scope": 78179, - "sourceUnit": 57165, - "symbolAliases": [ - { - "foreign": { - "id": 75832, - "name": "LibEncodedDispatch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 57164, - "src": "825:18:172", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - }, - { - "foreign": { - "id": 75833, - "name": "EncodedDispatch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 55875, - "src": "845:15:172", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 75836, - "nodeType": "ImportDirective", - "src": "925:74:172", - "nodes": [], - "absolutePath": "lib/rain.interpreter/src/lib/caller/LibContext.sol", - "file": "rain.interpreter/src/lib/caller/LibContext.sol", - "nameLocation": "-1:-1:-1", - "scope": 78179, - "sourceUnit": 57010, - "symbolAliases": [ - { - "foreign": { - "id": 75835, - "name": "LibContext", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 57009, - "src": "933:10:172", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 75840, - "nodeType": "ImportDirective", - "src": "1000:173:172", - "nodes": [], - "absolutePath": "lib/rain.interpreter/src/abstract/DeployerDiscoverableMetaV3.sol", - "file": "rain.interpreter/src/abstract/DeployerDiscoverableMetaV3.sol", - "nameLocation": "-1:-1:-1", - "scope": 78179, - "sourceUnit": 54789, - "symbolAliases": [ - { - "foreign": { - "id": 75837, - "name": "DeployerDiscoverableMetaV3", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 54788, - "src": "1013:26:172", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - }, - { - "foreign": { - "id": 75838, - "name": "DeployerDiscoverableMetaV3ConstructionConfig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 54743, - "src": "1045:44:172", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - }, - { - "foreign": { - "id": 75839, - "name": "LibMeta", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 73191, - "src": "1095:7:172", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 75842, - "nodeType": "ImportDirective", - "src": "1174:78:172", - "nodes": [], - "absolutePath": "lib/rain.interpreter/src/lib/bytecode/LibBytecode.sol", - "file": "rain.interpreter/src/lib/bytecode/LibBytecode.sol", - "nameLocation": "-1:-1:-1", - "scope": 78179, - "sourceUnit": 56711, - "symbolAliases": [ - { - "foreign": { - "id": 75841, - "name": "LibBytecode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 56710, - "src": "1182:11:172", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 75846, - "nodeType": "ImportDirective", - "src": "1253:127:172", - "nodes": [], - "absolutePath": "lib/rain.interpreter/src/interface/unstable/IInterpreterV2.sol", - "file": "rain.interpreter/src/interface/unstable/IInterpreterV2.sol", - "nameLocation": "-1:-1:-1", - "scope": 78179, - "sourceUnit": 56033, - "symbolAliases": [ - { - "foreign": { - "id": 75843, - "name": "SourceIndexV2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 55998, - "src": "1266:13:172", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - }, - { - "foreign": { - "id": 75844, - "name": "StateNamespace", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 55877, - "src": "1281:14:172", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - }, - { - "foreign": { - "id": 75845, - "name": "IInterpreterV2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 56032, - "src": "1297:14:172", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 75856, - "nodeType": "ImportDirective", - "src": "1381:228:172", - "nodes": [], - "absolutePath": "src/interface/unstable/IOrderBookV3.sol", - "file": "../interface/unstable/IOrderBookV3.sol", - "nameLocation": "-1:-1:-1", - "scope": 78179, - "sourceUnit": 79290, - "symbolAliases": [ - { - "foreign": { - "id": 75847, - "name": "IOrderBookV3", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 79289, - "src": "1394:12:172", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - }, - { - "foreign": { - "id": 75848, - "name": "NoOrders", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 78997, - "src": "1412:8:172", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - }, - { - "foreign": { - "id": 75849, - "name": "OrderV2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 79042, - "src": "1426:7:172", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - }, - { - "foreign": { - "id": 75850, - "name": "OrderConfigV2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 79014, - "src": "1439:13:172", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - }, - { - "foreign": { - "id": 75851, - "name": "TakeOrderConfigV2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 79026, - "src": "1458:17:172", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - }, - { - "foreign": { - "id": 75852, - "name": "TakeOrdersConfigV2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 79055, - "src": "1481:18:172", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - }, - { - "foreign": { - "id": 75853, - "name": "ClearConfig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 78728, - "src": "1505:11:172", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - }, - { - "foreign": { - "id": 75854, - "name": "ClearStateChange", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 78737, - "src": "1522:16:172", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - }, - { - "foreign": { - "id": 75855, - "name": "ZeroMaximumInput", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 79000, - "src": "1544:16:172", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 75858, - "nodeType": "ImportDirective", - "src": "1610:88:172", - "nodes": [], - "absolutePath": "src/interface/unstable/IOrderBookV3OrderTaker.sol", - "file": "../interface/unstable/IOrderBookV3OrderTaker.sol", - "nameLocation": "-1:-1:-1", - "scope": 78179, - "sourceUnit": 79324, - "symbolAliases": [ - { - "foreign": { - "id": 75857, - "name": "IOrderBookV3OrderTaker", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 79323, - "src": "1618:22:172", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 75860, - "nodeType": "ImportDirective", - "src": "1699:45:172", - "nodes": [], - "absolutePath": "src/lib/LibOrder.sol", - "file": "../lib/LibOrder.sol", - "nameLocation": "-1:-1:-1", - "scope": 78179, - "sourceUnit": 79346, - "symbolAliases": [ - { - "foreign": { - "id": 75859, - "name": "LibOrder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 79345, - "src": "1707:8:172", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 75862, - "nodeType": "ImportDirective", - "src": "1745:78:172", - "nodes": [], - "absolutePath": "src/abstract/OrderBookV3FlashLender.sol", - "file": "../abstract/OrderBookV3FlashLender.sol", - "nameLocation": "-1:-1:-1", - "scope": 78179, - "sourceUnit": 75554, - "symbolAliases": [ - { - "foreign": { - "id": 75861, - "name": "OrderBookV3FlashLender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 75553, - "src": "1753:22:172", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 75864, - "nodeType": "ImportDirective", - "src": "1824:68:172", - "nodes": [], - "absolutePath": "lib/rain.solmem/src/lib/LibUint256Array.sol", - "file": "rain.solmem/lib/LibUint256Array.sol", - "nameLocation": "-1:-1:-1", - "scope": 78179, - "sourceUnit": 73828, - "symbolAliases": [ - { - "foreign": { - "id": 75863, - "name": "LibUint256Array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 73827, - "src": "1832:15:172", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 75866, - "nodeType": "ImportDirective", - "src": "1893:88:172", - "nodes": [], - "absolutePath": "lib/rain.interpreter/src/interface/IInterpreterCallerV2.sol", - "file": "rain.interpreter/src/interface/IInterpreterCallerV2.sol", - "nameLocation": "-1:-1:-1", - "scope": 78179, - "sourceUnit": 55661, - "symbolAliases": [ - { - "foreign": { - "id": 75865, - "name": "SignedContextV1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 55640, - "src": "1901:15:172", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 75868, - "nodeType": "ImportDirective", - "src": "1982:77:172", - "nodes": [], - "absolutePath": "lib/rain.interpreter/src/lib/caller/LibEvaluable.sol", - "file": "rain.interpreter/src/lib/caller/LibEvaluable.sol", - "nameLocation": "-1:-1:-1", - "scope": 78179, - "sourceUnit": 57188, - "symbolAliases": [ - { - "foreign": { - "id": 75867, - "name": "EvaluableV2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 55632, - "src": "1990:11:172", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 75870, - "nodeType": "ImportDirective", - "src": "2060:91:172", - "nodes": [], - "absolutePath": "lib/rain.interpreter/src/interface/IInterpreterStoreV1.sol", - "file": "rain.interpreter/src/interface/IInterpreterStoreV1.sol", - "nameLocation": "-1:-1:-1", - "scope": 78179, - "sourceUnit": 55699, - "symbolAliases": [ - { - "foreign": { - "id": 75869, - "name": "IInterpreterStoreV1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 55698, - "src": "2068:19:172", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 75872, - "nodeType": "ImportDirective", - "src": "2152:104:172", - "nodes": [], - "absolutePath": "lib/rain.interpreter/src/interface/unstable/IExpressionDeployerV3.sol", - "file": "rain.interpreter/src/interface/unstable/IExpressionDeployerV3.sol", - "nameLocation": "-1:-1:-1", - "scope": 78179, - "sourceUnit": 55987, - "symbolAliases": [ - { - "foreign": { - "id": 75871, - "name": "IExpressionDeployerV3", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 55986, - "src": "2160:21:172", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 75874, - "nodeType": "ImportDirective", - "src": "2257:74:172", - "nodes": [], - "absolutePath": "lib/rain.interpreter/src/lib/ns/LibNamespace.sol", - "file": "rain.interpreter/src/lib/ns/LibNamespace.sol", - "nameLocation": "-1:-1:-1", - "scope": 78179, - "sourceUnit": 57901, - "symbolAliases": [ - { - "foreign": { - "id": 75873, - "name": "LibNamespace", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 57900, - "src": "2265:12:172", - "typeDescriptions": {} - }, - "nameLocation": "-1:-1:-1" - } - ], - "unitAlias": "" - }, - { - "id": 75877, - "nodeType": "ErrorDefinition", - "src": "2434:37:172", - "nodes": [], - "documentation": { - "id": 75875, - "nodeType": "StructuredDocumentation", - "src": "2333:101:172", - "text": "This will exist in a future version of Open Zeppelin if their main branch is\n to be believed." - }, - "errorSelector": "3ee5aeb5", - "name": "ReentrancyGuardReentrantCall", - "nameLocation": "2440:28:172", - "parameters": { - "id": 75876, - "nodeType": "ParameterList", - "parameters": [], - "src": "2468:2:172" - } - }, - { - "id": 75884, - "nodeType": "ErrorDefinition", - "src": "2647:51:172", - "nodes": [], - "documentation": { - "id": 75878, - "nodeType": "StructuredDocumentation", - "src": "2473:174:172", - "text": "Thrown when the `msg.sender` modifying an order is not its owner.\n @param sender `msg.sender` attempting to modify the order.\n @param owner The owner of the order." - }, - "errorSelector": "4702b914", - "name": "NotOrderOwner", - "nameLocation": "2653:13:172", - "parameters": { - "id": 75883, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 75880, - "mutability": "mutable", - "name": "sender", - "nameLocation": "2675:6:172", - "nodeType": "VariableDeclaration", - "scope": 75884, - "src": "2667:14:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 75879, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2667:7:172", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 75882, - "mutability": "mutable", - "name": "owner", - "nameLocation": "2691:5:172", - "nodeType": "VariableDeclaration", - "scope": 75884, - "src": "2683:13:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 75881, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2683:7:172", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "2666:31:172" - } - }, - { - "id": 75891, - "nodeType": "ErrorDefinition", - "src": "2915:58:172", - "nodes": [], - "documentation": { - "id": 75885, - "nodeType": "StructuredDocumentation", - "src": "2700:215:172", - "text": "Thrown when the input and output tokens don't match, in either direction.\n @param aliceToken The input or output of one order.\n @param bobToken The input or output of the other order that doesn't match a." - }, - "errorSelector": "f902523f", - "name": "TokenMismatch", - "nameLocation": "2921:13:172", - "parameters": { - "id": 75890, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 75887, - "mutability": "mutable", - "name": "aliceToken", - "nameLocation": "2943:10:172", - "nodeType": "VariableDeclaration", - "scope": 75891, - "src": "2935:18:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 75886, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2935:7:172", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 75889, - "mutability": "mutable", - "name": "bobToken", - "nameLocation": "2963:8:172", - "nodeType": "VariableDeclaration", - "scope": 75891, - "src": "2955:16:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 75888, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2955:7:172", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "2934:38:172" - } - }, - { - "id": 75898, - "nodeType": "ErrorDefinition", - "src": "3215:78:172", - "nodes": [], - "documentation": { - "id": 75892, - "nodeType": "StructuredDocumentation", - "src": "2975:240:172", - "text": "Thrown when the input and output token decimals don't match, in either\n direction.\n @param aliceTokenDecimals The input or output decimals of one order.\n @param bobTokenDecimals The input or output decimals of the other order." - }, - "errorSelector": "0f6ce477", - "name": "TokenDecimalsMismatch", - "nameLocation": "3221:21:172", - "parameters": { - "id": 75897, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 75894, - "mutability": "mutable", - "name": "aliceTokenDecimals", - "nameLocation": "3249:18:172", - "nodeType": "VariableDeclaration", - "scope": 75898, - "src": "3243:24:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 75893, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "3243:5:172", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 75896, - "mutability": "mutable", - "name": "bobTokenDecimals", - "nameLocation": "3275:16:172", - "nodeType": "VariableDeclaration", - "scope": 75898, - "src": "3269:22:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 75895, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "3269:5:172", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "visibility": "internal" - } - ], - "src": "3242:50:172" - } - }, - { - "id": 75905, - "nodeType": "ErrorDefinition", - "src": "3439:56:172", - "nodes": [], - "documentation": { - "id": 75899, - "nodeType": "StructuredDocumentation", - "src": "3295:144:172", - "text": "Thrown when the minimum input is not met.\n @param minimumInput The minimum input required.\n @param input The input that was achieved." - }, - "errorSelector": "45094d88", - "name": "MinimumInput", - "nameLocation": "3445:12:172", - "parameters": { - "id": 75904, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 75901, - "mutability": "mutable", - "name": "minimumInput", - "nameLocation": "3466:12:172", - "nodeType": "VariableDeclaration", - "scope": 75905, - "src": "3458:20:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 75900, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3458:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 75903, - "mutability": "mutable", - "name": "input", - "nameLocation": "3488:5:172", - "nodeType": "VariableDeclaration", - "scope": 75905, - "src": "3480:13:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 75902, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3480:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3457:37:172" - } - }, - { - "id": 75910, - "nodeType": "ErrorDefinition", - "src": "3601:31:172", - "nodes": [], - "documentation": { - "id": 75906, - "nodeType": "StructuredDocumentation", - "src": "3497:104:172", - "text": "Thrown when two orders have the same owner during clear.\n @param owner The owner of both orders." - }, - "errorSelector": "227e4ce9", - "name": "SameOwner", - "nameLocation": "3607:9:172", - "parameters": { - "id": 75909, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 75908, - "mutability": "mutable", - "name": "owner", - "nameLocation": "3625:5:172", - "nodeType": "VariableDeclaration", - "scope": 75910, - "src": "3617:13:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 75907, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3617:7:172", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "3616:15:172" - } - }, - { - "id": 75915, - "nodeType": "ErrorDefinition", - "src": "3742:49:172", - "nodes": [], - "documentation": { - "id": 75911, - "nodeType": "StructuredDocumentation", - "src": "3634:108:172", - "text": "Thrown when calculate order expression wants inputs.\n @param inputs The inputs the expression wants." - }, - "errorSelector": "9a6f079e", - "name": "UnsupportedCalculateInputs", - "nameLocation": "3748:26:172", - "parameters": { - "id": 75914, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 75913, - "mutability": "mutable", - "name": "inputs", - "nameLocation": "3783:6:172", - "nodeType": "VariableDeclaration", - "scope": 75915, - "src": "3775:14:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 75912, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3775:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3774:16:172" - } - }, - { - "id": 75920, - "nodeType": "ErrorDefinition", - "src": "3914:51:172", - "nodes": [], - "documentation": { - "id": 75916, - "nodeType": "StructuredDocumentation", - "src": "3793:121:172", - "text": "Thrown when calculate order expression offers too few outputs.\n @param outputs The outputs the expression offers." - }, - "errorSelector": "3eee3954", - "name": "UnsupportedCalculateOutputs", - "nameLocation": "3920:27:172", - "parameters": { - "id": 75919, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 75918, - "mutability": "mutable", - "name": "outputs", - "nameLocation": "3956:7:172", - "nodeType": "VariableDeclaration", - "scope": 75920, - "src": "3948:15:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 75917, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3948:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "3947:17:172" - } - }, - { - "id": 75925, - "nodeType": "ErrorDefinition", - "src": "4069:46:172", - "nodes": [], - "documentation": { - "id": 75921, - "nodeType": "StructuredDocumentation", - "src": "3967:102:172", - "text": "Thrown when handle IO expression wants inputs.\n @param inputs The inputs the expression wants." - }, - "errorSelector": "9d5f7098", - "name": "UnsupportedHandleInputs", - "nameLocation": "4075:23:172", - "parameters": { - "id": 75924, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 75923, - "mutability": "mutable", - "name": "inputs", - "nameLocation": "4107:6:172", - "nodeType": "VariableDeclaration", - "scope": 75925, - "src": "4099:14:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 75922, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4099:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "4098:16:172" - } - }, - { - "id": 75929, - "nodeType": "VariableDeclaration", - "src": "4243:31:172", - "nodes": [], - "constant": true, - "mutability": "constant", - "name": "ORDER_LIVE", - "nameLocation": "4260:10:172", - "scope": 78179, - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 75927, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4243:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "hexValue": "31", - "id": 75928, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4273:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "visibility": "internal" - }, - { - "id": 75933, - "nodeType": "VariableDeclaration", - "src": "4447:31:172", - "nodes": [], - "constant": true, - "mutability": "constant", - "name": "ORDER_DEAD", - "nameLocation": "4464:10:172", - "scope": 78179, - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 75931, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4447:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "hexValue": "30", - "id": 75932, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4477:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "visibility": "internal" - }, - { - "id": 75941, - "nodeType": "VariableDeclaration", - "src": "4550:73:172", - "nodes": [], - "constant": true, - "mutability": "constant", - "name": "CALCULATE_ORDER_ENTRYPOINT", - "nameLocation": "4573:26:172", - "scope": 78179, - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_SourceIndexV2_$55998", - "typeString": "SourceIndexV2" - }, - "typeName": { - "id": 75936, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 75935, - "name": "SourceIndexV2", - "nameLocations": [ - "4550:13:172" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 55998, - "src": "4550:13:172" - }, - "referencedDeclaration": 55998, - "src": "4550:13:172", - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_SourceIndexV2_$55998", - "typeString": "SourceIndexV2" - } - }, - "value": { - "arguments": [ - { - "hexValue": "30", - "id": 75939, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4621:1:172", - "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" - } - ], - "expression": { - "id": 75937, - "name": "SourceIndexV2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 55998, - "src": "4602:13:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_userDefinedValueType$_SourceIndexV2_$55998_$", - "typeString": "type(SourceIndexV2)" - } - }, - "id": 75938, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "4616:4:172", - "memberName": "wrap", - "nodeType": "MemberAccess", - "src": "4602:18:172", - "typeDescriptions": { - "typeIdentifier": "t_function_wrap_pure$_t_uint256_$returns$_t_userDefinedValueType$_SourceIndexV2_$55998_$", - "typeString": "function (uint256) pure returns (SourceIndexV2)" - } - }, - "id": 75940, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4602:21:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_SourceIndexV2_$55998", - "typeString": "SourceIndexV2" - } - }, - "visibility": "internal" - }, - { - "id": 75949, - "nodeType": "VariableDeclaration", - "src": "4746:67:172", - "nodes": [], - "constant": true, - "mutability": "constant", - "name": "HANDLE_IO_ENTRYPOINT", - "nameLocation": "4769:20:172", - "scope": 78179, - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_SourceIndexV2_$55998", - "typeString": "SourceIndexV2" - }, - "typeName": { - "id": 75944, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 75943, - "name": "SourceIndexV2", - "nameLocations": [ - "4746:13:172" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 55998, - "src": "4746:13:172" - }, - "referencedDeclaration": 55998, - "src": "4746:13:172", - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_SourceIndexV2_$55998", - "typeString": "SourceIndexV2" - } - }, - "value": { - "arguments": [ - { - "hexValue": "31", - "id": 75947, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4811:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "id": 75945, - "name": "SourceIndexV2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 55998, - "src": "4792:13:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_userDefinedValueType$_SourceIndexV2_$55998_$", - "typeString": "type(SourceIndexV2)" - } - }, - "id": 75946, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "4806:4:172", - "memberName": "wrap", - "nodeType": "MemberAccess", - "src": "4792:18:172", - "typeDescriptions": { - "typeIdentifier": "t_function_wrap_pure$_t_uint256_$returns$_t_userDefinedValueType$_SourceIndexV2_$55998_$", - "typeString": "function (uint256) pure returns (SourceIndexV2)" - } - }, - "id": 75948, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "4792:21:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_SourceIndexV2_$55998", - "typeString": "SourceIndexV2" - } - }, - "visibility": "internal" - }, - { - "id": 75953, - "nodeType": "VariableDeclaration", - "src": "4887:48:172", - "nodes": [], - "constant": true, - "mutability": "constant", - "name": "CALCULATE_ORDER_MIN_OUTPUTS", - "nameLocation": "4904:27:172", - "scope": 78179, - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 75951, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4887:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "hexValue": "32", - "id": 75952, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4934:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "visibility": "internal" - }, - { - "id": 75957, - "nodeType": "VariableDeclaration", - "src": "5008:47:172", - "nodes": [], - "constant": true, - "mutability": "constant", - "name": "CALCULATE_ORDER_MAX_OUTPUTS", - "nameLocation": "5024:27:172", - "scope": 78179, - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 75955, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "5008:6:172", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": { - "hexValue": "32", - "id": 75956, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5054:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "visibility": "internal" - }, - { - "id": 75961, - "nodeType": "VariableDeclaration", - "src": "5132:42:172", - "nodes": [], - "constant": true, - "mutability": "constant", - "name": "HANDLE_IO_MIN_OUTPUTS", - "nameLocation": "5149:21:172", - "scope": 78179, - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 75959, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5132:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "hexValue": "30", - "id": 75960, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5173:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "visibility": "internal" - }, - { - "id": 75965, - "nodeType": "VariableDeclaration", - "src": "5250:41:172", - "nodes": [], - "constant": true, - "mutability": "constant", - "name": "HANDLE_IO_MAX_OUTPUTS", - "nameLocation": "5266:21:172", - "scope": 78179, - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 75963, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "5250:6:172", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": { - "hexValue": "30", - "id": 75964, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5290:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "visibility": "internal" - }, - { - "id": 75969, - "nodeType": "VariableDeclaration", - "src": "5829:44:172", - "nodes": [], - "constant": true, - "mutability": "constant", - "name": "CALLING_CONTEXT_COLUMNS", - "nameLocation": "5846:23:172", - "scope": 78179, - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 75967, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5829:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "hexValue": "34", - "id": 75968, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5872:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "value": "4" - }, - "visibility": "internal" - }, - { - "id": 75973, - "nodeType": "VariableDeclaration", - "src": "5914:40:172", - "nodes": [], - "constant": true, - "mutability": "constant", - "name": "CONTEXT_BASE_COLUMN", - "nameLocation": "5931:19:172", - "scope": 78179, - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 75971, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5914:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "hexValue": "30", - "id": 75972, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5953:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "visibility": "internal" - }, - { - "id": 75977, - "nodeType": "VariableDeclaration", - "src": "6255:51:172", - "nodes": [], - "constant": true, - "mutability": "constant", - "name": "CONTEXT_CALLING_CONTEXT_COLUMN", - "nameLocation": "6272:30:172", - "scope": 78179, - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 75975, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6255:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "hexValue": "31", - "id": 75976, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6305:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "visibility": "internal" - }, - { - "id": 75981, - "nodeType": "VariableDeclaration", - "src": "6453:48:172", - "nodes": [], - "constant": true, - "mutability": "constant", - "name": "CONTEXT_CALCULATIONS_COLUMN", - "nameLocation": "6470:27:172", - "scope": 78179, - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 75979, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6453:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "hexValue": "32", - "id": 75980, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6500:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "visibility": "internal" - }, - { - "id": 75985, - "nodeType": "VariableDeclaration", - "src": "6793:48:172", - "nodes": [], - "constant": true, - "mutability": "constant", - "name": "CONTEXT_VAULT_INPUTS_COLUMN", - "nameLocation": "6810:27:172", - "scope": 78179, - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 75983, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6793:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "hexValue": "33", - "id": 75984, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6840:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_3_by_1", - "typeString": "int_const 3" - }, - "value": "3" - }, - "visibility": "internal" - }, - { - "id": 75989, - "nodeType": "VariableDeclaration", - "src": "6959:49:172", - "nodes": [], - "constant": true, - "mutability": "constant", - "name": "CONTEXT_VAULT_OUTPUTS_COLUMN", - "nameLocation": "6976:28:172", - "scope": 78179, - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 75987, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6959:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "hexValue": "34", - "id": 75988, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7007:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "value": "4" - }, - "visibility": "internal" - }, - { - "id": 75993, - "nodeType": "VariableDeclaration", - "src": "7083:43:172", - "nodes": [], - "constant": true, - "mutability": "constant", - "name": "CONTEXT_VAULT_IO_TOKEN", - "nameLocation": "7100:22:172", - "scope": 78179, - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 75991, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7083:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "hexValue": "30", - "id": 75992, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7125:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "visibility": "internal" - }, - { - "id": 75997, - "nodeType": "VariableDeclaration", - "src": "7201:52:172", - "nodes": [], - "constant": true, - "mutability": "constant", - "name": "CONTEXT_VAULT_IO_TOKEN_DECIMALS", - "nameLocation": "7218:31:172", - "scope": 78179, - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 75995, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7201:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "hexValue": "31", - "id": 75996, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7252:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "visibility": "internal" - }, - { - "id": 76001, - "nodeType": "VariableDeclaration", - "src": "7322:46:172", - "nodes": [], - "constant": true, - "mutability": "constant", - "name": "CONTEXT_VAULT_IO_VAULT_ID", - "nameLocation": "7339:25:172", - "scope": 78179, - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 75999, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7322:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "hexValue": "32", - "id": 76000, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7367:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "visibility": "internal" - }, - { - "id": 76005, - "nodeType": "VariableDeclaration", - "src": "7475:52:172", - "nodes": [], - "constant": true, - "mutability": "constant", - "name": "CONTEXT_VAULT_IO_BALANCE_BEFORE", - "nameLocation": "7492:31:172", - "scope": 78179, - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 76003, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7475:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "hexValue": "33", - "id": 76004, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7526:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_3_by_1", - "typeString": "int_const 3" - }, - "value": "3" - }, - "visibility": "internal" - }, - { - "id": 76009, - "nodeType": "VariableDeclaration", - "src": "7775:50:172", - "nodes": [], - "constant": true, - "mutability": "constant", - "name": "CONTEXT_VAULT_IO_BALANCE_DIFF", - "nameLocation": "7792:29:172", - "scope": 78179, - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 76007, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7775:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "hexValue": "34", - "id": 76008, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7824:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "value": "4" - }, - "visibility": "internal" - }, - { - "id": 76013, - "nodeType": "VariableDeclaration", - "src": "7865:42:172", - "nodes": [], - "constant": true, - "mutability": "constant", - "name": "CONTEXT_VAULT_IO_ROWS", - "nameLocation": "7882:21:172", - "scope": 78179, - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 76011, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7865:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "hexValue": "35", - "id": 76012, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7906:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_5_by_1", - "typeString": "int_const 5" - }, - "value": "5" - }, - "visibility": "internal" - }, - { - "id": 76020, - "nodeType": "VariableDeclaration", - "src": "7974:111:172", - "nodes": [], - "constant": true, - "mutability": "constant", - "name": "CALLER_META_HASH", - "nameLocation": "7991:16:172", - "scope": 78179, - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 76015, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7974:7:172", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "arguments": [ - { - "hexValue": "307834333833646433633561353537663136313033383934303136316638383039363365316434613331653866326461373731343237623839313935366164383331", - "id": 76018, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8018:66:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_30537944733617534553462360936136264253483338970165795821887900705454115444785_by_1", - "typeString": "int_const 3053...(69 digits omitted)...4785" - }, - "value": "0x4383dd3c5a557f161038940161f880963e1d4a31e8f2da771427b891956ad831" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_30537944733617534553462360936136264253483338970165795821887900705454115444785_by_1", - "typeString": "int_const 3053...(69 digits omitted)...4785" - } - ], - "id": 76017, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8010:7:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes32_$", - "typeString": "type(bytes32)" - }, - "typeName": { - "id": 76016, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "8010:7:172", - "typeDescriptions": {} - } - }, - "id": 76019, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "8010:75:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - }, - { - "id": 76041, - "nodeType": "StructDefinition", - "src": "10212:253:172", - "nodes": [], - "canonicalName": "OrderIOCalculationV2", - "members": [ - { - "constant": false, - "id": 76023, - "mutability": "mutable", - "name": "order", - "nameLocation": "10254:5:172", - "nodeType": "VariableDeclaration", - "scope": 76041, - "src": "10246:13:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_storage_ptr", - "typeString": "struct OrderV2" - }, - "typeName": { - "id": 76022, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 76021, - "name": "OrderV2", - "nameLocations": [ - "10246:7:172" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 79042, - "src": "10246:7:172" - }, - "referencedDeclaration": 79042, - "src": "10246:7:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_storage_ptr", - "typeString": "struct OrderV2" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 76025, - "mutability": "mutable", - "name": "outputIOIndex", - "nameLocation": "10273:13:172", - "nodeType": "VariableDeclaration", - "scope": 76041, - "src": "10265:21:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 76024, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10265:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 76028, - "mutability": "mutable", - "name": "outputMax", - "nameLocation": "10307:9:172", - "nodeType": "VariableDeclaration", - "scope": 76041, - "src": "10292:24:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_Output18Amount_$76043", - "typeString": "Output18Amount" - }, - "typeName": { - "id": 76027, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 76026, - "name": "Output18Amount", - "nameLocations": [ - "10292:14:172" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 76043, - "src": "10292:14:172" - }, - "referencedDeclaration": 76043, - "src": "10292:14:172", - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_Output18Amount_$76043", - "typeString": "Output18Amount" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 76030, - "mutability": "mutable", - "name": "IORatio", - "nameLocation": "10381:7:172", - "nodeType": "VariableDeclaration", - "scope": 76041, - "src": "10373:15:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 76029, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10373:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 76034, - "mutability": "mutable", - "name": "context", - "nameLocation": "10406:7:172", - "nodeType": "VariableDeclaration", - "scope": 76041, - "src": "10394:19:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$dyn_storage_$dyn_storage_ptr", - "typeString": "uint256[][]" - }, - "typeName": { - "baseType": { - "baseType": { - "id": 76031, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10394:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 76032, - "nodeType": "ArrayTypeName", - "src": "10394:9:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "id": 76033, - "nodeType": "ArrayTypeName", - "src": "10394:11:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$dyn_storage_$dyn_storage_ptr", - "typeString": "uint256[][]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 76037, - "mutability": "mutable", - "name": "namespace", - "nameLocation": "10434:9:172", - "nodeType": "VariableDeclaration", - "scope": 76041, - "src": "10419:24:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_StateNamespace_$55877", - "typeString": "StateNamespace" - }, - "typeName": { - "id": 76036, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 76035, - "name": "StateNamespace", - "nameLocations": [ - "10419:14:172" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 55877, - "src": "10419:14:172" - }, - "referencedDeclaration": 55877, - "src": "10419:14:172", - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_StateNamespace_$55877", - "typeString": "StateNamespace" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 76040, - "mutability": "mutable", - "name": "kvs", - "nameLocation": "10459:3:172", - "nodeType": "VariableDeclaration", - "scope": 76041, - "src": "10449:13:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 76038, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10449:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 76039, - "nodeType": "ArrayTypeName", - "src": "10449:9:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "visibility": "internal" - } - ], - "name": "OrderIOCalculationV2", - "nameLocation": "10219:20:172", - "scope": 78179, - "visibility": "public" - }, - { - "id": 76043, - "nodeType": "UserDefinedValueTypeDefinition", - "src": "10467:31:172", - "nodes": [], - "canonicalName": "Output18Amount", - "name": "Output18Amount", - "nameLocation": "10472:14:172", - "underlyingType": { - "id": 76042, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10490:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "id": 76045, - "nodeType": "UserDefinedValueTypeDefinition", - "src": "10500:30:172", - "nodes": [], - "canonicalName": "Input18Amount", - "name": "Input18Amount", - "nameLocation": "10505:13:172", - "underlyingType": { - "id": 76044, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10522:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "id": 78178, - "nodeType": "ContractDefinition", - "src": "10600:36632:172", - "nodes": [ - { - "id": 76060, - "nodeType": "UsingForDirective", - "src": "10721:36:172", - "nodes": [], - "global": false, - "libraryName": { - "id": 76057, - "name": "LibUint256Array", - "nameLocations": [ - "10727:15:172" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 73827, - "src": "10727:15:172" - }, - "typeName": { - "baseType": { - "id": 76058, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10747:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 76059, - "nodeType": "ArrayTypeName", - "src": "10747:9:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - } - }, - { - "id": 76064, - "nodeType": "UsingForDirective", - "src": "10762:27:172", - "nodes": [], - "global": false, - "libraryName": { - "id": 76061, - "name": "SafeERC20", - "nameLocations": [ - "10768:9:172" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 44813, - "src": "10768:9:172" - }, - "typeName": { - "id": 76063, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 76062, - "name": "IERC20", - "nameLocations": [ - "10782:6:172" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 44376, - "src": "10782:6:172" - }, - "referencedDeclaration": 44376, - "src": "10782:6:172", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$44376", - "typeString": "contract IERC20" - } - } - }, - { - "id": 76068, - "nodeType": "UsingForDirective", - "src": "10794:27:172", - "nodes": [], - "global": false, - "libraryName": { - "id": 76065, - "name": "LibOrder", - "nameLocations": [ - "10800:8:172" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 79345, - "src": "10800:8:172" - }, - "typeName": { - "id": 76067, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 76066, - "name": "OrderV2", - "nameLocations": [ - "10813:7:172" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 79042, - "src": "10813:7:172" - }, - "referencedDeclaration": 79042, - "src": "10813:7:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_storage_ptr", - "typeString": "struct OrderV2" - } - } - }, - { - "id": 76071, - "nodeType": "UsingForDirective", - "src": "10826:34:172", - "nodes": [], - "global": false, - "libraryName": { - "id": 76069, - "name": "LibUint256Array", - "nameLocations": [ - "10832:15:172" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 73827, - "src": "10832:15:172" - }, - "typeName": { - "id": 76070, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10852:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "id": 76074, - "nodeType": "UsingForDirective", - "src": "10865:23:172", - "nodes": [], - "global": false, - "libraryName": { - "id": 76072, - "name": "Math", - "nameLocations": [ - "10871:4:172" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 46932, - "src": "10871:4:172" - }, - "typeName": { - "id": 76073, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10880:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "id": 76077, - "nodeType": "UsingForDirective", - "src": "10893:44:172", - "nodes": [], - "global": false, - "libraryName": { - "id": 76075, - "name": "LibFixedPointDecimalScale", - "nameLocations": [ - "10899:25:172" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 72859, - "src": "10899:25:172" - }, - "typeName": { - "id": 76076, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10929:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "id": 76080, - "nodeType": "UsingForDirective", - "src": "10942:61:172", - "nodes": [], - "global": false, - "libraryName": { - "id": 76078, - "name": "LibFixedPointDecimalArithmeticOpenZeppelin", - "nameLocations": [ - "10948:42:172" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 72453, - "src": "10948:42:172" - }, - "typeName": { - "id": 76079, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10995:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "id": 76085, - "nodeType": "VariableDeclaration", - "src": "11602:63:172", - "nodes": [], - "constant": false, - "documentation": { - "id": 76081, - "nodeType": "StructuredDocumentation", - "src": "11009:465:172", - "text": "All hashes of all active orders. There's nothing interesting in the value\n it's just nonzero if the order is live. The key is the hash of the order.\n Removing an order sets the value back to zero so it is identical to the\n order never existing.\n The order hash includes its owner so there's no need to build a multi\n level mapping, each order hash MUST uniquely identify the order globally.\n order hash => order is live" - }, - "mutability": "mutable", - "name": "sOrders", - "nameLocation": "11658:7:172", - "scope": 78178, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "typeName": { - "id": 76084, - "keyName": "orderHash", - "keyNameLocation": "11618:9:172", - "keyType": { - "id": 76082, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "11610:7:172", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "11602:46:172", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - }, - "valueName": "liveness", - "valueNameLocation": "11639:8:172", - "valueType": { - "id": 76083, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11631:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "visibility": "internal" - }, - { - "id": 76094, - "nodeType": "VariableDeclaration", - "src": "12013:127:172", - "nodes": [], - "constant": false, - "documentation": { - "id": 76086, - "nodeType": "StructuredDocumentation", - "src": "11672:213:172", - "text": "@dev Vault balances are stored in a mapping of owner => token => vault ID\n This gives 1:1 parity with the `IOrderBookV1` interface but keeping the\n `sFoo` naming convention for storage variables." - }, - "mutability": "mutable", - "name": "sVaultBalances", - "nameLocation": "12126:14:172", - "scope": 78178, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$_$", - "typeString": "mapping(address => mapping(address => mapping(uint256 => uint256)))" - }, - "typeName": { - "id": 76093, - "keyName": "owner", - "keyNameLocation": "12029:5:172", - "keyType": { - "id": 76087, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12021:7:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12013:95:172", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$_$", - "typeString": "mapping(address => mapping(address => mapping(uint256 => uint256)))" - }, - "valueName": "", - "valueNameLocation": "-1:-1:-1", - "valueType": { - "id": 76092, - "keyName": "token", - "keyNameLocation": "12054:5:172", - "keyType": { - "id": 76088, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12046:7:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "12038:69:172", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(uint256 => uint256))" - }, - "valueName": "", - "valueNameLocation": "-1:-1:-1", - "valueType": { - "id": 76091, - "keyName": "vaultId", - "keyNameLocation": "12079:7:172", - "keyType": { - "id": 76089, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12071:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "12063:43:172", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - }, - "valueName": "balance", - "valueNameLocation": "12098:7:172", - "valueType": { - "id": 76090, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12090:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - } - } - }, - "visibility": "internal" - }, - { - "id": 76106, - "nodeType": "FunctionDefinition", - "src": "12442:139:172", - "nodes": [], - "body": { - "id": 76105, - "nodeType": "Block", - "src": "12579:2:172", - "nodes": [], - "statements": [] - }, - "documentation": { - "id": 76095, - "nodeType": "StructuredDocumentation", - "src": "12147:290:172", - "text": "Initializes the orderbook upon construction for compatibility with\n Open Zeppelin upgradeable contracts. Orderbook itself does NOT support\n factory deployments as each order is a unique expression deployment\n rather than needing to wrap up expressions with proxies." - }, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "id": 76101, - "name": "CALLER_META_HASH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76020, - "src": "12549:16:172", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "id": 76102, - "name": "config", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76098, - "src": "12567:6:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DeployerDiscoverableMetaV3ConstructionConfig_$54743_memory_ptr", - "typeString": "struct DeployerDiscoverableMetaV3ConstructionConfig memory" - } - } - ], - "id": 76103, - "kind": "baseConstructorSpecifier", - "modifierName": { - "id": 76100, - "name": "DeployerDiscoverableMetaV3", - "nameLocations": [ - "12522:26:172" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 54788, - "src": "12522:26:172" - }, - "nodeType": "ModifierInvocation", - "src": "12522:52:172" - } - ], - "name": "", - "nameLocation": "-1:-1:-1", - "parameters": { - "id": 76099, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 76098, - "mutability": "mutable", - "name": "config", - "nameLocation": "12506:6:172", - "nodeType": "VariableDeclaration", - "scope": 76106, - "src": "12454:58:172", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DeployerDiscoverableMetaV3ConstructionConfig_$54743_memory_ptr", - "typeString": "struct DeployerDiscoverableMetaV3ConstructionConfig" - }, - "typeName": { - "id": 76097, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 76096, - "name": "DeployerDiscoverableMetaV3ConstructionConfig", - "nameLocations": [ - "12454:44:172" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 54743, - "src": "12454:44:172" - }, - "referencedDeclaration": 54743, - "src": "12454:44:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DeployerDiscoverableMetaV3ConstructionConfig_$54743_storage_ptr", - "typeString": "struct DeployerDiscoverableMetaV3ConstructionConfig" - } - }, - "visibility": "internal" - } - ], - "src": "12453:60:172" - }, - "returnParameters": { - "id": 76104, - "nodeType": "ParameterList", - "parameters": [], - "src": "12579:0:172" - }, - "scope": 78178, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "id": 76128, - "nodeType": "FunctionDefinition", - "src": "12620:171:172", - "nodes": [], - "body": { - "id": 76127, - "nodeType": "Block", - "src": "12730:61:172", - "nodes": [], - "statements": [ - { - "expression": { - "baseExpression": { - "baseExpression": { - "baseExpression": { - "id": 76119, - "name": "sVaultBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76094, - "src": "12747:14:172", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$_$", - "typeString": "mapping(address => mapping(address => mapping(uint256 => uint256)))" - } - }, - "id": 76121, - "indexExpression": { - "id": 76120, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76109, - "src": "12762:5:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12747:21:172", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(uint256 => uint256))" - } - }, - "id": 76123, - "indexExpression": { - "id": 76122, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76111, - "src": "12769:5:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12747:28:172", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 76125, - "indexExpression": { - "id": 76124, - "name": "vaultId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76113, - "src": "12776:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12747:37:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 76118, - "id": 76126, - "nodeType": "Return", - "src": "12740:44:172" - } - ] - }, - "baseFunctions": [ - 79210 - ], - "documentation": { - "id": 76107, - "nodeType": "StructuredDocumentation", - "src": "12587:28:172", - "text": "@inheritdoc IOrderBookV3" - }, - "functionSelector": "d97b2e48", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "vaultBalance", - "nameLocation": "12629:12:172", - "overrides": { - "id": 76115, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "12703:8:172" - }, - "parameters": { - "id": 76114, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 76109, - "mutability": "mutable", - "name": "owner", - "nameLocation": "12650:5:172", - "nodeType": "VariableDeclaration", - "scope": 76128, - "src": "12642:13:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 76108, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12642:7:172", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 76111, - "mutability": "mutable", - "name": "token", - "nameLocation": "12665:5:172", - "nodeType": "VariableDeclaration", - "scope": 76128, - "src": "12657:13:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 76110, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12657:7:172", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 76113, - "mutability": "mutable", - "name": "vaultId", - "nameLocation": "12680:7:172", - "nodeType": "VariableDeclaration", - "scope": 76128, - "src": "12672:15:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 76112, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12672:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "12641:47:172" - }, - "returnParameters": { - "id": 76118, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 76117, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 76128, - "src": "12721:7:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 76116, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12721:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "12720:9:172" - }, - "scope": 78178, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 76144, - "nodeType": "FunctionDefinition", - "src": "12830:134:172", - "nodes": [], - "body": { - "id": 76143, - "nodeType": "Block", - "src": "12908:56:172", - "nodes": [], - "statements": [ - { - "expression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 76141, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "baseExpression": { - "id": 76137, - "name": "sOrders", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76085, - "src": "12925:7:172", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 76139, - "indexExpression": { - "id": 76138, - "name": "orderHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76131, - "src": "12933:9:172", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12925:18:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "id": 76140, - "name": "ORDER_LIVE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 75929, - "src": "12947:10:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "12925:32:172", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 76136, - "id": 76142, - "nodeType": "Return", - "src": "12918:39:172" - } - ] - }, - "baseFunctions": [ - 79247 - ], - "documentation": { - "id": 76129, - "nodeType": "StructuredDocumentation", - "src": "12797:28:172", - "text": "@inheritdoc IOrderBookV3" - }, - "functionSelector": "2cb77e9f", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "orderExists", - "nameLocation": "12839:11:172", - "overrides": { - "id": 76133, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "12884:8:172" - }, - "parameters": { - "id": 76132, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 76131, - "mutability": "mutable", - "name": "orderHash", - "nameLocation": "12859:9:172", - "nodeType": "VariableDeclaration", - "scope": 76144, - "src": "12851:17:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 76130, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "12851:7:172", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "src": "12850:19:172" - }, - "returnParameters": { - "id": 76136, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 76135, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 76144, - "src": "12902:4:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 76134, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "12902:4:172", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "12901:6:172" - }, - "scope": 78178, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 76201, - "nodeType": "FunctionDefinition", - "src": "13003:640:172", - "nodes": [], - "body": { - "id": 76200, - "nodeType": "Block", - "src": "13090:553:172", - "nodes": [], - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 76158, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 76156, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76151, - "src": "13104:6:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 76157, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13114:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "13104:11:172", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 76167, - "nodeType": "IfStatement", - "src": "13100:94:172", - "trueBody": { - "id": 76166, - "nodeType": "Block", - "src": "13117:77:172", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "expression": { - "id": 76160, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "13156:3:172", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 76161, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "13160:6:172", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "13156:10:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 76162, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76147, - "src": "13168:5:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 76163, - "name": "vaultId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76149, - "src": "13175:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 76159, - "name": "ZeroDepositAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 79069, - "src": "13138:17:172", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256) pure" - } - }, - "id": 76164, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13138:45:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 76165, - "nodeType": "RevertStatement", - "src": "13131:52:172" - } - ] - } - }, - { - "eventCall": { - "arguments": [ - { - "expression": { - "id": 76169, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "13410:3:172", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 76170, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "13414:6:172", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "13410:10:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 76171, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76147, - "src": "13422:5:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 76172, - "name": "vaultId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76149, - "src": "13429:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 76173, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76151, - "src": "13438:6:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 76168, - "name": "Deposit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 79101, - "src": "13402:7:172", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256,uint256)" - } - }, - "id": 76174, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13402:43:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 76175, - "nodeType": "EmitStatement", - "src": "13397:48:172" - }, - { - "expression": { - "arguments": [ - { - "expression": { - "id": 76180, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "13540:3:172", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 76181, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "13544:6:172", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "13540:10:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [ - { - "id": 76184, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "13560:4:172", - "typeDescriptions": { - "typeIdentifier": "t_contract$_OrderBook_$78178", - "typeString": "contract OrderBook" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_OrderBook_$78178", - "typeString": "contract OrderBook" - } - ], - "id": 76183, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13552:7:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 76182, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13552:7:172", - "typeDescriptions": {} - } - }, - "id": 76185, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13552:13:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 76186, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76151, - "src": "13567:6:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "arguments": [ - { - "id": 76177, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76147, - "src": "13516:5:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 76176, - "name": "IERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 44376, - "src": "13509:6:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$44376_$", - "typeString": "type(contract IERC20)" - } - }, - "id": 76178, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13509:13:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$44376", - "typeString": "contract IERC20" - } - }, - "id": 76179, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "13523:16:172", - "memberName": "safeTransferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 44497, - "src": "13509:30:172", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$44376_$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$44376_$", - "typeString": "function (contract IERC20,address,address,uint256)" - } - }, - "id": 76187, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13509:65:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 76188, - "nodeType": "ExpressionStatement", - "src": "13509:65:172" - }, - { - "expression": { - "id": 76198, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "baseExpression": { - "baseExpression": { - "id": 76189, - "name": "sVaultBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76094, - "src": "13584:14:172", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$_$", - "typeString": "mapping(address => mapping(address => mapping(uint256 => uint256)))" - } - }, - "id": 76194, - "indexExpression": { - "expression": { - "id": 76190, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "13599:3:172", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 76191, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "13603:6:172", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "13599:10:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13584:26:172", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(uint256 => uint256))" - } - }, - "id": 76195, - "indexExpression": { - "id": 76192, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76147, - "src": "13611:5:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13584:33:172", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 76196, - "indexExpression": { - "id": 76193, - "name": "vaultId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76149, - "src": "13618:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "13584:42:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "id": 76197, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76151, - "src": "13630:6:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "13584:52:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 76199, - "nodeType": "ExpressionStatement", - "src": "13584:52:172" - } - ] - }, - "baseFunctions": [ - 79220 - ], - "documentation": { - "id": 76145, - "nodeType": "StructuredDocumentation", - "src": "12970:28:172", - "text": "@inheritdoc IOrderBookV3" - }, - "functionSelector": "0efe6a8b", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 76154, - "kind": "modifierInvocation", - "modifierName": { - "id": 76153, - "name": "nonReentrant", - "nameLocations": [ - "13077:12:172" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 43676, - "src": "13077:12:172" - }, - "nodeType": "ModifierInvocation", - "src": "13077:12:172" - } - ], - "name": "deposit", - "nameLocation": "13012:7:172", - "parameters": { - "id": 76152, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 76147, - "mutability": "mutable", - "name": "token", - "nameLocation": "13028:5:172", - "nodeType": "VariableDeclaration", - "scope": 76201, - "src": "13020:13:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 76146, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13020:7:172", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 76149, - "mutability": "mutable", - "name": "vaultId", - "nameLocation": "13043:7:172", - "nodeType": "VariableDeclaration", - "scope": 76201, - "src": "13035:15:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 76148, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13035:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 76151, - "mutability": "mutable", - "name": "amount", - "nameLocation": "13060:6:172", - "nodeType": "VariableDeclaration", - "scope": 76201, - "src": "13052:14:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 76150, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13052:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "13019:48:172" - }, - "returnParameters": { - "id": 76155, - "nodeType": "ParameterList", - "parameters": [], - "src": "13090:0:172" - }, - "scope": 78178, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 76280, - "nodeType": "FunctionDefinition", - "src": "13682:940:172", - "nodes": [], - "body": { - "id": 76279, - "nodeType": "Block", - "src": "13776:846:172", - "nodes": [], - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 76215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 76213, - "name": "targetAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76208, - "src": "13790:12:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 76214, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13806:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "13790:17:172", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 76224, - "nodeType": "IfStatement", - "src": "13786:107:172", - "trueBody": { - "id": 76223, - "nodeType": "Block", - "src": "13809:84:172", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "expression": { - "id": 76217, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "13855:3:172", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 76218, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "13859:6:172", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "13855:10:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 76219, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76204, - "src": "13867:5:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 76220, - "name": "vaultId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76206, - "src": "13874:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 76216, - "name": "ZeroWithdrawTargetAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 79078, - "src": "13830:24:172", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256) pure" - } - }, - "id": 76221, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "13830:52:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 76222, - "nodeType": "RevertStatement", - "src": "13823:59:172" - } - ] - } - }, - { - "assignments": [ - 76226 - ], - "declarations": [ - { - "constant": false, - "id": 76226, - "mutability": "mutable", - "name": "currentVaultBalance", - "nameLocation": "13910:19:172", - "nodeType": "VariableDeclaration", - "scope": 76279, - "src": "13902:27:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 76225, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13902:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 76235, - "initialValue": { - "baseExpression": { - "baseExpression": { - "baseExpression": { - "id": 76227, - "name": "sVaultBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76094, - "src": "13932:14:172", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$_$", - "typeString": "mapping(address => mapping(address => mapping(uint256 => uint256)))" - } - }, - "id": 76230, - "indexExpression": { - "expression": { - "id": 76228, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "13947:3:172", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 76229, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "13951:6:172", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "13947:10:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13932:26:172", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(uint256 => uint256))" - } - }, - "id": 76232, - "indexExpression": { - "id": 76231, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76204, - "src": "13959:5:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13932:33:172", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 76234, - "indexExpression": { - "id": 76233, - "name": "vaultId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76206, - "src": "13966:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13932:42:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13902:72:172" - }, - { - "assignments": [ - 76237 - ], - "declarations": [ - { - "constant": false, - "id": 76237, - "mutability": "mutable", - "name": "withdrawAmount", - "nameLocation": "14064:14:172", - "nodeType": "VariableDeclaration", - "scope": 76279, - "src": "14056:22:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 76236, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14056:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 76242, - "initialValue": { - "arguments": [ - { - "id": 76240, - "name": "currentVaultBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76226, - "src": "14098:19:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 76238, - "name": "targetAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76208, - "src": "14081:12:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 76239, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "14094:3:172", - "memberName": "min", - "nodeType": "MemberAccess", - "referencedDeclaration": 46109, - "src": "14081:16:172", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 76241, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "14081:37:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14056:62:172" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 76245, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 76243, - "name": "withdrawAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76237, - "src": "14132:14:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 76244, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14149:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "14132:18:172", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 76278, - "nodeType": "IfStatement", - "src": "14128:488:172", - "trueBody": { - "id": 76277, - "nodeType": "Block", - "src": "14152:464:172", - "statements": [ - { - "expression": { - "id": 76257, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "baseExpression": { - "baseExpression": { - "id": 76246, - "name": "sVaultBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76094, - "src": "14371:14:172", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$_$", - "typeString": "mapping(address => mapping(address => mapping(uint256 => uint256)))" - } - }, - "id": 76251, - "indexExpression": { - "expression": { - "id": 76247, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "14386:3:172", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 76248, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "14390:6:172", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "14386:10:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14371:26:172", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(uint256 => uint256))" - } - }, - "id": 76252, - "indexExpression": { - "id": 76249, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76204, - "src": "14398:5:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14371:33:172", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 76253, - "indexExpression": { - "id": 76250, - "name": "vaultId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76206, - "src": "14405:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "14371:42:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 76256, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 76254, - "name": "currentVaultBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76226, - "src": "14416:19:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "id": 76255, - "name": "withdrawAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76237, - "src": "14438:14:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "14416:36:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "14371:81:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 76258, - "nodeType": "ExpressionStatement", - "src": "14371:81:172" - }, - { - "eventCall": { - "arguments": [ - { - "expression": { - "id": 76260, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "14480:3:172", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 76261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "14484:6:172", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "14480:10:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 76262, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76204, - "src": "14492:5:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 76263, - "name": "vaultId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76206, - "src": "14499:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 76264, - "name": "targetAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76208, - "src": "14508:12:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 76265, - "name": "withdrawAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76237, - "src": "14522:14:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 76259, - "name": "Withdraw", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 79114, - "src": "14471:8:172", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256,uint256,uint256)" - } - }, - "id": 76266, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "14471:66:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 76267, - "nodeType": "EmitStatement", - "src": "14466:71:172" - }, - { - "expression": { - "arguments": [ - { - "expression": { - "id": 76272, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "14578:3:172", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 76273, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "14582:6:172", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "14578:10:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 76274, - "name": "withdrawAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76237, - "src": "14590:14:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "arguments": [ - { - "id": 76269, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76204, - "src": "14558:5:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 76268, - "name": "IERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 44376, - "src": "14551:6:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$44376_$", - "typeString": "type(contract IERC20)" - } - }, - "id": 76270, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "14551:13:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$44376", - "typeString": "contract IERC20" - } - }, - "id": 76271, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "14565:12:172", - "memberName": "safeTransfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 44470, - "src": "14551:26:172", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$44376_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$44376_$", - "typeString": "function (contract IERC20,address,uint256)" - } - }, - "id": 76275, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "14551:54:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 76276, - "nodeType": "ExpressionStatement", - "src": "14551:54:172" - } - ] - } - } - ] - }, - "baseFunctions": [ - 79230 - ], - "documentation": { - "id": 76202, - "nodeType": "StructuredDocumentation", - "src": "13649:28:172", - "text": "@inheritdoc IOrderBookV3" - }, - "functionSelector": "b5c5f672", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 76211, - "kind": "modifierInvocation", - "modifierName": { - "id": 76210, - "name": "nonReentrant", - "nameLocations": [ - "13763:12:172" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 43676, - "src": "13763:12:172" - }, - "nodeType": "ModifierInvocation", - "src": "13763:12:172" - } - ], - "name": "withdraw", - "nameLocation": "13691:8:172", - "parameters": { - "id": 76209, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 76204, - "mutability": "mutable", - "name": "token", - "nameLocation": "13708:5:172", - "nodeType": "VariableDeclaration", - "scope": 76280, - "src": "13700:13:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 76203, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13700:7:172", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 76206, - "mutability": "mutable", - "name": "vaultId", - "nameLocation": "13723:7:172", - "nodeType": "VariableDeclaration", - "scope": 76280, - "src": "13715:15:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 76205, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13715:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 76208, - "mutability": "mutable", - "name": "targetAmount", - "nameLocation": "13740:12:172", - "nodeType": "VariableDeclaration", - "scope": 76280, - "src": "13732:20:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 76207, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13732:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "13699:54:172" - }, - "returnParameters": { - "id": 76212, - "nodeType": "ParameterList", - "parameters": [], - "src": "13776:0:172" - }, - "scope": 78178, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 76484, - "nodeType": "FunctionDefinition", - "src": "14661:2996:172", - "nodes": [], - "body": { - "id": 76483, - "nodeType": "Block", - "src": "14760:2897:172", - "nodes": [], - "statements": [ - { - "assignments": [ - 76292 - ], - "declarations": [ - { - "constant": false, - "id": 76292, - "mutability": "mutable", - "name": "sourceCount", - "nameLocation": "14778:11:172", - "nodeType": "VariableDeclaration", - "scope": 76483, - "src": "14770:19:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 76291, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14770:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 76299, - "initialValue": { - "arguments": [ - { - "expression": { - "expression": { - "id": 76295, - "name": "config", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76284, - "src": "14816:6:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderConfigV2_$79014_calldata_ptr", - "typeString": "struct OrderConfigV2 calldata" - } - }, - "id": 76296, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "14823:15:172", - "memberName": "evaluableConfig", - "nodeType": "MemberAccess", - "referencedDeclaration": 79011, - "src": "14816:22:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EvaluableConfigV3_$55623_calldata_ptr", - "typeString": "struct EvaluableConfigV3 calldata" - } - }, - "id": 76297, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "14839:8:172", - "memberName": "bytecode", - "nodeType": "MemberAccess", - "referencedDeclaration": 55619, - "src": "14816:31:172", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "expression": { - "id": 76293, - "name": "LibBytecode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 56710, - "src": "14792:11:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LibBytecode_$56710_$", - "typeString": "type(library LibBytecode)" - } - }, - "id": 76294, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "14804:11:172", - "memberName": "sourceCount", - "nodeType": "MemberAccess", - "referencedDeclaration": 56349, - "src": "14792:23:172", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$", - "typeString": "function (bytes memory) pure returns (uint256)" - } - }, - "id": 76298, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "14792:56:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14770:78:172" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 76302, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 76300, - "name": "sourceCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76292, - "src": "14862:11:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 76301, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14877:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "14862:16:172", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 76307, - "nodeType": "IfStatement", - "src": "14858:70:172", - "trueBody": { - "id": 76306, - "nodeType": "Block", - "src": "14880:48:172", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 76303, - "name": "OrderNoSources", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 79081, - "src": "14901:14:172", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 76304, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "14901:16:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 76305, - "nodeType": "RevertStatement", - "src": "14894:23:172" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 76310, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 76308, - "name": "sourceCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76292, - "src": "14941:11:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "31", - "id": 76309, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14956:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "14941:16:172", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 76315, - "nodeType": "IfStatement", - "src": "14937:71:172", - "trueBody": { - "id": 76314, - "nodeType": "Block", - "src": "14959:49:172", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 76311, - "name": "OrderNoHandleIO", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 79084, - "src": "14980:15:172", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 76312, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "14980:17:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 76313, - "nodeType": "RevertStatement", - "src": "14973:24:172" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 76320, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "expression": { - "id": 76316, - "name": "config", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76284, - "src": "15021:6:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderConfigV2_$79014_calldata_ptr", - "typeString": "struct OrderConfigV2 calldata" - } - }, - "id": 76317, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "15028:11:172", - "memberName": "validInputs", - "nodeType": "MemberAccess", - "referencedDeclaration": 79004, - "src": "15021:18:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_IO_$78658_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct IO calldata[] calldata" - } - }, - "id": 76318, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "15040:6:172", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "15021:25:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 76319, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15050:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "15021:30:172", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 76325, - "nodeType": "IfStatement", - "src": "15017:83:172", - "trueBody": { - "id": 76324, - "nodeType": "Block", - "src": "15053:47:172", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 76321, - "name": "OrderNoInputs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 79087, - "src": "15074:13:172", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 76322, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "15074:15:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 76323, - "nodeType": "RevertStatement", - "src": "15067:22:172" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 76330, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "expression": { - "id": 76326, - "name": "config", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76284, - "src": "15113:6:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderConfigV2_$79014_calldata_ptr", - "typeString": "struct OrderConfigV2 calldata" - } - }, - "id": 76327, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "15120:12:172", - "memberName": "validOutputs", - "nodeType": "MemberAccess", - "referencedDeclaration": 79008, - "src": "15113:19:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_IO_$78658_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct IO calldata[] calldata" - } - }, - "id": 76328, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "15133:6:172", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "15113:26:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 76329, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15143:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "15113:31:172", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 76335, - "nodeType": "IfStatement", - "src": "15109:85:172", - "trueBody": { - "id": 76334, - "nodeType": "Block", - "src": "15146:48:172", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 76331, - "name": "OrderNoOutputs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 79090, - "src": "15167:14:172", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 76332, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "15167:16:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 76333, - "nodeType": "RevertStatement", - "src": "15160:23:172" - } - ] - } - }, - { - "assignments": [ - 76338, - 76341, - 76343, - 76345 - ], - "declarations": [ - { - "constant": false, - "id": 76338, - "mutability": "mutable", - "name": "interpreter", - "nameLocation": "15219:11:172", - "nodeType": "VariableDeclaration", - "scope": 76483, - "src": "15204:26:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IInterpreterV2_$56032", - "typeString": "contract IInterpreterV2" - }, - "typeName": { - "id": 76337, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 76336, - "name": "IInterpreterV2", - "nameLocations": [ - "15204:14:172" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 56032, - "src": "15204:14:172" - }, - "referencedDeclaration": 56032, - "src": "15204:14:172", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IInterpreterV2_$56032", - "typeString": "contract IInterpreterV2" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 76341, - "mutability": "mutable", - "name": "store", - "nameLocation": "15252:5:172", - "nodeType": "VariableDeclaration", - "scope": 76483, - "src": "15232:25:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IInterpreterStoreV1_$55698", - "typeString": "contract IInterpreterStoreV1" - }, - "typeName": { - "id": 76340, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 76339, - "name": "IInterpreterStoreV1", - "nameLocations": [ - "15232:19:172" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 55698, - "src": "15232:19:172" - }, - "referencedDeclaration": 55698, - "src": "15232:19:172", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IInterpreterStoreV1_$55698", - "typeString": "contract IInterpreterStoreV1" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 76343, - "mutability": "mutable", - "name": "expression", - "nameLocation": "15267:10:172", - "nodeType": "VariableDeclaration", - "scope": 76483, - "src": "15259:18:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 76342, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15259:7:172", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 76345, - "mutability": "mutable", - "name": "io", - "nameLocation": "15292:2:172", - "nodeType": "VariableDeclaration", - "scope": 76483, - "src": "15279:15:172", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 76344, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "15279:5:172", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "id": 76357, - "initialValue": { - "arguments": [ - { - "expression": { - "expression": { - "id": 76350, - "name": "config", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76284, - "src": "15387:6:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderConfigV2_$79014_calldata_ptr", - "typeString": "struct OrderConfigV2 calldata" - } - }, - "id": 76351, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "15394:15:172", - "memberName": "evaluableConfig", - "nodeType": "MemberAccess", - "referencedDeclaration": 79011, - "src": "15387:22:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EvaluableConfigV3_$55623_calldata_ptr", - "typeString": "struct EvaluableConfigV3 calldata" - } - }, - "id": 76352, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "15410:8:172", - "memberName": "bytecode", - "nodeType": "MemberAccess", - "referencedDeclaration": 55619, - "src": "15387:31:172", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "expression": { - "expression": { - "id": 76353, - "name": "config", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76284, - "src": "15420:6:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderConfigV2_$79014_calldata_ptr", - "typeString": "struct OrderConfigV2 calldata" - } - }, - "id": 76354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "15427:15:172", - "memberName": "evaluableConfig", - "nodeType": "MemberAccess", - "referencedDeclaration": 79011, - "src": "15420:22:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EvaluableConfigV3_$55623_calldata_ptr", - "typeString": "struct EvaluableConfigV3 calldata" - } - }, - "id": 76355, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "15443:9:172", - "memberName": "constants", - "nodeType": "MemberAccess", - "referencedDeclaration": 55622, - "src": "15420:32:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[] calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[] calldata" - } - ], - "expression": { - "expression": { - "expression": { - "id": 76346, - "name": "config", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76284, - "src": "15298:6:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderConfigV2_$79014_calldata_ptr", - "typeString": "struct OrderConfigV2 calldata" - } - }, - "id": 76347, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "15318:15:172", - "memberName": "evaluableConfig", - "nodeType": "MemberAccess", - "referencedDeclaration": 79011, - "src": "15298:35:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EvaluableConfigV3_$55623_calldata_ptr", - "typeString": "struct EvaluableConfigV3 calldata" - } - }, - "id": 76348, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "15347:8:172", - "memberName": "deployer", - "nodeType": "MemberAccess", - "referencedDeclaration": 55617, - "src": "15298:57:172", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IExpressionDeployerV3_$55986", - "typeString": "contract IExpressionDeployerV3" - } - }, - "id": 76349, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "15369:17:172", - "memberName": "deployExpression2", - "nodeType": "MemberAccess", - "referencedDeclaration": 55985, - "src": "15298:88:172", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_bytes_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$_t_contract$_IInterpreterV2_$56032_$_t_contract$_IInterpreterStoreV1_$55698_$_t_address_$_t_bytes_memory_ptr_$", - "typeString": "function (bytes memory,uint256[] memory) external returns (contract IInterpreterV2,contract IInterpreterStoreV1,address,bytes memory)" - } - }, - "id": 76356, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "15298:155:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_contract$_IInterpreterV2_$56032_$_t_contract$_IInterpreterStoreV1_$55698_$_t_address_$_t_bytes_memory_ptr_$", - "typeString": "tuple(contract IInterpreterV2,contract IInterpreterStoreV1,address,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15203:250:172" - }, - { - "id": 76395, - "nodeType": "Block", - "src": "15463:763:172", - "statements": [ - { - "assignments": [ - 76359 - ], - "declarations": [ - { - "constant": false, - "id": 76359, - "mutability": "mutable", - "name": "calculateInputs", - "nameLocation": "15485:15:172", - "nodeType": "VariableDeclaration", - "scope": 76395, - "src": "15477:23:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 76358, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15477:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 76360, - "nodeType": "VariableDeclarationStatement", - "src": "15477:23:172" - }, - { - "assignments": [ - 76362 - ], - "declarations": [ - { - "constant": false, - "id": 76362, - "mutability": "mutable", - "name": "calculateOutputs", - "nameLocation": "15522:16:172", - "nodeType": "VariableDeclaration", - "scope": 76395, - "src": "15514:24:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 76361, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15514:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 76363, - "nodeType": "VariableDeclarationStatement", - "src": "15514:24:172" - }, - { - "assignments": [ - 76365 - ], - "declarations": [ - { - "constant": false, - "id": 76365, - "mutability": "mutable", - "name": "handleInputs", - "nameLocation": "15560:12:172", - "nodeType": "VariableDeclaration", - "scope": 76395, - "src": "15552:20:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 76364, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15552:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 76366, - "nodeType": "VariableDeclarationStatement", - "src": "15552:20:172" - }, - { - "AST": { - "nodeType": "YulBlock", - "src": "15611:217:172", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "15629:34:172", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "io", - "nodeType": "YulIdentifier", - "src": "15653:2:172" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "15657:4:172", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "15649:3:172" - }, - "nodeType": "YulFunctionCall", - "src": "15649:13:172" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "15643:5:172" - }, - "nodeType": "YulFunctionCall", - "src": "15643:20:172" - }, - "variables": [ - { - "name": "ioWord", - "nodeType": "YulTypedName", - "src": "15633:6:172", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "15680:34:172", - "value": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "15704:1:172", - "type": "", - "value": "0" - }, - { - "name": "ioWord", - "nodeType": "YulIdentifier", - "src": "15707:6:172" - } - ], - "functionName": { - "name": "byte", - "nodeType": "YulIdentifier", - "src": "15699:4:172" - }, - "nodeType": "YulFunctionCall", - "src": "15699:15:172" - }, - "variableNames": [ - { - "name": "calculateInputs", - "nodeType": "YulIdentifier", - "src": "15680:15:172" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "15731:35:172", - "value": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "15756:1:172", - "type": "", - "value": "1" - }, - { - "name": "ioWord", - "nodeType": "YulIdentifier", - "src": "15759:6:172" - } - ], - "functionName": { - "name": "byte", - "nodeType": "YulIdentifier", - "src": "15751:4:172" - }, - "nodeType": "YulFunctionCall", - "src": "15751:15:172" - }, - "variableNames": [ - { - "name": "calculateOutputs", - "nodeType": "YulIdentifier", - "src": "15731:16:172" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "15783:31:172", - "value": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "15804:1:172", - "type": "", - "value": "2" - }, - { - "name": "ioWord", - "nodeType": "YulIdentifier", - "src": "15807:6:172" - } - ], - "functionName": { - "name": "byte", - "nodeType": "YulIdentifier", - "src": "15799:4:172" - }, - "nodeType": "YulFunctionCall", - "src": "15799:15:172" - }, - "variableNames": [ - { - "name": "handleInputs", - "nodeType": "YulIdentifier", - "src": "15783:12:172" - } - ] - } - ] - }, - "evmVersion": "paris", - "externalReferences": [ - { - "declaration": 76359, - "isOffset": false, - "isSlot": false, - "src": "15680:15:172", - "valueSize": 1 - }, - { - "declaration": 76362, - "isOffset": false, - "isSlot": false, - "src": "15731:16:172", - "valueSize": 1 - }, - { - "declaration": 76365, - "isOffset": false, - "isSlot": false, - "src": "15783:12:172", - "valueSize": 1 - }, - { - "declaration": 76345, - "isOffset": false, - "isSlot": false, - "src": "15653:2:172", - "valueSize": 1 - } - ], - "flags": [ - "memory-safe" - ], - "id": 76367, - "nodeType": "InlineAssembly", - "src": "15586:242:172" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 76370, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 76368, - "name": "calculateInputs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76359, - "src": "15846:15:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "hexValue": "30", - "id": 76369, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15865:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "15846:20:172", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 76376, - "nodeType": "IfStatement", - "src": "15842:109:172", - "trueBody": { - "id": 76375, - "nodeType": "Block", - "src": "15868:83:172", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "id": 76372, - "name": "calculateInputs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76359, - "src": "15920:15:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 76371, - "name": "UnsupportedCalculateInputs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 75915, - "src": "15893:26:172", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$__$", - "typeString": "function (uint256) pure" - } - }, - "id": 76373, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "15893:43:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 76374, - "nodeType": "RevertStatement", - "src": "15886:50:172" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 76379, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 76377, - "name": "calculateOutputs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76362, - "src": "15969:16:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 76378, - "name": "CALCULATE_ORDER_MIN_OUTPUTS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 75953, - "src": "15988:27:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "15969:46:172", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 76385, - "nodeType": "IfStatement", - "src": "15965:137:172", - "trueBody": { - "id": 76384, - "nodeType": "Block", - "src": "16017:85:172", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "id": 76381, - "name": "calculateOutputs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76362, - "src": "16070:16:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 76380, - "name": "UnsupportedCalculateOutputs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 75920, - "src": "16042:27:172", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$__$", - "typeString": "function (uint256) pure" - } - }, - "id": 76382, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "16042:45:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 76383, - "nodeType": "RevertStatement", - "src": "16035:52:172" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 76388, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 76386, - "name": "handleInputs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76365, - "src": "16120:12:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "hexValue": "30", - "id": 76387, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16136:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "16120:17:172", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 76394, - "nodeType": "IfStatement", - "src": "16116:100:172", - "trueBody": { - "id": 76393, - "nodeType": "Block", - "src": "16139:77:172", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "id": 76390, - "name": "handleInputs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76365, - "src": "16188:12:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 76389, - "name": "UnsupportedHandleInputs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 75925, - "src": "16164:23:172", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$__$", - "typeString": "function (uint256) pure" - } - }, - "id": 76391, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "16164:37:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 76392, - "nodeType": "RevertStatement", - "src": "16157:44:172" - } - ] - } - } - ] - }, - { - "assignments": [ - 76398 - ], - "declarations": [ - { - "constant": false, - "id": 76398, - "mutability": "mutable", - "name": "order", - "nameLocation": "16428:5:172", - "nodeType": "VariableDeclaration", - "scope": 76483, - "src": "16413:20:172", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2" - }, - "typeName": { - "id": 76397, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 76396, - "name": "OrderV2", - "nameLocations": [ - "16413:7:172" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 79042, - "src": "16413:7:172" - }, - "referencedDeclaration": 79042, - "src": "16413:7:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_storage_ptr", - "typeString": "struct OrderV2" - } - }, - "visibility": "internal" - } - ], - "id": 76424, - "initialValue": { - "arguments": [ - { - "expression": { - "id": 76400, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "16457:3:172", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 76401, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "16461:6:172", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "16457:10:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 76413, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "expression": { - "expression": { - "id": 76404, - "name": "config", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76284, - "src": "16508:6:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderConfigV2_$79014_calldata_ptr", - "typeString": "struct OrderConfigV2 calldata" - } - }, - "id": 76405, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "16515:15:172", - "memberName": "evaluableConfig", - "nodeType": "MemberAccess", - "referencedDeclaration": 79011, - "src": "16508:22:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EvaluableConfigV3_$55623_calldata_ptr", - "typeString": "struct EvaluableConfigV3 calldata" - } - }, - "id": 76406, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "16531:8:172", - "memberName": "bytecode", - "nodeType": "MemberAccess", - "referencedDeclaration": 55619, - "src": "16508:31:172", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "arguments": [ - { - "id": 76409, - "name": "HANDLE_IO_ENTRYPOINT", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 75949, - "src": "16562:20:172", - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_SourceIndexV2_$55998", - "typeString": "SourceIndexV2" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_userDefinedValueType$_SourceIndexV2_$55998", - "typeString": "SourceIndexV2" - } - ], - "expression": { - "id": 76407, - "name": "SourceIndexV2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 55998, - "src": "16541:13:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_userDefinedValueType$_SourceIndexV2_$55998_$", - "typeString": "type(SourceIndexV2)" - } - }, - "id": 76408, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "16555:6:172", - "memberName": "unwrap", - "nodeType": "MemberAccess", - "src": "16541:20:172", - "typeDescriptions": { - "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_SourceIndexV2_$55998_$returns$_t_uint256_$", - "typeString": "function (SourceIndexV2) pure returns (uint256)" - } - }, - "id": 76410, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "16541:42:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 76402, - "name": "LibBytecode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 56710, - "src": "16481:11:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LibBytecode_$56710_$", - "typeString": "type(library LibBytecode)" - } - }, - "id": 76403, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "16493:14:172", - "memberName": "sourceOpsCount", - "nodeType": "MemberAccess", - "referencedDeclaration": 56580, - "src": "16481:26:172", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (bytes memory,uint256) pure returns (uint256)" - } - }, - "id": 76411, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "16481:103:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 76412, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16587:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "16481:107:172", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "arguments": [ - { - "id": 76415, - "name": "interpreter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76338, - "src": "16614:11:172", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IInterpreterV2_$56032", - "typeString": "contract IInterpreterV2" - } - }, - { - "id": 76416, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76341, - "src": "16627:5:172", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IInterpreterStoreV1_$55698", - "typeString": "contract IInterpreterStoreV1" - } - }, - { - "id": 76417, - "name": "expression", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76343, - "src": "16634:10:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IInterpreterV2_$56032", - "typeString": "contract IInterpreterV2" - }, - { - "typeIdentifier": "t_contract$_IInterpreterStoreV1_$55698", - "typeString": "contract IInterpreterStoreV1" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 76414, - "name": "EvaluableV2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 55632, - "src": "16602:11:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_EvaluableV2_$55632_storage_ptr_$", - "typeString": "type(struct EvaluableV2 storage pointer)" - } - }, - "id": 76418, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "16602:43:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_EvaluableV2_$55632_memory_ptr", - "typeString": "struct EvaluableV2 memory" - } - }, - { - "expression": { - "id": 76419, - "name": "config", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76284, - "src": "16659:6:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderConfigV2_$79014_calldata_ptr", - "typeString": "struct OrderConfigV2 calldata" - } - }, - "id": 76420, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "16666:11:172", - "memberName": "validInputs", - "nodeType": "MemberAccess", - "referencedDeclaration": 79004, - "src": "16659:18:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_IO_$78658_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct IO calldata[] calldata" - } - }, - { - "expression": { - "id": 76421, - "name": "config", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76284, - "src": "16691:6:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderConfigV2_$79014_calldata_ptr", - "typeString": "struct OrderConfigV2 calldata" - } - }, - "id": 76422, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "16698:12:172", - "memberName": "validOutputs", - "nodeType": "MemberAccess", - "referencedDeclaration": 79008, - "src": "16691:19:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_IO_$78658_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct IO calldata[] calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_struct$_EvaluableV2_$55632_memory_ptr", - "typeString": "struct EvaluableV2 memory" - }, - { - "typeIdentifier": "t_array$_t_struct$_IO_$78658_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct IO calldata[] calldata" - }, - { - "typeIdentifier": "t_array$_t_struct$_IO_$78658_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct IO calldata[] calldata" - } - ], - "id": 76399, - "name": "OrderV2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 79042, - "src": "16436:7:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_OrderV2_$79042_storage_ptr_$", - "typeString": "type(struct OrderV2 storage pointer)" - } - }, - "id": 76423, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "16436:284:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "16413:307:172" - }, - { - "assignments": [ - 76426 - ], - "declarations": [ - { - "constant": false, - "id": 76426, - "mutability": "mutable", - "name": "orderHash", - "nameLocation": "16738:9:172", - "nodeType": "VariableDeclaration", - "scope": 76483, - "src": "16730:17:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 76425, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "16730:7:172", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "id": 76430, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 76427, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76398, - "src": "16750:5:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 76428, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "16756:4:172", - "memberName": "hash", - "nodeType": "MemberAccess", - "referencedDeclaration": 79344, - "src": "16750:10:172", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_OrderV2_$79042_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_OrderV2_$79042_memory_ptr_$", - "typeString": "function (struct OrderV2 memory) pure returns (bytes32)" - } - }, - "id": 76429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "16750:12:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "16730:32:172" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 76435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "baseExpression": { - "id": 76431, - "name": "sOrders", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76085, - "src": "16852:7:172", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 76433, - "indexExpression": { - "id": 76432, - "name": "orderHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76426, - "src": "16860:9:172", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16852:18:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "id": 76434, - "name": "ORDER_DEAD", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 75933, - "src": "16874:10:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16852:32:172", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 76482, - "nodeType": "IfStatement", - "src": "16848:803:172", - "trueBody": { - "id": 76481, - "nodeType": "Block", - "src": "16886:765:172", - "statements": [ - { - "expression": { - "id": 76438, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 76436, - "name": "stateChanged", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76289, - "src": "16900:12:172", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "74727565", - "id": 76437, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16915:4:172", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "16900:19:172", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 76439, - "nodeType": "ExpressionStatement", - "src": "16900:19:172" - }, - { - "expression": { - "id": 76444, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 76440, - "name": "sOrders", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76085, - "src": "17180:7:172", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 76442, - "indexExpression": { - "id": 76441, - "name": "orderHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76426, - "src": "17188:9:172", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "17180:18:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 76443, - "name": "ORDER_LIVE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 75929, - "src": "17201:10:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "17180:31:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 76445, - "nodeType": "ExpressionStatement", - "src": "17180:31:172" - }, - { - "eventCall": { - "arguments": [ - { - "expression": { - "id": 76447, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "17239:3:172", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 76448, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "17243:6:172", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "17239:10:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "expression": { - "id": 76449, - "name": "config", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76284, - "src": "17251:6:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderConfigV2_$79014_calldata_ptr", - "typeString": "struct OrderConfigV2 calldata" - } - }, - "id": 76450, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "17258:15:172", - "memberName": "evaluableConfig", - "nodeType": "MemberAccess", - "referencedDeclaration": 79011, - "src": "17251:22:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EvaluableConfigV3_$55623_calldata_ptr", - "typeString": "struct EvaluableConfigV3 calldata" - } - }, - "id": 76451, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "17274:8:172", - "memberName": "deployer", - "nodeType": "MemberAccess", - "referencedDeclaration": 55617, - "src": "17251:31:172", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IExpressionDeployerV3_$55986", - "typeString": "contract IExpressionDeployerV3" - } - }, - { - "id": 76452, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76398, - "src": "17284:5:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - { - "id": 76453, - "name": "orderHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76426, - "src": "17291:9:172", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_contract$_IExpressionDeployerV3_$55986", - "typeString": "contract IExpressionDeployerV3" - }, - { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 76446, - "name": "AddOrder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 79127, - "src": "17230:8:172", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_contract$_IExpressionDeployerV3_$55986_$_t_struct$_OrderV2_$79042_memory_ptr_$_t_bytes32_$returns$__$", - "typeString": "function (address,contract IExpressionDeployerV3,struct OrderV2 memory,bytes32)" - } - }, - "id": 76454, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "17230:71:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 76455, - "nodeType": "EmitStatement", - "src": "17225:76:172" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 76460, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "expression": { - "id": 76456, - "name": "config", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76284, - "src": "17472:6:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderConfigV2_$79014_calldata_ptr", - "typeString": "struct OrderConfigV2 calldata" - } - }, - "id": 76457, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "17479:4:172", - "memberName": "meta", - "nodeType": "MemberAccess", - "referencedDeclaration": 79013, - "src": "17472:11:172", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "id": 76458, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "17484:6:172", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "17472:18:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 76459, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17493:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "17472:22:172", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 76480, - "nodeType": "IfStatement", - "src": "17468:173:172", - "trueBody": { - "id": 76479, - "nodeType": "Block", - "src": "17496:145:172", - "statements": [ - { - "expression": { - "arguments": [ - { - "expression": { - "id": 76464, - "name": "config", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76284, - "src": "17540:6:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderConfigV2_$79014_calldata_ptr", - "typeString": "struct OrderConfigV2 calldata" - } - }, - "id": 76465, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "17547:4:172", - "memberName": "meta", - "nodeType": "MemberAccess", - "referencedDeclaration": 79013, - "src": "17540:11:172", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "expression": { - "id": 76461, - "name": "LibMeta", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 73191, - "src": "17514:7:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LibMeta_$73191_$", - "typeString": "type(library LibMeta)" - } - }, - "id": 76463, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "17522:17:172", - "memberName": "checkMetaUnhashed", - "nodeType": "MemberAccess", - "referencedDeclaration": 73161, - "src": "17514:25:172", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory) pure" - } - }, - "id": 76466, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "17514:38:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 76467, - "nodeType": "ExpressionStatement", - "src": "17514:38:172" - }, - { - "eventCall": { - "arguments": [ - { - "expression": { - "id": 76469, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "17582:3:172", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 76470, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "17586:6:172", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "17582:10:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [ - { - "id": 76473, - "name": "orderHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76426, - "src": "17602:9:172", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 76472, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "17594:7:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 76471, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17594:7:172", - "typeDescriptions": {} - } - }, - "id": 76474, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "17594:18:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 76475, - "name": "config", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76284, - "src": "17614:6:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderConfigV2_$79014_calldata_ptr", - "typeString": "struct OrderConfigV2 calldata" - } - }, - "id": 76476, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "17621:4:172", - "memberName": "meta", - "nodeType": "MemberAccess", - "referencedDeclaration": 79013, - "src": "17614:11:172", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "id": 76468, - "name": "MetaV1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 73106, - "src": "17575:6:172", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,uint256,bytes memory)" - } - }, - "id": 76477, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "17575:51:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 76478, - "nodeType": "EmitStatement", - "src": "17570:56:172" - } - ] - } - } - ] - } - } - ] - }, - "baseFunctions": [ - 79239 - ], - "documentation": { - "id": 76281, - "nodeType": "StructuredDocumentation", - "src": "14628:28:172", - "text": "@inheritdoc IOrderBookV3" - }, - "functionSelector": "847a1bc9", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 76287, - "kind": "modifierInvocation", - "modifierName": { - "id": 76286, - "name": "nonReentrant", - "nameLocations": [ - "14719:12:172" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 43676, - "src": "14719:12:172" - }, - "nodeType": "ModifierInvocation", - "src": "14719:12:172" - } - ], - "name": "addOrder", - "nameLocation": "14670:8:172", - "parameters": { - "id": 76285, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 76284, - "mutability": "mutable", - "name": "config", - "nameLocation": "14702:6:172", - "nodeType": "VariableDeclaration", - "scope": 76484, - "src": "14679:29:172", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderConfigV2_$79014_calldata_ptr", - "typeString": "struct OrderConfigV2" - }, - "typeName": { - "id": 76283, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 76282, - "name": "OrderConfigV2", - "nameLocations": [ - "14679:13:172" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 79014, - "src": "14679:13:172" - }, - "referencedDeclaration": 79014, - "src": "14679:13:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderConfigV2_$79014_storage_ptr", - "typeString": "struct OrderConfigV2" - } - }, - "visibility": "internal" - } - ], - "src": "14678:31:172" - }, - "returnParameters": { - "id": 76290, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 76289, - "mutability": "mutable", - "name": "stateChanged", - "nameLocation": "14746:12:172", - "nodeType": "VariableDeclaration", - "scope": 76484, - "src": "14741:17:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 76288, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "14741:4:172", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "14740:19:172" - }, - "scope": 78178, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 76540, - "nodeType": "FunctionDefinition", - "src": "17696:450:172", - "nodes": [], - "body": { - "id": 76539, - "nodeType": "Block", - "src": "17791:355:172", - "nodes": [], - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 76499, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 76495, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "17805:3:172", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 76496, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "17809:6:172", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "17805:10:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "expression": { - "id": 76497, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76488, - "src": "17819:5:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_calldata_ptr", - "typeString": "struct OrderV2 calldata" - } - }, - "id": 76498, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "17825:5:172", - "memberName": "owner", - "nodeType": "MemberAccess", - "referencedDeclaration": 79028, - "src": "17819:11:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "17805:25:172", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 76508, - "nodeType": "IfStatement", - "src": "17801:101:172", - "trueBody": { - "id": 76507, - "nodeType": "Block", - "src": "17832:70:172", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "expression": { - "id": 76501, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "17867:3:172", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 76502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "17871:6:172", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "17867:10:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 76503, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76488, - "src": "17879:5:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_calldata_ptr", - "typeString": "struct OrderV2 calldata" - } - }, - "id": 76504, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "17885:5:172", - "memberName": "owner", - "nodeType": "MemberAccess", - "referencedDeclaration": 79028, - "src": "17879:11:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 76500, - "name": "NotOrderOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 75884, - "src": "17853:13:172", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address) pure" - } - }, - "id": 76505, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "17853:38:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 76506, - "nodeType": "RevertStatement", - "src": "17846:45:172" - } - ] - } - }, - { - "assignments": [ - 76510 - ], - "declarations": [ - { - "constant": false, - "id": 76510, - "mutability": "mutable", - "name": "orderHash", - "nameLocation": "17919:9:172", - "nodeType": "VariableDeclaration", - "scope": 76539, - "src": "17911:17:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 76509, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "17911:7:172", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "id": 76514, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 76511, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76488, - "src": "17931:5:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_calldata_ptr", - "typeString": "struct OrderV2 calldata" - } - }, - "id": 76512, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "17937:4:172", - "memberName": "hash", - "nodeType": "MemberAccess", - "referencedDeclaration": 79344, - "src": "17931:10:172", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_OrderV2_$79042_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_OrderV2_$79042_memory_ptr_$", - "typeString": "function (struct OrderV2 memory) pure returns (bytes32)" - } - }, - "id": 76513, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "17931:12:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "17911:32:172" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 76519, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "baseExpression": { - "id": 76515, - "name": "sOrders", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76085, - "src": "17957:7:172", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 76517, - "indexExpression": { - "id": 76516, - "name": "orderHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76510, - "src": "17965:9:172", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17957:18:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "id": 76518, - "name": "ORDER_LIVE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 75929, - "src": "17979:10:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "17957:32:172", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 76538, - "nodeType": "IfStatement", - "src": "17953:187:172", - "trueBody": { - "id": 76537, - "nodeType": "Block", - "src": "17991:149:172", - "statements": [ - { - "expression": { - "id": 76522, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 76520, - "name": "stateChanged", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76493, - "src": "18005:12:172", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "hexValue": "74727565", - "id": 76521, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18020:4:172", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "18005:19:172", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 76523, - "nodeType": "ExpressionStatement", - "src": "18005:19:172" - }, - { - "expression": { - "id": 76528, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 76524, - "name": "sOrders", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76085, - "src": "18038:7:172", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 76526, - "indexExpression": { - "id": 76525, - "name": "orderHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76510, - "src": "18046:9:172", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "18038:18:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 76527, - "name": "ORDER_DEAD", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 75933, - "src": "18059:10:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "18038:31:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 76529, - "nodeType": "ExpressionStatement", - "src": "18038:31:172" - }, - { - "eventCall": { - "arguments": [ - { - "expression": { - "id": 76531, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "18100:3:172", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 76532, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "18104:6:172", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "18100:10:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 76533, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76488, - "src": "18112:5:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_calldata_ptr", - "typeString": "struct OrderV2 calldata" - } - }, - { - "id": 76534, - "name": "orderHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76510, - "src": "18119:9:172", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_struct$_OrderV2_$79042_calldata_ptr", - "typeString": "struct OrderV2 calldata" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 76530, - "name": "RemoveOrder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 79137, - "src": "18088:11:172", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_struct$_OrderV2_$79042_memory_ptr_$_t_bytes32_$returns$__$", - "typeString": "function (address,struct OrderV2 memory,bytes32)" - } - }, - "id": 76535, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "18088:41:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 76536, - "nodeType": "EmitStatement", - "src": "18083:46:172" - } - ] - } - } - ] - }, - "baseFunctions": [ - 79256 - ], - "documentation": { - "id": 76485, - "nodeType": "StructuredDocumentation", - "src": "17663:28:172", - "text": "@inheritdoc IOrderBookV3" - }, - "functionSelector": "e23746a3", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 76491, - "kind": "modifierInvocation", - "modifierName": { - "id": 76490, - "name": "nonReentrant", - "nameLocations": [ - "17750:12:172" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 43676, - "src": "17750:12:172" - }, - "nodeType": "ModifierInvocation", - "src": "17750:12:172" - } - ], - "name": "removeOrder", - "nameLocation": "17705:11:172", - "parameters": { - "id": 76489, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 76488, - "mutability": "mutable", - "name": "order", - "nameLocation": "17734:5:172", - "nodeType": "VariableDeclaration", - "scope": 76540, - "src": "17717:22:172", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_calldata_ptr", - "typeString": "struct OrderV2" - }, - "typeName": { - "id": 76487, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 76486, - "name": "OrderV2", - "nameLocations": [ - "17717:7:172" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 79042, - "src": "17717:7:172" - }, - "referencedDeclaration": 79042, - "src": "17717:7:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_storage_ptr", - "typeString": "struct OrderV2" - } - }, - "visibility": "internal" - } - ], - "src": "17716:24:172" - }, - "returnParameters": { - "id": 76494, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 76493, - "mutability": "mutable", - "name": "stateChanged", - "nameLocation": "17777:12:172", - "nodeType": "VariableDeclaration", - "scope": 76540, - "src": "17772:17:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 76492, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "17772:4:172", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "17771:19:172" - }, - "scope": 78178, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 77137, - "nodeType": "FunctionDefinition", - "src": "18373:10265:172", - "nodes": [], - "body": { - "id": 77136, - "nodeType": "Block", - "src": "18539:10099:172", - "nodes": [], - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 76557, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "expression": { - "id": 76553, - "name": "config", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76544, - "src": "18553:6:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrdersConfigV2_$79055_calldata_ptr", - "typeString": "struct TakeOrdersConfigV2 calldata" - } - }, - "id": 76554, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "18560:6:172", - "memberName": "orders", - "nodeType": "MemberAccess", - "referencedDeclaration": 79052, - "src": "18553:13:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TakeOrderConfigV2_$79026_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct TakeOrderConfigV2 calldata[] calldata" - } - }, - "id": 76555, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "18567:6:172", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "18553:20:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 76556, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18577:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "18553:25:172", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 76562, - "nodeType": "IfStatement", - "src": "18549:73:172", - "trueBody": { - "id": 76561, - "nodeType": "Block", - "src": "18580:42:172", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 76558, - "name": "NoOrders", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 78997, - "src": "18601:8:172", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 76559, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "18601:10:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 76560, - "nodeType": "RevertStatement", - "src": "18594:17:172" - } - ] - } - }, - { - "assignments": [ - 76565 - ], - "declarations": [ - { - "constant": false, - "id": 76565, - "mutability": "mutable", - "name": "takeOrderConfig", - "nameLocation": "18657:15:172", - "nodeType": "VariableDeclaration", - "scope": 77136, - "src": "18632:40:172", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrderConfigV2_$79026_memory_ptr", - "typeString": "struct TakeOrderConfigV2" - }, - "typeName": { - "id": 76564, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 76563, - "name": "TakeOrderConfigV2", - "nameLocations": [ - "18632:17:172" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 79026, - "src": "18632:17:172" - }, - "referencedDeclaration": 79026, - "src": "18632:17:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrderConfigV2_$79026_storage_ptr", - "typeString": "struct TakeOrderConfigV2" - } - }, - "visibility": "internal" - } - ], - "id": 76566, - "nodeType": "VariableDeclarationStatement", - "src": "18632:40:172" - }, - { - "assignments": [ - 76569 - ], - "declarations": [ - { - "constant": false, - "id": 76569, - "mutability": "mutable", - "name": "order", - "nameLocation": "18697:5:172", - "nodeType": "VariableDeclaration", - "scope": 77136, - "src": "18682:20:172", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2" - }, - "typeName": { - "id": 76568, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 76567, - "name": "OrderV2", - "nameLocations": [ - "18682:7:172" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 79042, - "src": "18682:7:172" - }, - "referencedDeclaration": 79042, - "src": "18682:7:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_storage_ptr", - "typeString": "struct OrderV2" - } - }, - "visibility": "internal" - } - ], - "id": 76570, - "nodeType": "VariableDeclarationStatement", - "src": "18682:20:172" - }, - { - "assignments": [ - 76575 - ], - "declarations": [ - { - "constant": false, - "id": 76575, - "mutability": "mutable", - "name": "orderIOCalculationsToHandle", - "nameLocation": "19160:27:172", - "nodeType": "VariableDeclaration", - "scope": 77136, - "src": "19130:57:172", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_OrderIOCalculationV2_$76041_memory_ptr_$dyn_memory_ptr", - "typeString": "struct OrderIOCalculationV2[]" - }, - "typeName": { - "baseType": { - "id": 76573, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 76572, - "name": "OrderIOCalculationV2", - "nameLocations": [ - "19130:20:172" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 76041, - "src": "19130:20:172" - }, - "referencedDeclaration": 76041, - "src": "19130:20:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_storage_ptr", - "typeString": "struct OrderIOCalculationV2" - } - }, - "id": 76574, - "nodeType": "ArrayTypeName", - "src": "19130:22:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_OrderIOCalculationV2_$76041_storage_$dyn_storage_ptr", - "typeString": "struct OrderIOCalculationV2[]" - } - }, - "visibility": "internal" - } - ], - "id": 76576, - "nodeType": "VariableDeclarationStatement", - "src": "19130:57:172" - }, - { - "id": 76584, - "nodeType": "Block", - "src": "19197:271:172", - "statements": [ - { - "assignments": [ - 76578 - ], - "declarations": [ - { - "constant": false, - "id": 76578, - "mutability": "mutable", - "name": "length", - "nameLocation": "19219:6:172", - "nodeType": "VariableDeclaration", - "scope": 76584, - "src": "19211:14:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 76577, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19211:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 76582, - "initialValue": { - "expression": { - "expression": { - "id": 76579, - "name": "config", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76544, - "src": "19228:6:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrdersConfigV2_$79055_calldata_ptr", - "typeString": "struct TakeOrdersConfigV2 calldata" - } - }, - "id": 76580, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "19235:6:172", - "memberName": "orders", - "nodeType": "MemberAccess", - "referencedDeclaration": 79052, - "src": "19228:13:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TakeOrderConfigV2_$79026_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct TakeOrderConfigV2 calldata[] calldata" - } - }, - "id": 76581, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "19242:6:172", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "19228:20:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19211:37:172" - }, - { - "AST": { - "nodeType": "YulBlock", - "src": "19287:171:172", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "19305:22:172", - "value": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "19322:4:172", - "type": "", - "value": "0x40" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "19316:5:172" - }, - "nodeType": "YulFunctionCall", - "src": "19316:11:172" - }, - "variables": [ - { - "name": "ptr", - "nodeType": "YulTypedName", - "src": "19309:3:172", - "type": "" - } - ] - }, - { - "nodeType": "YulAssignment", - "src": "19344:34:172", - "value": { - "name": "ptr", - "nodeType": "YulIdentifier", - "src": "19375:3:172" - }, - "variableNames": [ - { - "name": "orderIOCalculationsToHandle", - "nodeType": "YulIdentifier", - "src": "19344:27:172" - } - ] - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "19402:4:172", - "type": "", - "value": "0x40" - }, - { - "arguments": [ - { - "name": "ptr", - "nodeType": "YulIdentifier", - "src": "19412:3:172" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "length", - "nodeType": "YulIdentifier", - "src": "19425:6:172" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "19433:1:172", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "19421:3:172" - }, - "nodeType": "YulFunctionCall", - "src": "19421:14:172" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "19437:4:172", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "mul", - "nodeType": "YulIdentifier", - "src": "19417:3:172" - }, - "nodeType": "YulFunctionCall", - "src": "19417:25:172" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "19408:3:172" - }, - "nodeType": "YulFunctionCall", - "src": "19408:35:172" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "19395:6:172" - }, - "nodeType": "YulFunctionCall", - "src": "19395:49:172" - }, - "nodeType": "YulExpressionStatement", - "src": "19395:49:172" - } - ] - }, - "evmVersion": "paris", - "externalReferences": [ - { - "declaration": 76578, - "isOffset": false, - "isSlot": false, - "src": "19425:6:172", - "valueSize": 1 - }, - { - "declaration": 76575, - "isOffset": false, - "isSlot": false, - "src": "19344:27:172", - "valueSize": 1 - } - ], - "flags": [ - "memory-safe" - ], - "id": 76583, - "nodeType": "InlineAssembly", - "src": "19262:196:172" - } - ] - }, - { - "id": 77003, - "nodeType": "Block", - "src": "19478:7319:172", - "statements": [ - { - "assignments": [ - 76586 - ], - "declarations": [ - { - "constant": false, - "id": 76586, - "mutability": "mutable", - "name": "remainingTakerInput", - "nameLocation": "19500:19:172", - "nodeType": "VariableDeclaration", - "scope": 77003, - "src": "19492:27:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 76585, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19492:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 76589, - "initialValue": { - "expression": { - "id": 76587, - "name": "config", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76544, - "src": "19522:6:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrdersConfigV2_$79055_calldata_ptr", - "typeString": "struct TakeOrdersConfigV2 calldata" - } - }, - "id": 76588, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "19529:12:172", - "memberName": "maximumInput", - "nodeType": "MemberAccess", - "referencedDeclaration": 79046, - "src": "19522:19:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19492:49:172" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 76592, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 76590, - "name": "remainingTakerInput", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76586, - "src": "19559:19:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 76591, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19582:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "19559:24:172", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 76597, - "nodeType": "IfStatement", - "src": "19555:88:172", - "trueBody": { - "id": 76596, - "nodeType": "Block", - "src": "19585:58:172", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 76593, - "name": "ZeroMaximumInput", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 79000, - "src": "19610:16:172", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 76594, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "19610:18:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 76595, - "nodeType": "RevertStatement", - "src": "19603:25:172" - } - ] - } - }, - { - "assignments": [ - 76599 - ], - "declarations": [ - { - "constant": false, - "id": 76599, - "mutability": "mutable", - "name": "i", - "nameLocation": "19664:1:172", - "nodeType": "VariableDeclaration", - "scope": 77003, - "src": "19656:9:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 76598, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19656:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 76601, - "initialValue": { - "hexValue": "30", - "id": 76600, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19668:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "19656:13:172" - }, - { - "body": { - "id": 76994, - "nodeType": "Block", - "src": "19743:6971:172", - "statements": [ - { - "expression": { - "id": 76616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 76611, - "name": "takeOrderConfig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76565, - "src": "19761:15:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrderConfigV2_$79026_memory_ptr", - "typeString": "struct TakeOrderConfigV2 memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "baseExpression": { - "expression": { - "id": 76612, - "name": "config", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76544, - "src": "19779:6:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrdersConfigV2_$79055_calldata_ptr", - "typeString": "struct TakeOrdersConfigV2 calldata" - } - }, - "id": 76613, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "19786:6:172", - "memberName": "orders", - "nodeType": "MemberAccess", - "referencedDeclaration": 79052, - "src": "19779:13:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TakeOrderConfigV2_$79026_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct TakeOrderConfigV2 calldata[] calldata" - } - }, - "id": 76615, - "indexExpression": { - "id": 76614, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76599, - "src": "19793:1:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19779:16:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrderConfigV2_$79026_calldata_ptr", - "typeString": "struct TakeOrderConfigV2 calldata" - } - }, - "src": "19761:34:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrderConfigV2_$79026_memory_ptr", - "typeString": "struct TakeOrderConfigV2 memory" - } - }, - "id": 76617, - "nodeType": "ExpressionStatement", - "src": "19761:34:172" - }, - { - "expression": { - "id": 76621, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 76618, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76569, - "src": "19813:5:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "expression": { - "id": 76619, - "name": "takeOrderConfig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76565, - "src": "19821:15:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrderConfigV2_$79026_memory_ptr", - "typeString": "struct TakeOrderConfigV2 memory" - } - }, - "id": 76620, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "19837:5:172", - "memberName": "order", - "nodeType": "MemberAccess", - "referencedDeclaration": 79017, - "src": "19821:21:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "src": "19813:29:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 76622, - "nodeType": "ExpressionStatement", - "src": "19813:29:172" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 76642, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "baseExpression": { - "expression": { - "id": 76623, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76569, - "src": "19944:5:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 76624, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "19950:11:172", - "memberName": "validInputs", - "nodeType": "MemberAccess", - "referencedDeclaration": 79037, - "src": "19944:17:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_IO_$78658_memory_ptr_$dyn_memory_ptr", - "typeString": "struct IO memory[] memory" - } - }, - "id": 76627, - "indexExpression": { - "expression": { - "id": 76625, - "name": "takeOrderConfig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76565, - "src": "19962:15:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrderConfigV2_$79026_memory_ptr", - "typeString": "struct TakeOrderConfigV2 memory" - } - }, - "id": 76626, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "19978:12:172", - "memberName": "inputIOIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 79019, - "src": "19962:28:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19944:47:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_IO_$78658_memory_ptr", - "typeString": "struct IO memory" - } - }, - "id": 76628, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "19992:5:172", - "memberName": "token", - "nodeType": "MemberAccess", - "referencedDeclaration": 78653, - "src": "19944:53:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "expression": { - "baseExpression": { - "expression": { - "expression": { - "baseExpression": { - "expression": { - "id": 76629, - "name": "config", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76544, - "src": "20025:6:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrdersConfigV2_$79055_calldata_ptr", - "typeString": "struct TakeOrdersConfigV2 calldata" - } - }, - "id": 76630, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "20032:6:172", - "memberName": "orders", - "nodeType": "MemberAccess", - "referencedDeclaration": 79052, - "src": "20025:13:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TakeOrderConfigV2_$79026_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct TakeOrderConfigV2 calldata[] calldata" - } - }, - "id": 76632, - "indexExpression": { - "hexValue": "30", - "id": 76631, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20039:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "20025:16:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrderConfigV2_$79026_calldata_ptr", - "typeString": "struct TakeOrderConfigV2 calldata" - } - }, - "id": 76633, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "20042:5:172", - "memberName": "order", - "nodeType": "MemberAccess", - "referencedDeclaration": 79017, - "src": "20025:22:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_calldata_ptr", - "typeString": "struct OrderV2 calldata" - } - }, - "id": 76634, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "20048:11:172", - "memberName": "validInputs", - "nodeType": "MemberAccess", - "referencedDeclaration": 79037, - "src": "20025:34:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_IO_$78658_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct IO calldata[] calldata" - } - }, - "id": 76640, - "indexExpression": { - "expression": { - "baseExpression": { - "expression": { - "id": 76635, - "name": "config", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76544, - "src": "20060:6:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrdersConfigV2_$79055_calldata_ptr", - "typeString": "struct TakeOrdersConfigV2 calldata" - } - }, - "id": 76636, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "20067:6:172", - "memberName": "orders", - "nodeType": "MemberAccess", - "referencedDeclaration": 79052, - "src": "20060:13:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TakeOrderConfigV2_$79026_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct TakeOrderConfigV2 calldata[] calldata" - } - }, - "id": 76638, - "indexExpression": { - "hexValue": "30", - "id": 76637, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20074:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "20060:16:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrderConfigV2_$79026_calldata_ptr", - "typeString": "struct TakeOrderConfigV2 calldata" - } - }, - "id": 76639, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "20077:12:172", - "memberName": "inputIOIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 79019, - "src": "20060:29:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "20025:65:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_IO_$78658_calldata_ptr", - "typeString": "struct IO calldata" - } - }, - "id": 76641, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "20091:5:172", - "memberName": "token", - "nodeType": "MemberAccess", - "referencedDeclaration": 78653, - "src": "20025:71:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "19944:152:172", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 76666, - "nodeType": "IfStatement", - "src": "19919:455:172", - "trueBody": { - "id": 76665, - "nodeType": "Block", - "src": "20115:259:172", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "expression": { - "baseExpression": { - "expression": { - "id": 76644, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76569, - "src": "20183:5:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 76645, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "20189:11:172", - "memberName": "validInputs", - "nodeType": "MemberAccess", - "referencedDeclaration": 79037, - "src": "20183:17:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_IO_$78658_memory_ptr_$dyn_memory_ptr", - "typeString": "struct IO memory[] memory" - } - }, - "id": 76648, - "indexExpression": { - "expression": { - "id": 76646, - "name": "takeOrderConfig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76565, - "src": "20201:15:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrderConfigV2_$79026_memory_ptr", - "typeString": "struct TakeOrderConfigV2 memory" - } - }, - "id": 76647, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "20217:12:172", - "memberName": "inputIOIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 79019, - "src": "20201:28:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "20183:47:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_IO_$78658_memory_ptr", - "typeString": "struct IO memory" - } - }, - "id": 76649, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "20231:5:172", - "memberName": "token", - "nodeType": "MemberAccess", - "referencedDeclaration": 78653, - "src": "20183:53:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "baseExpression": { - "expression": { - "expression": { - "baseExpression": { - "expression": { - "id": 76650, - "name": "config", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76544, - "src": "20262:6:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrdersConfigV2_$79055_calldata_ptr", - "typeString": "struct TakeOrdersConfigV2 calldata" - } - }, - "id": 76651, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "20269:6:172", - "memberName": "orders", - "nodeType": "MemberAccess", - "referencedDeclaration": 79052, - "src": "20262:13:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TakeOrderConfigV2_$79026_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct TakeOrderConfigV2 calldata[] calldata" - } - }, - "id": 76653, - "indexExpression": { - "hexValue": "30", - "id": 76652, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20276:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "20262:16:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrderConfigV2_$79026_calldata_ptr", - "typeString": "struct TakeOrderConfigV2 calldata" - } - }, - "id": 76654, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "20279:5:172", - "memberName": "order", - "nodeType": "MemberAccess", - "referencedDeclaration": 79017, - "src": "20262:22:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_calldata_ptr", - "typeString": "struct OrderV2 calldata" - } - }, - "id": 76655, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "20285:11:172", - "memberName": "validInputs", - "nodeType": "MemberAccess", - "referencedDeclaration": 79037, - "src": "20262:34:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_IO_$78658_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct IO calldata[] calldata" - } - }, - "id": 76661, - "indexExpression": { - "expression": { - "baseExpression": { - "expression": { - "id": 76656, - "name": "config", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76544, - "src": "20297:6:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrdersConfigV2_$79055_calldata_ptr", - "typeString": "struct TakeOrdersConfigV2 calldata" - } - }, - "id": 76657, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "20304:6:172", - "memberName": "orders", - "nodeType": "MemberAccess", - "referencedDeclaration": 79052, - "src": "20297:13:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TakeOrderConfigV2_$79026_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct TakeOrderConfigV2 calldata[] calldata" - } - }, - "id": 76659, - "indexExpression": { - "hexValue": "30", - "id": 76658, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20311:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "20297:16:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrderConfigV2_$79026_calldata_ptr", - "typeString": "struct TakeOrderConfigV2 calldata" - } - }, - "id": 76660, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "20314:12:172", - "memberName": "inputIOIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 79019, - "src": "20297:29:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "20262:65:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_IO_$78658_calldata_ptr", - "typeString": "struct IO calldata" - } - }, - "id": 76662, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "20328:5:172", - "memberName": "token", - "nodeType": "MemberAccess", - "referencedDeclaration": 78653, - "src": "20262:71:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 76643, - "name": "TokenMismatch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 75891, - "src": "20144:13:172", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address) pure" - } - }, - "id": 76663, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "20144:211:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 76664, - "nodeType": "RevertStatement", - "src": "20137:218:172" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 76686, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "baseExpression": { - "expression": { - "id": 76667, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76569, - "src": "20476:5:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 76668, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "20482:12:172", - "memberName": "validOutputs", - "nodeType": "MemberAccess", - "referencedDeclaration": 79041, - "src": "20476:18:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_IO_$78658_memory_ptr_$dyn_memory_ptr", - "typeString": "struct IO memory[] memory" - } - }, - "id": 76671, - "indexExpression": { - "expression": { - "id": 76669, - "name": "takeOrderConfig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76565, - "src": "20495:15:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrderConfigV2_$79026_memory_ptr", - "typeString": "struct TakeOrderConfigV2 memory" - } - }, - "id": 76670, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "20511:13:172", - "memberName": "outputIOIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 79021, - "src": "20495:29:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "20476:49:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_IO_$78658_memory_ptr", - "typeString": "struct IO memory" - } - }, - "id": 76672, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "20526:5:172", - "memberName": "token", - "nodeType": "MemberAccess", - "referencedDeclaration": 78653, - "src": "20476:55:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "expression": { - "baseExpression": { - "expression": { - "expression": { - "baseExpression": { - "expression": { - "id": 76673, - "name": "config", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76544, - "src": "20559:6:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrdersConfigV2_$79055_calldata_ptr", - "typeString": "struct TakeOrdersConfigV2 calldata" - } - }, - "id": 76674, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "20566:6:172", - "memberName": "orders", - "nodeType": "MemberAccess", - "referencedDeclaration": 79052, - "src": "20559:13:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TakeOrderConfigV2_$79026_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct TakeOrderConfigV2 calldata[] calldata" - } - }, - "id": 76676, - "indexExpression": { - "hexValue": "30", - "id": 76675, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20573:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "20559:16:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrderConfigV2_$79026_calldata_ptr", - "typeString": "struct TakeOrderConfigV2 calldata" - } - }, - "id": 76677, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "20576:5:172", - "memberName": "order", - "nodeType": "MemberAccess", - "referencedDeclaration": 79017, - "src": "20559:22:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_calldata_ptr", - "typeString": "struct OrderV2 calldata" - } - }, - "id": 76678, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "20582:12:172", - "memberName": "validOutputs", - "nodeType": "MemberAccess", - "referencedDeclaration": 79041, - "src": "20559:35:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_IO_$78658_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct IO calldata[] calldata" - } - }, - "id": 76684, - "indexExpression": { - "expression": { - "baseExpression": { - "expression": { - "id": 76679, - "name": "config", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76544, - "src": "20595:6:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrdersConfigV2_$79055_calldata_ptr", - "typeString": "struct TakeOrdersConfigV2 calldata" - } - }, - "id": 76680, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "20602:6:172", - "memberName": "orders", - "nodeType": "MemberAccess", - "referencedDeclaration": 79052, - "src": "20595:13:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TakeOrderConfigV2_$79026_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct TakeOrderConfigV2 calldata[] calldata" - } - }, - "id": 76682, - "indexExpression": { - "hexValue": "30", - "id": 76681, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20609:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "20595:16:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrderConfigV2_$79026_calldata_ptr", - "typeString": "struct TakeOrderConfigV2 calldata" - } - }, - "id": 76683, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "20612:13:172", - "memberName": "outputIOIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 79021, - "src": "20595:30:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "20559:67:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_IO_$78658_calldata_ptr", - "typeString": "struct IO calldata" - } - }, - "id": 76685, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "20627:5:172", - "memberName": "token", - "nodeType": "MemberAccess", - "referencedDeclaration": 78653, - "src": "20559:73:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20476:156:172", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 76710, - "nodeType": "IfStatement", - "src": "20451:463:172", - "trueBody": { - "id": 76709, - "nodeType": "Block", - "src": "20651:263:172", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "expression": { - "baseExpression": { - "expression": { - "id": 76688, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76569, - "src": "20719:5:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 76689, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "20725:12:172", - "memberName": "validOutputs", - "nodeType": "MemberAccess", - "referencedDeclaration": 79041, - "src": "20719:18:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_IO_$78658_memory_ptr_$dyn_memory_ptr", - "typeString": "struct IO memory[] memory" - } - }, - "id": 76692, - "indexExpression": { - "expression": { - "id": 76690, - "name": "takeOrderConfig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76565, - "src": "20738:15:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrderConfigV2_$79026_memory_ptr", - "typeString": "struct TakeOrderConfigV2 memory" - } - }, - "id": 76691, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "20754:13:172", - "memberName": "outputIOIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 79021, - "src": "20738:29:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "20719:49:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_IO_$78658_memory_ptr", - "typeString": "struct IO memory" - } - }, - "id": 76693, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "20769:5:172", - "memberName": "token", - "nodeType": "MemberAccess", - "referencedDeclaration": 78653, - "src": "20719:55:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "baseExpression": { - "expression": { - "expression": { - "baseExpression": { - "expression": { - "id": 76694, - "name": "config", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76544, - "src": "20800:6:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrdersConfigV2_$79055_calldata_ptr", - "typeString": "struct TakeOrdersConfigV2 calldata" - } - }, - "id": 76695, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "20807:6:172", - "memberName": "orders", - "nodeType": "MemberAccess", - "referencedDeclaration": 79052, - "src": "20800:13:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TakeOrderConfigV2_$79026_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct TakeOrderConfigV2 calldata[] calldata" - } - }, - "id": 76697, - "indexExpression": { - "hexValue": "30", - "id": 76696, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20814:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "20800:16:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrderConfigV2_$79026_calldata_ptr", - "typeString": "struct TakeOrderConfigV2 calldata" - } - }, - "id": 76698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "20817:5:172", - "memberName": "order", - "nodeType": "MemberAccess", - "referencedDeclaration": 79017, - "src": "20800:22:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_calldata_ptr", - "typeString": "struct OrderV2 calldata" - } - }, - "id": 76699, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "20823:12:172", - "memberName": "validOutputs", - "nodeType": "MemberAccess", - "referencedDeclaration": 79041, - "src": "20800:35:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_IO_$78658_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct IO calldata[] calldata" - } - }, - "id": 76705, - "indexExpression": { - "expression": { - "baseExpression": { - "expression": { - "id": 76700, - "name": "config", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76544, - "src": "20836:6:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrdersConfigV2_$79055_calldata_ptr", - "typeString": "struct TakeOrdersConfigV2 calldata" - } - }, - "id": 76701, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "20843:6:172", - "memberName": "orders", - "nodeType": "MemberAccess", - "referencedDeclaration": 79052, - "src": "20836:13:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TakeOrderConfigV2_$79026_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct TakeOrderConfigV2 calldata[] calldata" - } - }, - "id": 76703, - "indexExpression": { - "hexValue": "30", - "id": 76702, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20850:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "20836:16:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrderConfigV2_$79026_calldata_ptr", - "typeString": "struct TakeOrderConfigV2 calldata" - } - }, - "id": 76704, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "20853:13:172", - "memberName": "outputIOIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 79021, - "src": "20836:30:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "20800:67:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_IO_$78658_calldata_ptr", - "typeString": "struct IO calldata" - } - }, - "id": 76706, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "20868:5:172", - "memberName": "token", - "nodeType": "MemberAccess", - "referencedDeclaration": 78653, - "src": "20800:73:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 76687, - "name": "TokenMismatch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 75891, - "src": "20680:13:172", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address) pure" - } - }, - "id": 76707, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "20680:215:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 76708, - "nodeType": "RevertStatement", - "src": "20673:222:172" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 76730, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "baseExpression": { - "expression": { - "id": 76711, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76569, - "src": "21024:5:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 76712, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "21030:11:172", - "memberName": "validInputs", - "nodeType": "MemberAccess", - "referencedDeclaration": 79037, - "src": "21024:17:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_IO_$78658_memory_ptr_$dyn_memory_ptr", - "typeString": "struct IO memory[] memory" - } - }, - "id": 76715, - "indexExpression": { - "expression": { - "id": 76713, - "name": "takeOrderConfig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76565, - "src": "21042:15:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrderConfigV2_$79026_memory_ptr", - "typeString": "struct TakeOrderConfigV2 memory" - } - }, - "id": 76714, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "21058:12:172", - "memberName": "inputIOIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 79019, - "src": "21042:28:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21024:47:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_IO_$78658_memory_ptr", - "typeString": "struct IO memory" - } - }, - "id": 76716, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "21072:8:172", - "memberName": "decimals", - "nodeType": "MemberAccess", - "referencedDeclaration": 78655, - "src": "21024:56:172", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "expression": { - "baseExpression": { - "expression": { - "expression": { - "baseExpression": { - "expression": { - "id": 76717, - "name": "config", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76544, - "src": "21108:6:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrdersConfigV2_$79055_calldata_ptr", - "typeString": "struct TakeOrdersConfigV2 calldata" - } - }, - "id": 76718, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "21115:6:172", - "memberName": "orders", - "nodeType": "MemberAccess", - "referencedDeclaration": 79052, - "src": "21108:13:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TakeOrderConfigV2_$79026_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct TakeOrderConfigV2 calldata[] calldata" - } - }, - "id": 76720, - "indexExpression": { - "hexValue": "30", - "id": 76719, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21122:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21108:16:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrderConfigV2_$79026_calldata_ptr", - "typeString": "struct TakeOrderConfigV2 calldata" - } - }, - "id": 76721, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "21125:5:172", - "memberName": "order", - "nodeType": "MemberAccess", - "referencedDeclaration": 79017, - "src": "21108:22:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_calldata_ptr", - "typeString": "struct OrderV2 calldata" - } - }, - "id": 76722, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "21131:11:172", - "memberName": "validInputs", - "nodeType": "MemberAccess", - "referencedDeclaration": 79037, - "src": "21108:34:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_IO_$78658_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct IO calldata[] calldata" - } - }, - "id": 76728, - "indexExpression": { - "expression": { - "baseExpression": { - "expression": { - "id": 76723, - "name": "config", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76544, - "src": "21143:6:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrdersConfigV2_$79055_calldata_ptr", - "typeString": "struct TakeOrdersConfigV2 calldata" - } - }, - "id": 76724, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "21150:6:172", - "memberName": "orders", - "nodeType": "MemberAccess", - "referencedDeclaration": 79052, - "src": "21143:13:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TakeOrderConfigV2_$79026_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct TakeOrderConfigV2 calldata[] calldata" - } - }, - "id": 76726, - "indexExpression": { - "hexValue": "30", - "id": 76725, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21157:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21143:16:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrderConfigV2_$79026_calldata_ptr", - "typeString": "struct TakeOrderConfigV2 calldata" - } - }, - "id": 76727, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "21160:12:172", - "memberName": "inputIOIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 79019, - "src": "21143:29:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21108:65:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_IO_$78658_calldata_ptr", - "typeString": "struct IO calldata" - } - }, - "id": 76729, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "21174:8:172", - "memberName": "decimals", - "nodeType": "MemberAccess", - "referencedDeclaration": 78655, - "src": "21108:74:172", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "21024:158:172", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 76754, - "nodeType": "IfStatement", - "src": "20999:475:172", - "trueBody": { - "id": 76753, - "nodeType": "Block", - "src": "21201:273:172", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "expression": { - "baseExpression": { - "expression": { - "id": 76732, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76569, - "src": "21277:5:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 76733, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "21283:11:172", - "memberName": "validInputs", - "nodeType": "MemberAccess", - "referencedDeclaration": 79037, - "src": "21277:17:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_IO_$78658_memory_ptr_$dyn_memory_ptr", - "typeString": "struct IO memory[] memory" - } - }, - "id": 76736, - "indexExpression": { - "expression": { - "id": 76734, - "name": "takeOrderConfig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76565, - "src": "21295:15:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrderConfigV2_$79026_memory_ptr", - "typeString": "struct TakeOrderConfigV2 memory" - } - }, - "id": 76735, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "21311:12:172", - "memberName": "inputIOIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 79019, - "src": "21295:28:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21277:47:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_IO_$78658_memory_ptr", - "typeString": "struct IO memory" - } - }, - "id": 76737, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "21325:8:172", - "memberName": "decimals", - "nodeType": "MemberAccess", - "referencedDeclaration": 78655, - "src": "21277:56:172", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "expression": { - "baseExpression": { - "expression": { - "expression": { - "baseExpression": { - "expression": { - "id": 76738, - "name": "config", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76544, - "src": "21359:6:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrdersConfigV2_$79055_calldata_ptr", - "typeString": "struct TakeOrdersConfigV2 calldata" - } - }, - "id": 76739, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "21366:6:172", - "memberName": "orders", - "nodeType": "MemberAccess", - "referencedDeclaration": 79052, - "src": "21359:13:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TakeOrderConfigV2_$79026_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct TakeOrderConfigV2 calldata[] calldata" - } - }, - "id": 76741, - "indexExpression": { - "hexValue": "30", - "id": 76740, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21373:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21359:16:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrderConfigV2_$79026_calldata_ptr", - "typeString": "struct TakeOrderConfigV2 calldata" - } - }, - "id": 76742, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "21376:5:172", - "memberName": "order", - "nodeType": "MemberAccess", - "referencedDeclaration": 79017, - "src": "21359:22:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_calldata_ptr", - "typeString": "struct OrderV2 calldata" - } - }, - "id": 76743, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "21382:11:172", - "memberName": "validInputs", - "nodeType": "MemberAccess", - "referencedDeclaration": 79037, - "src": "21359:34:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_IO_$78658_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct IO calldata[] calldata" - } - }, - "id": 76749, - "indexExpression": { - "expression": { - "baseExpression": { - "expression": { - "id": 76744, - "name": "config", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76544, - "src": "21394:6:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrdersConfigV2_$79055_calldata_ptr", - "typeString": "struct TakeOrdersConfigV2 calldata" - } - }, - "id": 76745, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "21401:6:172", - "memberName": "orders", - "nodeType": "MemberAccess", - "referencedDeclaration": 79052, - "src": "21394:13:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TakeOrderConfigV2_$79026_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct TakeOrderConfigV2 calldata[] calldata" - } - }, - "id": 76747, - "indexExpression": { - "hexValue": "30", - "id": 76746, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21408:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21394:16:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrderConfigV2_$79026_calldata_ptr", - "typeString": "struct TakeOrderConfigV2 calldata" - } - }, - "id": 76748, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "21411:12:172", - "memberName": "inputIOIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 79019, - "src": "21394:29:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21359:65:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_IO_$78658_calldata_ptr", - "typeString": "struct IO calldata" - } - }, - "id": 76750, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "21425:8:172", - "memberName": "decimals", - "nodeType": "MemberAccess", - "referencedDeclaration": 78655, - "src": "21359:74:172", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 76731, - "name": "TokenDecimalsMismatch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 75898, - "src": "21230:21:172", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint8_$returns$__$", - "typeString": "function (uint8,uint8) pure" - } - }, - "id": 76751, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "21230:225:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 76752, - "nodeType": "RevertStatement", - "src": "21223:232:172" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 76774, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "baseExpression": { - "expression": { - "id": 76755, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76569, - "src": "21585:5:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 76756, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "21591:12:172", - "memberName": "validOutputs", - "nodeType": "MemberAccess", - "referencedDeclaration": 79041, - "src": "21585:18:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_IO_$78658_memory_ptr_$dyn_memory_ptr", - "typeString": "struct IO memory[] memory" - } - }, - "id": 76759, - "indexExpression": { - "expression": { - "id": 76757, - "name": "takeOrderConfig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76565, - "src": "21604:15:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrderConfigV2_$79026_memory_ptr", - "typeString": "struct TakeOrderConfigV2 memory" - } - }, - "id": 76758, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "21620:13:172", - "memberName": "outputIOIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 79021, - "src": "21604:29:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21585:49:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_IO_$78658_memory_ptr", - "typeString": "struct IO memory" - } - }, - "id": 76760, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "21635:8:172", - "memberName": "decimals", - "nodeType": "MemberAccess", - "referencedDeclaration": 78655, - "src": "21585:58:172", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "expression": { - "baseExpression": { - "expression": { - "expression": { - "baseExpression": { - "expression": { - "id": 76761, - "name": "config", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76544, - "src": "21671:6:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrdersConfigV2_$79055_calldata_ptr", - "typeString": "struct TakeOrdersConfigV2 calldata" - } - }, - "id": 76762, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "21678:6:172", - "memberName": "orders", - "nodeType": "MemberAccess", - "referencedDeclaration": 79052, - "src": "21671:13:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TakeOrderConfigV2_$79026_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct TakeOrderConfigV2 calldata[] calldata" - } - }, - "id": 76764, - "indexExpression": { - "hexValue": "30", - "id": 76763, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21685:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21671:16:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrderConfigV2_$79026_calldata_ptr", - "typeString": "struct TakeOrderConfigV2 calldata" - } - }, - "id": 76765, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "21688:5:172", - "memberName": "order", - "nodeType": "MemberAccess", - "referencedDeclaration": 79017, - "src": "21671:22:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_calldata_ptr", - "typeString": "struct OrderV2 calldata" - } - }, - "id": 76766, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "21694:12:172", - "memberName": "validOutputs", - "nodeType": "MemberAccess", - "referencedDeclaration": 79041, - "src": "21671:35:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_IO_$78658_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct IO calldata[] calldata" - } - }, - "id": 76772, - "indexExpression": { - "expression": { - "baseExpression": { - "expression": { - "id": 76767, - "name": "config", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76544, - "src": "21707:6:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrdersConfigV2_$79055_calldata_ptr", - "typeString": "struct TakeOrdersConfigV2 calldata" - } - }, - "id": 76768, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "21714:6:172", - "memberName": "orders", - "nodeType": "MemberAccess", - "referencedDeclaration": 79052, - "src": "21707:13:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TakeOrderConfigV2_$79026_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct TakeOrderConfigV2 calldata[] calldata" - } - }, - "id": 76770, - "indexExpression": { - "hexValue": "30", - "id": 76769, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21721:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21707:16:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrderConfigV2_$79026_calldata_ptr", - "typeString": "struct TakeOrderConfigV2 calldata" - } - }, - "id": 76771, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "21724:13:172", - "memberName": "outputIOIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 79021, - "src": "21707:30:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21671:67:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_IO_$78658_calldata_ptr", - "typeString": "struct IO calldata" - } - }, - "id": 76773, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "21739:8:172", - "memberName": "decimals", - "nodeType": "MemberAccess", - "referencedDeclaration": 78655, - "src": "21671:76:172", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "21585:162:172", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 76798, - "nodeType": "IfStatement", - "src": "21560:483:172", - "trueBody": { - "id": 76797, - "nodeType": "Block", - "src": "21766:277:172", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "expression": { - "baseExpression": { - "expression": { - "id": 76776, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76569, - "src": "21842:5:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 76777, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "21848:12:172", - "memberName": "validOutputs", - "nodeType": "MemberAccess", - "referencedDeclaration": 79041, - "src": "21842:18:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_IO_$78658_memory_ptr_$dyn_memory_ptr", - "typeString": "struct IO memory[] memory" - } - }, - "id": 76780, - "indexExpression": { - "expression": { - "id": 76778, - "name": "takeOrderConfig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76565, - "src": "21861:15:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrderConfigV2_$79026_memory_ptr", - "typeString": "struct TakeOrderConfigV2 memory" - } - }, - "id": 76779, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "21877:13:172", - "memberName": "outputIOIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 79021, - "src": "21861:29:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21842:49:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_IO_$78658_memory_ptr", - "typeString": "struct IO memory" - } - }, - "id": 76781, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "21892:8:172", - "memberName": "decimals", - "nodeType": "MemberAccess", - "referencedDeclaration": 78655, - "src": "21842:58:172", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "expression": { - "baseExpression": { - "expression": { - "expression": { - "baseExpression": { - "expression": { - "id": 76782, - "name": "config", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76544, - "src": "21926:6:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrdersConfigV2_$79055_calldata_ptr", - "typeString": "struct TakeOrdersConfigV2 calldata" - } - }, - "id": 76783, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "21933:6:172", - "memberName": "orders", - "nodeType": "MemberAccess", - "referencedDeclaration": 79052, - "src": "21926:13:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TakeOrderConfigV2_$79026_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct TakeOrderConfigV2 calldata[] calldata" - } - }, - "id": 76785, - "indexExpression": { - "hexValue": "30", - "id": 76784, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21940:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21926:16:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrderConfigV2_$79026_calldata_ptr", - "typeString": "struct TakeOrderConfigV2 calldata" - } - }, - "id": 76786, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "21943:5:172", - "memberName": "order", - "nodeType": "MemberAccess", - "referencedDeclaration": 79017, - "src": "21926:22:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_calldata_ptr", - "typeString": "struct OrderV2 calldata" - } - }, - "id": 76787, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "21949:12:172", - "memberName": "validOutputs", - "nodeType": "MemberAccess", - "referencedDeclaration": 79041, - "src": "21926:35:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_IO_$78658_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct IO calldata[] calldata" - } - }, - "id": 76793, - "indexExpression": { - "expression": { - "baseExpression": { - "expression": { - "id": 76788, - "name": "config", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76544, - "src": "21962:6:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrdersConfigV2_$79055_calldata_ptr", - "typeString": "struct TakeOrdersConfigV2 calldata" - } - }, - "id": 76789, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "21969:6:172", - "memberName": "orders", - "nodeType": "MemberAccess", - "referencedDeclaration": 79052, - "src": "21962:13:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TakeOrderConfigV2_$79026_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct TakeOrderConfigV2 calldata[] calldata" - } - }, - "id": 76791, - "indexExpression": { - "hexValue": "30", - "id": 76790, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21976:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21962:16:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrderConfigV2_$79026_calldata_ptr", - "typeString": "struct TakeOrderConfigV2 calldata" - } - }, - "id": 76792, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "21979:13:172", - "memberName": "outputIOIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 79021, - "src": "21962:30:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21926:67:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_IO_$78658_calldata_ptr", - "typeString": "struct IO calldata" - } - }, - "id": 76794, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "21994:8:172", - "memberName": "decimals", - "nodeType": "MemberAccess", - "referencedDeclaration": 78655, - "src": "21926:76:172", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 76775, - "name": "TokenDecimalsMismatch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 75898, - "src": "21795:21:172", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint8_$returns$__$", - "typeString": "function (uint8,uint8) pure" - } - }, - "id": 76795, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "21795:229:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 76796, - "nodeType": "RevertStatement", - "src": "21788:236:172" - } - ] - } - }, - { - "assignments": [ - 76800 - ], - "declarations": [ - { - "constant": false, - "id": 76800, - "mutability": "mutable", - "name": "orderHash", - "nameLocation": "22069:9:172", - "nodeType": "VariableDeclaration", - "scope": 76994, - "src": "22061:17:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 76799, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "22061:7:172", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "id": 76804, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 76801, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76569, - "src": "22081:5:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 76802, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "22087:4:172", - "memberName": "hash", - "nodeType": "MemberAccess", - "referencedDeclaration": 79344, - "src": "22081:10:172", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_OrderV2_$79042_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_OrderV2_$79042_memory_ptr_$", - "typeString": "function (struct OrderV2 memory) pure returns (bytes32)" - } - }, - "id": 76803, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "22081:12:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "22061:32:172" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 76809, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "baseExpression": { - "id": 76805, - "name": "sOrders", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76085, - "src": "22115:7:172", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 76807, - "indexExpression": { - "id": 76806, - "name": "orderHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76800, - "src": "22123:9:172", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22115:18:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "id": 76808, - "name": "ORDER_DEAD", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 75933, - "src": "22137:10:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "22115:32:172", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 76988, - "nodeType": "Block", - "src": "22250:4378:172", - "statements": [ - { - "assignments": [ - 76821 - ], - "declarations": [ - { - "constant": false, - "id": 76821, - "mutability": "mutable", - "name": "orderIOCalculation", - "nameLocation": "22300:18:172", - "nodeType": "VariableDeclaration", - "scope": 76988, - "src": "22272:46:172", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_memory_ptr", - "typeString": "struct OrderIOCalculationV2" - }, - "typeName": { - "id": 76820, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 76819, - "name": "OrderIOCalculationV2", - "nameLocations": [ - "22272:20:172" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 76041, - "src": "22272:20:172" - }, - "referencedDeclaration": 76041, - "src": "22272:20:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_storage_ptr", - "typeString": "struct OrderIOCalculationV2" - } - }, - "visibility": "internal" - } - ], - "id": 76833, - "initialValue": { - "arguments": [ - { - "id": 76823, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76569, - "src": "22363:5:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - { - "expression": { - "id": 76824, - "name": "takeOrderConfig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76565, - "src": "22394:15:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrderConfigV2_$79026_memory_ptr", - "typeString": "struct TakeOrderConfigV2 memory" - } - }, - "id": 76825, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "22410:12:172", - "memberName": "inputIOIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 79019, - "src": "22394:28:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 76826, - "name": "takeOrderConfig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76565, - "src": "22448:15:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrderConfigV2_$79026_memory_ptr", - "typeString": "struct TakeOrderConfigV2 memory" - } - }, - "id": 76827, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "22464:13:172", - "memberName": "outputIOIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 79021, - "src": "22448:29:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 76828, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "22503:3:172", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 76829, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "22507:6:172", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "22503:10:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 76830, - "name": "takeOrderConfig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76565, - "src": "22539:15:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrderConfigV2_$79026_memory_ptr", - "typeString": "struct TakeOrderConfigV2 memory" - } - }, - "id": 76831, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "22555:13:172", - "memberName": "signedContext", - "nodeType": "MemberAccess", - "referencedDeclaration": 79025, - "src": "22539:29:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_SignedContextV1_$55640_memory_ptr_$dyn_memory_ptr", - "typeString": "struct SignedContextV1 memory[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_array$_t_struct$_SignedContextV1_$55640_memory_ptr_$dyn_memory_ptr", - "typeString": "struct SignedContextV1 memory[] memory" - } - ], - "id": 76822, - "name": "calculateOrderIO", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77792, - "src": "22321:16:172", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_OrderV2_$79042_memory_ptr_$_t_uint256_$_t_uint256_$_t_address_$_t_array$_t_struct$_SignedContextV1_$55640_memory_ptr_$dyn_memory_ptr_$returns$_t_struct$_OrderIOCalculationV2_$76041_memory_ptr_$", - "typeString": "function (struct OrderV2 memory,uint256,uint256,address,struct SignedContextV1 memory[] memory) view returns (struct OrderIOCalculationV2 memory)" - } - }, - "id": 76832, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "22321:269:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_memory_ptr", - "typeString": "struct OrderIOCalculationV2 memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "22272:318:172" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 76838, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 76834, - "name": "orderIOCalculation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76821, - "src": "22960:18:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_memory_ptr", - "typeString": "struct OrderIOCalculationV2 memory" - } - }, - "id": 76835, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "22979:7:172", - "memberName": "IORatio", - "nodeType": "MemberAccess", - "referencedDeclaration": 76030, - "src": "22960:26:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "expression": { - "id": 76836, - "name": "config", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76544, - "src": "22989:6:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrdersConfigV2_$79055_calldata_ptr", - "typeString": "struct TakeOrdersConfigV2 calldata" - } - }, - "id": 76837, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "22996:14:172", - "memberName": "maximumIORatio", - "nodeType": "MemberAccess", - "referencedDeclaration": 79048, - "src": "22989:21:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "22960:50:172", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 76854, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "expression": { - "id": 76850, - "name": "orderIOCalculation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76821, - "src": "23154:18:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_memory_ptr", - "typeString": "struct OrderIOCalculationV2 memory" - } - }, - "id": 76851, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "23173:9:172", - "memberName": "outputMax", - "nodeType": "MemberAccess", - "referencedDeclaration": 76028, - "src": "23154:28:172", - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_Output18Amount_$76043", - "typeString": "Output18Amount" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_userDefinedValueType$_Output18Amount_$76043", - "typeString": "Output18Amount" - } - ], - "expression": { - "id": 76848, - "name": "Output18Amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76043, - "src": "23132:14:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_userDefinedValueType$_Output18Amount_$76043_$", - "typeString": "type(Output18Amount)" - } - }, - "id": 76849, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "23147:6:172", - "memberName": "unwrap", - "nodeType": "MemberAccess", - "src": "23132:21:172", - "typeDescriptions": { - "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_Output18Amount_$76043_$returns$_t_uint256_$", - "typeString": "function (Output18Amount) pure returns (uint256)" - } - }, - "id": 76852, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "23132:51:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 76853, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23187:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "23132:56:172", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 76985, - "nodeType": "Block", - "src": "23301:3309:172", - "statements": [ - { - "assignments": [ - 76865 - ], - "declarations": [ - { - "constant": false, - "id": 76865, - "mutability": "mutable", - "name": "takerInputDecimals", - "nameLocation": "23333:18:172", - "nodeType": "VariableDeclaration", - "scope": 76985, - "src": "23327:24:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 76864, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "23327:5:172", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "visibility": "internal" - } - ], - "id": 76872, - "initialValue": { - "expression": { - "baseExpression": { - "expression": { - "id": 76866, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76569, - "src": "23354:5:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 76867, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "23360:12:172", - "memberName": "validOutputs", - "nodeType": "MemberAccess", - "referencedDeclaration": 79041, - "src": "23354:18:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_IO_$78658_memory_ptr_$dyn_memory_ptr", - "typeString": "struct IO memory[] memory" - } - }, - "id": 76870, - "indexExpression": { - "expression": { - "id": 76868, - "name": "takeOrderConfig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76565, - "src": "23373:15:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrderConfigV2_$79026_memory_ptr", - "typeString": "struct TakeOrderConfigV2 memory" - } - }, - "id": 76869, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "23389:13:172", - "memberName": "outputIOIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 79021, - "src": "23373:29:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "23354:49:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_IO_$78658_memory_ptr", - "typeString": "struct IO memory" - } - }, - "id": 76871, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "23404:8:172", - "memberName": "decimals", - "nodeType": "MemberAccess", - "referencedDeclaration": 78655, - "src": "23354:58:172", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "23327:85:172" - }, - { - "assignments": [ - 76875 - ], - "declarations": [ - { - "constant": false, - "id": 76875, - "mutability": "mutable", - "name": "takerInput18", - "nameLocation": "23531:12:172", - "nodeType": "VariableDeclaration", - "scope": 76985, - "src": "23517:26:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_Input18Amount_$76045", - "typeString": "Input18Amount" - }, - "typeName": { - "id": 76874, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 76873, - "name": "Input18Amount", - "nameLocations": [ - "23517:13:172" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 76045, - "src": "23517:13:172" - }, - "referencedDeclaration": 76045, - "src": "23517:13:172", - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_Input18Amount_$76045", - "typeString": "Input18Amount" - } - }, - "visibility": "internal" - } - ], - "id": 76884, - "initialValue": { - "arguments": [ - { - "arguments": [ - { - "expression": { - "id": 76880, - "name": "orderIOCalculation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76821, - "src": "23615:18:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_memory_ptr", - "typeString": "struct OrderIOCalculationV2 memory" - } - }, - "id": 76881, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "23634:9:172", - "memberName": "outputMax", - "nodeType": "MemberAccess", - "referencedDeclaration": 76028, - "src": "23615:28:172", - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_Output18Amount_$76043", - "typeString": "Output18Amount" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_userDefinedValueType$_Output18Amount_$76043", - "typeString": "Output18Amount" - } - ], - "expression": { - "id": 76878, - "name": "Output18Amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76043, - "src": "23593:14:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_userDefinedValueType$_Output18Amount_$76043_$", - "typeString": "type(Output18Amount)" - } - }, - "id": 76879, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "23608:6:172", - "memberName": "unwrap", - "nodeType": "MemberAccess", - "src": "23593:21:172", - "typeDescriptions": { - "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_Output18Amount_$76043_$returns$_t_uint256_$", - "typeString": "function (Output18Amount) pure returns (uint256)" - } - }, - "id": 76882, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "23593:51:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 76876, - "name": "Input18Amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76045, - "src": "23574:13:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_userDefinedValueType$_Input18Amount_$76045_$", - "typeString": "type(Input18Amount)" - } - }, - "id": 76877, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "23588:4:172", - "memberName": "wrap", - "nodeType": "MemberAccess", - "src": "23574:18:172", - "typeDescriptions": { - "typeIdentifier": "t_function_wrap_pure$_t_uint256_$returns$_t_userDefinedValueType$_Input18Amount_$76045_$", - "typeString": "function (uint256) pure returns (Input18Amount)" - } - }, - "id": 76883, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "23574:71:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_Input18Amount_$76045", - "typeString": "Input18Amount" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "23517:128:172" - }, - { - "id": 76912, - "nodeType": "Block", - "src": "23966:534:172", - "statements": [ - { - "assignments": [ - 76887 - ], - "declarations": [ - { - "constant": false, - "id": 76887, - "mutability": "mutable", - "name": "remainingTakerInput18", - "nameLocation": "24119:21:172", - "nodeType": "VariableDeclaration", - "scope": 76912, - "src": "24105:35:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_Input18Amount_$76045", - "typeString": "Input18Amount" - }, - "typeName": { - "id": 76886, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 76885, - "name": "Input18Amount", - "nameLocations": [ - "24105:13:172" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 76045, - "src": "24105:13:172" - }, - "referencedDeclaration": 76045, - "src": "24105:13:172", - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_Input18Amount_$76045", - "typeString": "Input18Amount" - } - }, - "visibility": "internal" - } - ], - "id": 76896, - "initialValue": { - "arguments": [ - { - "arguments": [ - { - "id": 76892, - "name": "takerInputDecimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76865, - "src": "24222:18:172", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "id": 76893, - "name": "FLAG_SATURATE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 72392, - "src": "24242:13:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 76890, - "name": "remainingTakerInput", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76586, - "src": "24194:19:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 76891, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "24214:7:172", - "memberName": "scale18", - "nodeType": "MemberAccess", - "referencedDeclaration": 72704, - "src": "24194:27:172", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$", - "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" - } - }, - "id": 76894, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "24194:62:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 76888, - "name": "Input18Amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76045, - "src": "24175:13:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_userDefinedValueType$_Input18Amount_$76045_$", - "typeString": "type(Input18Amount)" - } - }, - "id": 76889, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "24189:4:172", - "memberName": "wrap", - "nodeType": "MemberAccess", - "src": "24175:18:172", - "typeDescriptions": { - "typeIdentifier": "t_function_wrap_pure$_t_uint256_$returns$_t_userDefinedValueType$_Input18Amount_$76045_$", - "typeString": "function (uint256) pure returns (Input18Amount)" - } - }, - "id": 76895, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "24175:82:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_Input18Amount_$76045", - "typeString": "Input18Amount" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "24105:152:172" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 76905, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "id": 76899, - "name": "takerInput18", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76875, - "src": "24312:12:172", - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_Input18Amount_$76045", - "typeString": "Input18Amount" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_userDefinedValueType$_Input18Amount_$76045", - "typeString": "Input18Amount" - } - ], - "expression": { - "id": 76897, - "name": "Input18Amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76045, - "src": "24291:13:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_userDefinedValueType$_Input18Amount_$76045_$", - "typeString": "type(Input18Amount)" - } - }, - "id": 76898, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "24305:6:172", - "memberName": "unwrap", - "nodeType": "MemberAccess", - "src": "24291:20:172", - "typeDescriptions": { - "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_Input18Amount_$76045_$returns$_t_uint256_$", - "typeString": "function (Input18Amount) pure returns (uint256)" - } - }, - "id": 76900, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "24291:34:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "arguments": [ - { - "id": 76903, - "name": "remainingTakerInput18", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76887, - "src": "24349:21:172", - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_Input18Amount_$76045", - "typeString": "Input18Amount" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_userDefinedValueType$_Input18Amount_$76045", - "typeString": "Input18Amount" - } - ], - "expression": { - "id": 76901, - "name": "Input18Amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76045, - "src": "24328:13:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_userDefinedValueType$_Input18Amount_$76045_$", - "typeString": "type(Input18Amount)" - } - }, - "id": 76902, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "24342:6:172", - "memberName": "unwrap", - "nodeType": "MemberAccess", - "src": "24328:20:172", - "typeDescriptions": { - "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_Input18Amount_$76045_$returns$_t_uint256_$", - "typeString": "function (Input18Amount) pure returns (uint256)" - } - }, - "id": 76904, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "24328:43:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "24291:80:172", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 76911, - "nodeType": "IfStatement", - "src": "24287:187:172", - "trueBody": { - "id": 76910, - "nodeType": "Block", - "src": "24373:101:172", - "statements": [ - { - "expression": { - "id": 76908, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 76906, - "name": "takerInput18", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76875, - "src": "24407:12:172", - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_Input18Amount_$76045", - "typeString": "Input18Amount" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 76907, - "name": "remainingTakerInput18", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76887, - "src": "24422:21:172", - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_Input18Amount_$76045", - "typeString": "Input18Amount" - } - }, - "src": "24407:36:172", - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_Input18Amount_$76045", - "typeString": "Input18Amount" - } - }, - "id": 76909, - "nodeType": "ExpressionStatement", - "src": "24407:36:172" - } - ] - } - } - ] - }, - { - "assignments": [ - 76914 - ], - "declarations": [ - { - "constant": false, - "id": 76914, - "mutability": "mutable", - "name": "takerOutput", - "nameLocation": "24534:11:172", - "nodeType": "VariableDeclaration", - "scope": 76985, - "src": "24526:19:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 76913, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24526:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 76915, - "nodeType": "VariableDeclarationStatement", - "src": "24526:19:172" - }, - { - "id": 76950, - "nodeType": "Block", - "src": "24571:772:172", - "statements": [ - { - "assignments": [ - 76918 - ], - "declarations": [ - { - "constant": false, - "id": 76918, - "mutability": "mutable", - "name": "takerOutput18", - "nameLocation": "24703:13:172", - "nodeType": "VariableDeclaration", - "scope": 76950, - "src": "24688:28:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_Output18Amount_$76043", - "typeString": "Output18Amount" - }, - "typeName": { - "id": 76917, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 76916, - "name": "Output18Amount", - "nameLocations": [ - "24688:14:172" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 76043, - "src": "24688:14:172" - }, - "referencedDeclaration": 76043, - "src": "24688:14:172", - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_Output18Amount_$76043", - "typeString": "Output18Amount" - } - }, - "visibility": "internal" - } - ], - "id": 76933, - "initialValue": { - "arguments": [ - { - "arguments": [ - { - "expression": { - "id": 76926, - "name": "orderIOCalculation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76821, - "src": "24986:18:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_memory_ptr", - "typeString": "struct OrderIOCalculationV2 memory" - } - }, - "id": 76927, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "25005:7:172", - "memberName": "IORatio", - "nodeType": "MemberAccess", - "referencedDeclaration": 76030, - "src": "24986:26:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "expression": { - "id": 76928, - "name": "Math", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46932, - "src": "25014:4:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Math_$46932_$", - "typeString": "type(library Math)" - } - }, - "id": 76929, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "25019:8:172", - "memberName": "Rounding", - "nodeType": "MemberAccess", - "referencedDeclaration": 46073, - "src": "25014:13:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Rounding_$46073_$", - "typeString": "type(enum Math.Rounding)" - } - }, - "id": 76930, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "25028:2:172", - "memberName": "Up", - "nodeType": "MemberAccess", - "referencedDeclaration": 46071, - "src": "25014:16:172", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$46073", - "typeString": "enum Math.Rounding" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_enum$_Rounding_$46073", - "typeString": "enum Math.Rounding" - } - ], - "expression": { - "arguments": [ - { - "id": 76923, - "name": "takerInput18", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76875, - "src": "24921:12:172", - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_Input18Amount_$76045", - "typeString": "Input18Amount" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_userDefinedValueType$_Input18Amount_$76045", - "typeString": "Input18Amount" - } - ], - "expression": { - "id": 76921, - "name": "Input18Amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76045, - "src": "24900:13:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_userDefinedValueType$_Input18Amount_$76045_$", - "typeString": "type(Input18Amount)" - } - }, - "id": 76922, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "24914:6:172", - "memberName": "unwrap", - "nodeType": "MemberAccess", - "src": "24900:20:172", - "typeDescriptions": { - "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_Input18Amount_$76045_$returns$_t_uint256_$", - "typeString": "function (Input18Amount) pure returns (uint256)" - } - }, - "id": 76924, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "24900:34:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 76925, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "24935:13:172", - "memberName": "fixedPointMul", - "nodeType": "MemberAccess", - "referencedDeclaration": 72431, - "src": "24900:48:172", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_enum$_Rounding_$46073_$returns$_t_uint256_$attached_to$_t_uint256_$", - "typeString": "function (uint256,uint256,enum Math.Rounding) pure returns (uint256)" - } - }, - "id": 76931, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "24900:164:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 76919, - "name": "Output18Amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76043, - "src": "24719:14:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_userDefinedValueType$_Output18Amount_$76043_$", - "typeString": "type(Output18Amount)" - } - }, - "id": 76920, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "24734:4:172", - "memberName": "wrap", - "nodeType": "MemberAccess", - "src": "24719:19:172", - "typeDescriptions": { - "typeIdentifier": "t_function_wrap_pure$_t_uint256_$returns$_t_userDefinedValueType$_Output18Amount_$76043_$", - "typeString": "function (uint256) pure returns (Output18Amount)" - } - }, - "id": 76932, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "24719:375:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_Output18Amount_$76043", - "typeString": "Output18Amount" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "24688:406:172" - }, - { - "expression": { - "id": 76948, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 76934, - "name": "takerOutput", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76914, - "src": "25124:11:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "expression": { - "baseExpression": { - "expression": { - "id": 76940, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76569, - "src": "25215:5:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 76941, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "25221:11:172", - "memberName": "validInputs", - "nodeType": "MemberAccess", - "referencedDeclaration": 79037, - "src": "25215:17:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_IO_$78658_memory_ptr_$dyn_memory_ptr", - "typeString": "struct IO memory[] memory" - } - }, - "id": 76944, - "indexExpression": { - "expression": { - "id": 76942, - "name": "takeOrderConfig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76565, - "src": "25233:15:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrderConfigV2_$79026_memory_ptr", - "typeString": "struct TakeOrderConfigV2 memory" - } - }, - "id": 76943, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "25249:12:172", - "memberName": "inputIOIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 79019, - "src": "25233:28:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "25215:47:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_IO_$78658_memory_ptr", - "typeString": "struct IO memory" - } - }, - "id": 76945, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "25263:8:172", - "memberName": "decimals", - "nodeType": "MemberAccess", - "referencedDeclaration": 78655, - "src": "25215:56:172", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "id": 76946, - "name": "FLAG_ROUND_UP", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 72386, - "src": "25273:13:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "arguments": [ - { - "id": 76937, - "name": "takerOutput18", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76918, - "src": "25160:13:172", - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_Output18Amount_$76043", - "typeString": "Output18Amount" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_userDefinedValueType$_Output18Amount_$76043", - "typeString": "Output18Amount" - } - ], - "expression": { - "id": 76935, - "name": "Output18Amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76043, - "src": "25138:14:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_userDefinedValueType$_Output18Amount_$76043_$", - "typeString": "type(Output18Amount)" - } - }, - "id": 76936, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "25153:6:172", - "memberName": "unwrap", - "nodeType": "MemberAccess", - "src": "25138:21:172", - "typeDescriptions": { - "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_Output18Amount_$76043_$returns$_t_uint256_$", - "typeString": "function (Output18Amount) pure returns (uint256)" - } - }, - "id": 76938, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "25138:36:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 76939, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "25175:6:172", - "memberName": "scaleN", - "nodeType": "MemberAccess", - "referencedDeclaration": 72779, - "src": "25138:43:172", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$", - "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" - } - }, - "id": 76947, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "25138:178:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "25124:192:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 76949, - "nodeType": "ExpressionStatement", - "src": "25124:192:172" - } - ] - }, - { - "assignments": [ - 76952 - ], - "declarations": [ - { - "constant": false, - "id": 76952, - "mutability": "mutable", - "name": "takerInput", - "nameLocation": "25377:10:172", - "nodeType": "VariableDeclaration", - "scope": 76985, - "src": "25369:18:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 76951, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25369:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 76961, - "initialValue": { - "arguments": [ - { - "id": 76958, - "name": "takerInputDecimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76865, - "src": "25460:18:172", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "id": 76959, - "name": "FLAG_SATURATE", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 72392, - "src": "25480:13:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "arguments": [ - { - "id": 76955, - "name": "takerInput18", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76875, - "src": "25439:12:172", - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_Input18Amount_$76045", - "typeString": "Input18Amount" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_userDefinedValueType$_Input18Amount_$76045", - "typeString": "Input18Amount" - } - ], - "expression": { - "id": 76953, - "name": "Input18Amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76045, - "src": "25418:13:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_userDefinedValueType$_Input18Amount_$76045_$", - "typeString": "type(Input18Amount)" - } - }, - "id": 76954, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "25432:6:172", - "memberName": "unwrap", - "nodeType": "MemberAccess", - "src": "25418:20:172", - "typeDescriptions": { - "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_Input18Amount_$76045_$returns$_t_uint256_$", - "typeString": "function (Input18Amount) pure returns (uint256)" - } - }, - "id": 76956, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "25418:34:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 76957, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "25453:6:172", - "memberName": "scaleN", - "nodeType": "MemberAccess", - "referencedDeclaration": 72779, - "src": "25418:41:172", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$", - "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" - } - }, - "id": 76960, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "25418:76:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "25369:125:172" - }, - { - "expression": { - "id": 76964, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 76962, - "name": "remainingTakerInput", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76586, - "src": "25521:19:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "id": 76963, - "name": "takerInput", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76952, - "src": "25544:10:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "25521:33:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 76965, - "nodeType": "ExpressionStatement", - "src": "25521:33:172" - }, - { - "expression": { - "id": 76968, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 76966, - "name": "totalTakerOutput", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76551, - "src": "25580:16:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "id": 76967, - "name": "takerOutput", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76914, - "src": "25600:11:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "25580:31:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 76969, - "nodeType": "ExpressionStatement", - "src": "25580:31:172" - }, - { - "expression": { - "arguments": [ - { - "id": 76971, - "name": "takerOutput", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76914, - "src": "25652:11:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 76972, - "name": "takerInput", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76952, - "src": "25665:10:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 76973, - "name": "orderIOCalculation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76821, - "src": "25677:18:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_memory_ptr", - "typeString": "struct OrderIOCalculationV2 memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_memory_ptr", - "typeString": "struct OrderIOCalculationV2 memory" - } - ], - "id": 76970, - "name": "recordVaultIO", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77897, - "src": "25638:13:172", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_struct$_OrderIOCalculationV2_$76041_memory_ptr_$returns$__$", - "typeString": "function (uint256,uint256,struct OrderIOCalculationV2 memory)" - } - }, - "id": 76974, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "25638:58:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 76975, - "nodeType": "ExpressionStatement", - "src": "25638:58:172" - }, - { - "eventCall": { - "arguments": [ - { - "expression": { - "id": 76977, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "25737:3:172", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 76978, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "25741:6:172", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "25737:10:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 76979, - "name": "takeOrderConfig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76565, - "src": "25749:15:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrderConfigV2_$79026_memory_ptr", - "typeString": "struct TakeOrderConfigV2 memory" - } - }, - { - "id": 76980, - "name": "takerInput", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76952, - "src": "25766:10:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 76981, - "name": "takerOutput", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76914, - "src": "25778:11:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_struct$_TakeOrderConfigV2_$79026_memory_ptr", - "typeString": "struct TakeOrderConfigV2 memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 76976, - "name": "TakeOrder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 79149, - "src": "25727:9:172", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_struct$_TakeOrderConfigV2_$79026_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,struct TakeOrderConfigV2 memory,uint256,uint256)" - } - }, - "id": 76982, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "25727:63:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 76983, - "nodeType": "EmitStatement", - "src": "25722:68:172" - }, - { - "AST": { - "nodeType": "YulBlock", - "src": "26157:431:172", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "26239:59:172", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "orderIOCalculationsToHandle", - "nodeType": "YulIdentifier", - "src": "26266:27:172" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "26260:5:172" - }, - "nodeType": "YulFunctionCall", - "src": "26260:34:172" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "26296:1:172", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "26256:3:172" - }, - "nodeType": "YulFunctionCall", - "src": "26256:42:172" - }, - "variables": [ - { - "name": "newLength", - "nodeType": "YulTypedName", - "src": "26243:9:172", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "orderIOCalculationsToHandle", - "nodeType": "YulIdentifier", - "src": "26334:27:172" - }, - { - "name": "newLength", - "nodeType": "YulIdentifier", - "src": "26363:9:172" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "26327:6:172" - }, - "nodeType": "YulFunctionCall", - "src": "26327:46:172" - }, - "nodeType": "YulExpressionStatement", - "src": "26327:46:172" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "orderIOCalculationsToHandle", - "nodeType": "YulIdentifier", - "src": "26491:27:172" - }, - { - "arguments": [ - { - "name": "newLength", - "nodeType": "YulIdentifier", - "src": "26524:9:172" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "26535:4:172", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "mul", - "nodeType": "YulIdentifier", - "src": "26520:3:172" - }, - "nodeType": "YulFunctionCall", - "src": "26520:20:172" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "26487:3:172" - }, - "nodeType": "YulFunctionCall", - "src": "26487:54:172" - }, - { - "name": "orderIOCalculation", - "nodeType": "YulIdentifier", - "src": "26543:18:172" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "26480:6:172" - }, - "nodeType": "YulFunctionCall", - "src": "26480:82:172" - }, - "nodeType": "YulExpressionStatement", - "src": "26480:82:172" - } - ] - }, - "evmVersion": "paris", - "externalReferences": [ - { - "declaration": 76821, - "isOffset": false, - "isSlot": false, - "src": "26543:18:172", - "valueSize": 1 - }, - { - "declaration": 76575, - "isOffset": false, - "isSlot": false, - "src": "26266:27:172", - "valueSize": 1 - }, - { - "declaration": 76575, - "isOffset": false, - "isSlot": false, - "src": "26334:27:172", - "valueSize": 1 - }, - { - "declaration": 76575, - "isOffset": false, - "isSlot": false, - "src": "26491:27:172", - "valueSize": 1 - } - ], - "flags": [ - "memory-safe" - ], - "id": 76984, - "nodeType": "InlineAssembly", - "src": "26132:456:172" - } - ] - }, - "id": 76986, - "nodeType": "IfStatement", - "src": "23128:3482:172", - "trueBody": { - "id": 76863, - "nodeType": "Block", - "src": "23190:105:172", - "statements": [ - { - "eventCall": { - "arguments": [ - { - "expression": { - "id": 76856, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "23237:3:172", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 76857, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "23241:6:172", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "23237:10:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 76858, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76569, - "src": "23249:5:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 76859, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "23255:5:172", - "memberName": "owner", - "nodeType": "MemberAccess", - "referencedDeclaration": 79028, - "src": "23249:11:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 76860, - "name": "orderHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76800, - "src": "23262:9:172", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 76855, - "name": "OrderZeroAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 79167, - "src": "23221:15:172", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bytes32_$returns$__$", - "typeString": "function (address,address,bytes32)" - } - }, - "id": 76861, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "23221:51:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 76862, - "nodeType": "EmitStatement", - "src": "23216:56:172" - } - ] - } - }, - "id": 76987, - "nodeType": "IfStatement", - "src": "22956:3654:172", - "trueBody": { - "id": 76847, - "nodeType": "Block", - "src": "23012:110:172", - "statements": [ - { - "eventCall": { - "arguments": [ - { - "expression": { - "id": 76840, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "23064:3:172", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 76841, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "23068:6:172", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "23064:10:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 76842, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76569, - "src": "23076:5:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 76843, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "23082:5:172", - "memberName": "owner", - "nodeType": "MemberAccess", - "referencedDeclaration": 79028, - "src": "23076:11:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 76844, - "name": "orderHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76800, - "src": "23089:9:172", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 76839, - "name": "OrderExceedsMaxRatio", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 79176, - "src": "23043:20:172", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bytes32_$returns$__$", - "typeString": "function (address,address,bytes32)" - } - }, - "id": 76845, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "23043:56:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 76846, - "nodeType": "EmitStatement", - "src": "23038:61:172" - } - ] - } - } - ] - }, - "id": 76989, - "nodeType": "IfStatement", - "src": "22111:4517:172", - "trueBody": { - "id": 76818, - "nodeType": "Block", - "src": "22149:95:172", - "statements": [ - { - "eventCall": { - "arguments": [ - { - "expression": { - "id": 76811, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "22190:3:172", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 76812, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "22194:6:172", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "22190:10:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 76813, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76569, - "src": "22202:5:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 76814, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "22208:5:172", - "memberName": "owner", - "nodeType": "MemberAccess", - "referencedDeclaration": 79028, - "src": "22202:11:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 76815, - "name": "orderHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76800, - "src": "22215:9:172", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 76810, - "name": "OrderNotFound", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 79158, - "src": "22176:13:172", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bytes32_$returns$__$", - "typeString": "function (address,address,bytes32)" - } - }, - "id": 76816, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "22176:49:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 76817, - "nodeType": "EmitStatement", - "src": "22171:54:172" - } - ] - } - }, - { - "id": 76993, - "nodeType": "UncheckedBlock", - "src": "26646:54:172", - "statements": [ - { - "expression": { - "id": 76991, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "26678:3:172", - "subExpression": { - "id": 76990, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76599, - "src": "26678:1:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 76992, - "nodeType": "ExpressionStatement", - "src": "26678:3:172" - } - ] - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 76610, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 76606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 76602, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76599, - "src": "19690:1:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "expression": { - "expression": { - "id": 76603, - "name": "config", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76544, - "src": "19694:6:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrdersConfigV2_$79055_calldata_ptr", - "typeString": "struct TakeOrdersConfigV2 calldata" - } - }, - "id": 76604, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "19701:6:172", - "memberName": "orders", - "nodeType": "MemberAccess", - "referencedDeclaration": 79052, - "src": "19694:13:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TakeOrderConfigV2_$79026_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct TakeOrderConfigV2 calldata[] calldata" - } - }, - "id": 76605, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "19708:6:172", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "19694:20:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "19690:24:172", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 76609, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 76607, - "name": "remainingTakerInput", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76586, - "src": "19718:19:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 76608, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19740:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "19718:23:172", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "19690:51:172", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 76995, - "nodeType": "WhileStatement", - "src": "19683:7031:172" - }, - { - "expression": { - "id": 77001, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 76996, - "name": "totalTakerInput", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76549, - "src": "26727:15:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 77000, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 76997, - "name": "config", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76544, - "src": "26745:6:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrdersConfigV2_$79055_calldata_ptr", - "typeString": "struct TakeOrdersConfigV2 calldata" - } - }, - "id": 76998, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "26752:12:172", - "memberName": "maximumInput", - "nodeType": "MemberAccess", - "referencedDeclaration": 79046, - "src": "26745:19:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "id": 76999, - "name": "remainingTakerInput", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76586, - "src": "26767:19:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "26745:41:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "26727:59:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 77002, - "nodeType": "ExpressionStatement", - "src": "26727:59:172" - } - ] - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 77007, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 77004, - "name": "totalTakerInput", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76549, - "src": "26811:15:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "expression": { - "id": 77005, - "name": "config", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76544, - "src": "26829:6:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrdersConfigV2_$79055_calldata_ptr", - "typeString": "struct TakeOrdersConfigV2 calldata" - } - }, - "id": 77006, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "26836:12:172", - "memberName": "minimumInput", - "nodeType": "MemberAccess", - "referencedDeclaration": 79044, - "src": "26829:19:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "26811:37:172", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 77015, - "nodeType": "IfStatement", - "src": "26807:125:172", - "trueBody": { - "id": 77014, - "nodeType": "Block", - "src": "26850:82:172", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "expression": { - "id": 77009, - "name": "config", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76544, - "src": "26884:6:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrdersConfigV2_$79055_calldata_ptr", - "typeString": "struct TakeOrdersConfigV2 calldata" - } - }, - "id": 77010, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "26891:12:172", - "memberName": "minimumInput", - "nodeType": "MemberAccess", - "referencedDeclaration": 79044, - "src": "26884:19:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 77011, - "name": "totalTakerInput", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76549, - "src": "26905:15:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 77008, - "name": "MinimumInput", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 75905, - "src": "26871:12:172", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,uint256) pure" - } - }, - "id": 77012, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "26871:50:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 77013, - "nodeType": "RevertStatement", - "src": "26864:57:172" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 77018, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 77016, - "name": "totalTakerInput", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76549, - "src": "27619:15:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 77017, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27637:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "27619:19:172", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 77041, - "nodeType": "IfStatement", - "src": "27615:203:172", - "trueBody": { - "id": 77040, - "nodeType": "Block", - "src": "27640:178:172", - "statements": [ - { - "expression": { - "arguments": [ - { - "expression": { - "id": 77035, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "27766:3:172", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 77036, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "27770:6:172", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "27766:10:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 77037, - "name": "totalTakerInput", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76549, - "src": "27778:15:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "arguments": [ - { - "expression": { - "baseExpression": { - "expression": { - "expression": { - "baseExpression": { - "expression": { - "id": 77020, - "name": "config", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76544, - "src": "27661:6:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrdersConfigV2_$79055_calldata_ptr", - "typeString": "struct TakeOrdersConfigV2 calldata" - } - }, - "id": 77021, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "27668:6:172", - "memberName": "orders", - "nodeType": "MemberAccess", - "referencedDeclaration": 79052, - "src": "27661:13:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TakeOrderConfigV2_$79026_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct TakeOrderConfigV2 calldata[] calldata" - } - }, - "id": 77023, - "indexExpression": { - "hexValue": "30", - "id": 77022, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27675:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "27661:16:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrderConfigV2_$79026_calldata_ptr", - "typeString": "struct TakeOrderConfigV2 calldata" - } - }, - "id": 77024, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "27678:5:172", - "memberName": "order", - "nodeType": "MemberAccess", - "referencedDeclaration": 79017, - "src": "27661:22:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_calldata_ptr", - "typeString": "struct OrderV2 calldata" - } - }, - "id": 77025, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "27684:12:172", - "memberName": "validOutputs", - "nodeType": "MemberAccess", - "referencedDeclaration": 79041, - "src": "27661:35:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_IO_$78658_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct IO calldata[] calldata" - } - }, - "id": 77031, - "indexExpression": { - "expression": { - "baseExpression": { - "expression": { - "id": 77026, - "name": "config", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76544, - "src": "27697:6:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrdersConfigV2_$79055_calldata_ptr", - "typeString": "struct TakeOrdersConfigV2 calldata" - } - }, - "id": 77027, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "27704:6:172", - "memberName": "orders", - "nodeType": "MemberAccess", - "referencedDeclaration": 79052, - "src": "27697:13:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TakeOrderConfigV2_$79026_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct TakeOrderConfigV2 calldata[] calldata" - } - }, - "id": 77029, - "indexExpression": { - "hexValue": "30", - "id": 77028, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27711:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "27697:16:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrderConfigV2_$79026_calldata_ptr", - "typeString": "struct TakeOrderConfigV2 calldata" - } - }, - "id": 77030, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "27714:13:172", - "memberName": "outputIOIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 79021, - "src": "27697:30:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "27661:67:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_IO_$78658_calldata_ptr", - "typeString": "struct IO calldata" - } - }, - "id": 77032, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "27729:5:172", - "memberName": "token", - "nodeType": "MemberAccess", - "referencedDeclaration": 78653, - "src": "27661:73:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 77019, - "name": "IERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 44376, - "src": "27654:6:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$44376_$", - "typeString": "type(contract IERC20)" - } - }, - "id": 77033, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "27654:81:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$44376", - "typeString": "contract IERC20" - } - }, - "id": 77034, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "27736:12:172", - "memberName": "safeTransfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 44470, - "src": "27654:94:172", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$44376_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$44376_$", - "typeString": "function (contract IERC20,address,uint256)" - } - }, - "id": 77038, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "27654:153:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 77039, - "nodeType": "ExpressionStatement", - "src": "27654:153:172" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 77046, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "expression": { - "id": 77042, - "name": "config", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76544, - "src": "27832:6:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrdersConfigV2_$79055_calldata_ptr", - "typeString": "struct TakeOrdersConfigV2 calldata" - } - }, - "id": 77043, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "27839:4:172", - "memberName": "data", - "nodeType": "MemberAccess", - "referencedDeclaration": 79054, - "src": "27832:11:172", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "id": 77044, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "27844:6:172", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "27832:18:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 77045, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27853:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "27832:22:172", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 77085, - "nodeType": "IfStatement", - "src": "27828:390:172", - "trueBody": { - "id": 77084, - "nodeType": "Block", - "src": "27856:362:172", - "statements": [ - { - "expression": { - "arguments": [ - { - "expression": { - "baseExpression": { - "expression": { - "expression": { - "baseExpression": { - "expression": { - "id": 77052, - "name": "config", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76544, - "src": "27935:6:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrdersConfigV2_$79055_calldata_ptr", - "typeString": "struct TakeOrdersConfigV2 calldata" - } - }, - "id": 77053, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "27942:6:172", - "memberName": "orders", - "nodeType": "MemberAccess", - "referencedDeclaration": 79052, - "src": "27935:13:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TakeOrderConfigV2_$79026_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct TakeOrderConfigV2 calldata[] calldata" - } - }, - "id": 77055, - "indexExpression": { - "hexValue": "30", - "id": 77054, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27949:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "27935:16:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrderConfigV2_$79026_calldata_ptr", - "typeString": "struct TakeOrderConfigV2 calldata" - } - }, - "id": 77056, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "27952:5:172", - "memberName": "order", - "nodeType": "MemberAccess", - "referencedDeclaration": 79017, - "src": "27935:22:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_calldata_ptr", - "typeString": "struct OrderV2 calldata" - } - }, - "id": 77057, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "27958:12:172", - "memberName": "validOutputs", - "nodeType": "MemberAccess", - "referencedDeclaration": 79041, - "src": "27935:35:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_IO_$78658_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct IO calldata[] calldata" - } - }, - "id": 77063, - "indexExpression": { - "expression": { - "baseExpression": { - "expression": { - "id": 77058, - "name": "config", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76544, - "src": "27971:6:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrdersConfigV2_$79055_calldata_ptr", - "typeString": "struct TakeOrdersConfigV2 calldata" - } - }, - "id": 77059, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "27978:6:172", - "memberName": "orders", - "nodeType": "MemberAccess", - "referencedDeclaration": 79052, - "src": "27971:13:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TakeOrderConfigV2_$79026_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct TakeOrderConfigV2 calldata[] calldata" - } - }, - "id": 77061, - "indexExpression": { - "hexValue": "30", - "id": 77060, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27985:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "27971:16:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrderConfigV2_$79026_calldata_ptr", - "typeString": "struct TakeOrderConfigV2 calldata" - } - }, - "id": 77062, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "27988:13:172", - "memberName": "outputIOIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 79021, - "src": "27971:30:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "27935:67:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_IO_$78658_calldata_ptr", - "typeString": "struct IO calldata" - } - }, - "id": 77064, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "28003:5:172", - "memberName": "token", - "nodeType": "MemberAccess", - "referencedDeclaration": 78653, - "src": "27935:73:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "baseExpression": { - "expression": { - "expression": { - "baseExpression": { - "expression": { - "id": 77065, - "name": "config", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76544, - "src": "28026:6:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrdersConfigV2_$79055_calldata_ptr", - "typeString": "struct TakeOrdersConfigV2 calldata" - } - }, - "id": 77066, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "28033:6:172", - "memberName": "orders", - "nodeType": "MemberAccess", - "referencedDeclaration": 79052, - "src": "28026:13:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TakeOrderConfigV2_$79026_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct TakeOrderConfigV2 calldata[] calldata" - } - }, - "id": 77068, - "indexExpression": { - "hexValue": "30", - "id": 77067, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28040:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "28026:16:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrderConfigV2_$79026_calldata_ptr", - "typeString": "struct TakeOrderConfigV2 calldata" - } - }, - "id": 77069, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "28043:5:172", - "memberName": "order", - "nodeType": "MemberAccess", - "referencedDeclaration": 79017, - "src": "28026:22:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_calldata_ptr", - "typeString": "struct OrderV2 calldata" - } - }, - "id": 77070, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "28049:11:172", - "memberName": "validInputs", - "nodeType": "MemberAccess", - "referencedDeclaration": 79037, - "src": "28026:34:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_IO_$78658_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct IO calldata[] calldata" - } - }, - "id": 77076, - "indexExpression": { - "expression": { - "baseExpression": { - "expression": { - "id": 77071, - "name": "config", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76544, - "src": "28061:6:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrdersConfigV2_$79055_calldata_ptr", - "typeString": "struct TakeOrdersConfigV2 calldata" - } - }, - "id": 77072, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "28068:6:172", - "memberName": "orders", - "nodeType": "MemberAccess", - "referencedDeclaration": 79052, - "src": "28061:13:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TakeOrderConfigV2_$79026_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct TakeOrderConfigV2 calldata[] calldata" - } - }, - "id": 77074, - "indexExpression": { - "hexValue": "30", - "id": 77073, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28075:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "28061:16:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrderConfigV2_$79026_calldata_ptr", - "typeString": "struct TakeOrderConfigV2 calldata" - } - }, - "id": 77075, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "28078:12:172", - "memberName": "inputIOIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 79019, - "src": "28061:29:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "28026:65:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_IO_$78658_calldata_ptr", - "typeString": "struct IO calldata" - } - }, - "id": 77077, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "28092:5:172", - "memberName": "token", - "nodeType": "MemberAccess", - "referencedDeclaration": 78653, - "src": "28026:71:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 77078, - "name": "totalTakerInput", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76549, - "src": "28115:15:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 77079, - "name": "totalTakerOutput", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76551, - "src": "28148:16:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 77080, - "name": "config", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76544, - "src": "28182:6:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrdersConfigV2_$79055_calldata_ptr", - "typeString": "struct TakeOrdersConfigV2 calldata" - } - }, - "id": 77081, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "28189:4:172", - "memberName": "data", - "nodeType": "MemberAccess", - "referencedDeclaration": 79054, - "src": "28182:11:172", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - ], - "expression": { - "arguments": [ - { - "expression": { - "id": 77048, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "27893:3:172", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 77049, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "27897:6:172", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "27893:10:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 77047, - "name": "IOrderBookV3OrderTaker", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 79323, - "src": "27870:22:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IOrderBookV3OrderTaker_$79323_$", - "typeString": "type(contract IOrderBookV3OrderTaker)" - } - }, - "id": 77050, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "27870:34:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IOrderBookV3OrderTaker_$79323", - "typeString": "contract IOrderBookV3OrderTaker" - } - }, - "id": 77051, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "27905:12:172", - "memberName": "onTakeOrders", - "nodeType": "MemberAccess", - "referencedDeclaration": 79322, - "src": "27870:47:172", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,address,uint256,uint256,bytes memory) external" - } - }, - "id": 77082, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "27870:337:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 77083, - "nodeType": "ExpressionStatement", - "src": "27870:337:172" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 77088, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 77086, - "name": "totalTakerOutput", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76551, - "src": "28232:16:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 77087, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28251:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "28232:20:172", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 77115, - "nodeType": "IfStatement", - "src": "28228:222:172", - "trueBody": { - "id": 77114, - "nodeType": "Block", - "src": "28254:196:172", - "statements": [ - { - "expression": { - "arguments": [ - { - "expression": { - "id": 77105, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "28382:3:172", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 77106, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "28386:6:172", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "28382:10:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [ - { - "id": 77109, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "28402:4:172", - "typeDescriptions": { - "typeIdentifier": "t_contract$_OrderBook_$78178", - "typeString": "contract OrderBook" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_OrderBook_$78178", - "typeString": "contract OrderBook" - } - ], - "id": 77108, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "28394:7:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 77107, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "28394:7:172", - "typeDescriptions": {} - } - }, - "id": 77110, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "28394:13:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 77111, - "name": "totalTakerOutput", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76551, - "src": "28409:16:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "arguments": [ - { - "expression": { - "baseExpression": { - "expression": { - "expression": { - "baseExpression": { - "expression": { - "id": 77090, - "name": "config", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76544, - "src": "28275:6:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrdersConfigV2_$79055_calldata_ptr", - "typeString": "struct TakeOrdersConfigV2 calldata" - } - }, - "id": 77091, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "28282:6:172", - "memberName": "orders", - "nodeType": "MemberAccess", - "referencedDeclaration": 79052, - "src": "28275:13:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TakeOrderConfigV2_$79026_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct TakeOrderConfigV2 calldata[] calldata" - } - }, - "id": 77093, - "indexExpression": { - "hexValue": "30", - "id": 77092, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28289:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "28275:16:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrderConfigV2_$79026_calldata_ptr", - "typeString": "struct TakeOrderConfigV2 calldata" - } - }, - "id": 77094, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "28292:5:172", - "memberName": "order", - "nodeType": "MemberAccess", - "referencedDeclaration": 79017, - "src": "28275:22:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_calldata_ptr", - "typeString": "struct OrderV2 calldata" - } - }, - "id": 77095, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "28298:11:172", - "memberName": "validInputs", - "nodeType": "MemberAccess", - "referencedDeclaration": 79037, - "src": "28275:34:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_IO_$78658_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct IO calldata[] calldata" - } - }, - "id": 77101, - "indexExpression": { - "expression": { - "baseExpression": { - "expression": { - "id": 77096, - "name": "config", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76544, - "src": "28310:6:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrdersConfigV2_$79055_calldata_ptr", - "typeString": "struct TakeOrdersConfigV2 calldata" - } - }, - "id": 77097, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "28317:6:172", - "memberName": "orders", - "nodeType": "MemberAccess", - "referencedDeclaration": 79052, - "src": "28310:13:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TakeOrderConfigV2_$79026_calldata_ptr_$dyn_calldata_ptr", - "typeString": "struct TakeOrderConfigV2 calldata[] calldata" - } - }, - "id": 77099, - "indexExpression": { - "hexValue": "30", - "id": 77098, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28324:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "28310:16:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrderConfigV2_$79026_calldata_ptr", - "typeString": "struct TakeOrderConfigV2 calldata" - } - }, - "id": 77100, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "28327:12:172", - "memberName": "inputIOIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 79019, - "src": "28310:29:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "28275:65:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_IO_$78658_calldata_ptr", - "typeString": "struct IO calldata" - } - }, - "id": 77102, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "28341:5:172", - "memberName": "token", - "nodeType": "MemberAccess", - "referencedDeclaration": 78653, - "src": "28275:71:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 77089, - "name": "IERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 44376, - "src": "28268:6:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$44376_$", - "typeString": "type(contract IERC20)" - } - }, - "id": 77103, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "28268:79:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$44376", - "typeString": "contract IERC20" - } - }, - "id": 77104, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "28348:16:172", - "memberName": "safeTransferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 44497, - "src": "28268:96:172", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$44376_$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$44376_$", - "typeString": "function (contract IERC20,address,address,uint256)" - } - }, - "id": 77112, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "28268:171:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 77113, - "nodeType": "ExpressionStatement", - "src": "28268:171:172" - } - ] - } - }, - { - "id": 77135, - "nodeType": "UncheckedBlock", - "src": "28460:172:172", - "statements": [ - { - "body": { - "id": 77133, - "nodeType": "Block", - "src": "28549:73:172", - "statements": [ - { - "expression": { - "arguments": [ - { - "baseExpression": { - "id": 77128, - "name": "orderIOCalculationsToHandle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76575, - "src": "28576:27:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_OrderIOCalculationV2_$76041_memory_ptr_$dyn_memory_ptr", - "typeString": "struct OrderIOCalculationV2 memory[] memory" - } - }, - "id": 77130, - "indexExpression": { - "id": 77129, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77117, - "src": "28604:1:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "28576:30:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_memory_ptr", - "typeString": "struct OrderIOCalculationV2 memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_memory_ptr", - "typeString": "struct OrderIOCalculationV2 memory" - } - ], - "id": 77127, - "name": "handleIO", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77995, - "src": "28567:8:172", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_OrderIOCalculationV2_$76041_memory_ptr_$returns$__$", - "typeString": "function (struct OrderIOCalculationV2 memory)" - } - }, - "id": 77131, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "28567:40:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 77132, - "nodeType": "ExpressionStatement", - "src": "28567:40:172" - } - ] - }, - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 77123, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 77120, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77117, - "src": "28504:1:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "expression": { - "id": 77121, - "name": "orderIOCalculationsToHandle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76575, - "src": "28508:27:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_OrderIOCalculationV2_$76041_memory_ptr_$dyn_memory_ptr", - "typeString": "struct OrderIOCalculationV2 memory[] memory" - } - }, - "id": 77122, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "28536:6:172", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "28508:34:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "28504:38:172", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 77134, - "initializationExpression": { - "assignments": [ - 77117 - ], - "declarations": [ - { - "constant": false, - "id": 77117, - "mutability": "mutable", - "name": "i", - "nameLocation": "28497:1:172", - "nodeType": "VariableDeclaration", - "scope": 77134, - "src": "28489:9:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 77116, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "28489:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 77119, - "initialValue": { - "hexValue": "30", - "id": 77118, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "28501:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "28489:13:172" - }, - "loopExpression": { - "expression": { - "id": 77125, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "28544:3:172", - "subExpression": { - "id": 77124, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77117, - "src": "28544:1:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 77126, - "nodeType": "ExpressionStatement", - "src": "28544:3:172" - }, - "nodeType": "ForStatement", - "src": "28484:138:172" - } - ] - } - ] - }, - "baseFunctions": [ - 79267 - ], - "documentation": { - "id": 76541, - "nodeType": "StructuredDocumentation", - "src": "18152:28:172", - "text": "@inheritdoc IOrderBookV3" - }, - "functionSelector": "8a44689c", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 76547, - "kind": "modifierInvocation", - "modifierName": { - "id": 76546, - "name": "nonReentrant", - "nameLocations": [ - "18454:12:172" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 43676, - "src": "18454:12:172" - }, - "nodeType": "ModifierInvocation", - "src": "18454:12:172" - } - ], - "name": "takeOrders", - "nameLocation": "18382:10:172", - "parameters": { - "id": 76545, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 76544, - "mutability": "mutable", - "name": "config", - "nameLocation": "18421:6:172", - "nodeType": "VariableDeclaration", - "scope": 77137, - "src": "18393:34:172", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrdersConfigV2_$79055_calldata_ptr", - "typeString": "struct TakeOrdersConfigV2" - }, - "typeName": { - "id": 76543, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 76542, - "name": "TakeOrdersConfigV2", - "nameLocations": [ - "18393:18:172" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 79055, - "src": "18393:18:172" - }, - "referencedDeclaration": 79055, - "src": "18393:18:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_TakeOrdersConfigV2_$79055_storage_ptr", - "typeString": "struct TakeOrdersConfigV2" - } - }, - "visibility": "internal" - } - ], - "src": "18392:36:172" - }, - "returnParameters": { - "id": 76552, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 76549, - "mutability": "mutable", - "name": "totalTakerInput", - "nameLocation": "18492:15:172", - "nodeType": "VariableDeclaration", - "scope": 77137, - "src": "18484:23:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 76548, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18484:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 76551, - "mutability": "mutable", - "name": "totalTakerOutput", - "nameLocation": "18517:16:172", - "nodeType": "VariableDeclaration", - "scope": 77137, - "src": "18509:24:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 76550, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18509:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "18483:51:172" - }, - "scope": 78178, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 77469, - "nodeType": "FunctionDefinition", - "src": "28677:4498:172", - "nodes": [], - "body": { - "id": 77468, - "nodeType": "Block", - "src": "28934:4241:172", - "nodes": [], - "statements": [ - { - "id": 77340, - "nodeType": "Block", - "src": "28944:2546:172", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 77164, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 77160, - "name": "aliceOrder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77141, - "src": "28962:10:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 77161, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "28973:5:172", - "memberName": "owner", - "nodeType": "MemberAccess", - "referencedDeclaration": 79028, - "src": "28962:16:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "expression": { - "id": 77162, - "name": "bobOrder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77144, - "src": "28982:8:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 77163, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "28991:5:172", - "memberName": "owner", - "nodeType": "MemberAccess", - "referencedDeclaration": 79028, - "src": "28982:14:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "28962:34:172", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 77171, - "nodeType": "IfStatement", - "src": "28958:107:172", - "trueBody": { - "id": 77170, - "nodeType": "Block", - "src": "28998:67:172", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "expression": { - "id": 77166, - "name": "aliceOrder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77141, - "src": "29033:10:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 77167, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "29044:5:172", - "memberName": "owner", - "nodeType": "MemberAccess", - "referencedDeclaration": 79028, - "src": "29033:16:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 77165, - "name": "SameOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 75910, - "src": "29023:9:172", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", - "typeString": "function (address) pure" - } - }, - "id": 77168, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "29023:27:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 77169, - "nodeType": "RevertStatement", - "src": "29016:34:172" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 77184, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "baseExpression": { - "expression": { - "id": 77172, - "name": "aliceOrder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77141, - "src": "29099:10:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 77173, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "29110:12:172", - "memberName": "validOutputs", - "nodeType": "MemberAccess", - "referencedDeclaration": 79041, - "src": "29099:23:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_IO_$78658_memory_ptr_$dyn_memory_ptr", - "typeString": "struct IO memory[] memory" - } - }, - "id": 77176, - "indexExpression": { - "expression": { - "id": 77174, - "name": "clearConfig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77147, - "src": "29123:11:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ClearConfig_$78728_calldata_ptr", - "typeString": "struct ClearConfig calldata" - } - }, - "id": 77175, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "29135:18:172", - "memberName": "aliceOutputIOIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 78719, - "src": "29123:30:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29099:55:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_IO_$78658_memory_ptr", - "typeString": "struct IO memory" - } - }, - "id": 77177, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "29155:5:172", - "memberName": "token", - "nodeType": "MemberAccess", - "referencedDeclaration": 78653, - "src": "29099:61:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "expression": { - "baseExpression": { - "expression": { - "id": 77178, - "name": "bobOrder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77144, - "src": "29184:8:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 77179, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "29193:11:172", - "memberName": "validInputs", - "nodeType": "MemberAccess", - "referencedDeclaration": 79037, - "src": "29184:20:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_IO_$78658_memory_ptr_$dyn_memory_ptr", - "typeString": "struct IO memory[] memory" - } - }, - "id": 77182, - "indexExpression": { - "expression": { - "id": 77180, - "name": "clearConfig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77147, - "src": "29205:11:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ClearConfig_$78728_calldata_ptr", - "typeString": "struct ClearConfig calldata" - } - }, - "id": 77181, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "29217:15:172", - "memberName": "bobInputIOIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 78721, - "src": "29205:27:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29184:49:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_IO_$78658_memory_ptr", - "typeString": "struct IO memory" - } - }, - "id": 77183, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "29234:5:172", - "memberName": "token", - "nodeType": "MemberAccess", - "referencedDeclaration": 78653, - "src": "29184:55:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "29099:140:172", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 77201, - "nodeType": "IfStatement", - "src": "29078:407:172", - "trueBody": { - "id": 77200, - "nodeType": "Block", - "src": "29254:231:172", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "expression": { - "baseExpression": { - "expression": { - "id": 77186, - "name": "aliceOrder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77141, - "src": "29314:10:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 77187, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "29325:12:172", - "memberName": "validOutputs", - "nodeType": "MemberAccess", - "referencedDeclaration": 79041, - "src": "29314:23:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_IO_$78658_memory_ptr_$dyn_memory_ptr", - "typeString": "struct IO memory[] memory" - } - }, - "id": 77190, - "indexExpression": { - "expression": { - "id": 77188, - "name": "clearConfig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77147, - "src": "29338:11:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ClearConfig_$78728_calldata_ptr", - "typeString": "struct ClearConfig calldata" - } - }, - "id": 77189, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "29350:18:172", - "memberName": "aliceOutputIOIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 78719, - "src": "29338:30:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29314:55:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_IO_$78658_memory_ptr", - "typeString": "struct IO memory" - } - }, - "id": 77191, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "29370:5:172", - "memberName": "token", - "nodeType": "MemberAccess", - "referencedDeclaration": 78653, - "src": "29314:61:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "baseExpression": { - "expression": { - "id": 77192, - "name": "bobOrder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77144, - "src": "29397:8:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 77193, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "29406:11:172", - "memberName": "validInputs", - "nodeType": "MemberAccess", - "referencedDeclaration": 79037, - "src": "29397:20:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_IO_$78658_memory_ptr_$dyn_memory_ptr", - "typeString": "struct IO memory[] memory" - } - }, - "id": 77196, - "indexExpression": { - "expression": { - "id": 77194, - "name": "clearConfig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77147, - "src": "29418:11:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ClearConfig_$78728_calldata_ptr", - "typeString": "struct ClearConfig calldata" - } - }, - "id": 77195, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "29430:15:172", - "memberName": "bobInputIOIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 78721, - "src": "29418:27:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29397:49:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_IO_$78658_memory_ptr", - "typeString": "struct IO memory" - } - }, - "id": 77197, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "29447:5:172", - "memberName": "token", - "nodeType": "MemberAccess", - "referencedDeclaration": 78653, - "src": "29397:55:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 77185, - "name": "TokenMismatch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 75891, - "src": "29279:13:172", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address) pure" - } - }, - "id": 77198, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "29279:191:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 77199, - "nodeType": "RevertStatement", - "src": "29272:198:172" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 77214, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "baseExpression": { - "expression": { - "id": 77202, - "name": "aliceOrder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77141, - "src": "29520:10:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 77203, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "29531:12:172", - "memberName": "validOutputs", - "nodeType": "MemberAccess", - "referencedDeclaration": 79041, - "src": "29520:23:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_IO_$78658_memory_ptr_$dyn_memory_ptr", - "typeString": "struct IO memory[] memory" - } - }, - "id": 77206, - "indexExpression": { - "expression": { - "id": 77204, - "name": "clearConfig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77147, - "src": "29544:11:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ClearConfig_$78728_calldata_ptr", - "typeString": "struct ClearConfig calldata" - } - }, - "id": 77205, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "29556:18:172", - "memberName": "aliceOutputIOIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 78719, - "src": "29544:30:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29520:55:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_IO_$78658_memory_ptr", - "typeString": "struct IO memory" - } - }, - "id": 77207, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "29576:8:172", - "memberName": "decimals", - "nodeType": "MemberAccess", - "referencedDeclaration": 78655, - "src": "29520:64:172", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "expression": { - "baseExpression": { - "expression": { - "id": 77208, - "name": "bobOrder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77144, - "src": "29608:8:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 77209, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "29617:11:172", - "memberName": "validInputs", - "nodeType": "MemberAccess", - "referencedDeclaration": 79037, - "src": "29608:20:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_IO_$78658_memory_ptr_$dyn_memory_ptr", - "typeString": "struct IO memory[] memory" - } - }, - "id": 77212, - "indexExpression": { - "expression": { - "id": 77210, - "name": "clearConfig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77147, - "src": "29629:11:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ClearConfig_$78728_calldata_ptr", - "typeString": "struct ClearConfig calldata" - } - }, - "id": 77211, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "29641:15:172", - "memberName": "bobInputIOIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 78721, - "src": "29629:27:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29608:49:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_IO_$78658_memory_ptr", - "typeString": "struct IO memory" - } - }, - "id": 77213, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "29658:8:172", - "memberName": "decimals", - "nodeType": "MemberAccess", - "referencedDeclaration": 78655, - "src": "29608:58:172", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "29520:146:172", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 77231, - "nodeType": "IfStatement", - "src": "29499:427:172", - "trueBody": { - "id": 77230, - "nodeType": "Block", - "src": "29681:245:172", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "expression": { - "baseExpression": { - "expression": { - "id": 77216, - "name": "aliceOrder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77141, - "src": "29749:10:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 77217, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "29760:12:172", - "memberName": "validOutputs", - "nodeType": "MemberAccess", - "referencedDeclaration": 79041, - "src": "29749:23:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_IO_$78658_memory_ptr_$dyn_memory_ptr", - "typeString": "struct IO memory[] memory" - } - }, - "id": 77220, - "indexExpression": { - "expression": { - "id": 77218, - "name": "clearConfig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77147, - "src": "29773:11:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ClearConfig_$78728_calldata_ptr", - "typeString": "struct ClearConfig calldata" - } - }, - "id": 77219, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "29785:18:172", - "memberName": "aliceOutputIOIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 78719, - "src": "29773:30:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29749:55:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_IO_$78658_memory_ptr", - "typeString": "struct IO memory" - } - }, - "id": 77221, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "29805:8:172", - "memberName": "decimals", - "nodeType": "MemberAccess", - "referencedDeclaration": 78655, - "src": "29749:64:172", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "expression": { - "baseExpression": { - "expression": { - "id": 77222, - "name": "bobOrder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77144, - "src": "29835:8:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 77223, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "29844:11:172", - "memberName": "validInputs", - "nodeType": "MemberAccess", - "referencedDeclaration": 79037, - "src": "29835:20:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_IO_$78658_memory_ptr_$dyn_memory_ptr", - "typeString": "struct IO memory[] memory" - } - }, - "id": 77226, - "indexExpression": { - "expression": { - "id": 77224, - "name": "clearConfig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77147, - "src": "29856:11:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ClearConfig_$78728_calldata_ptr", - "typeString": "struct ClearConfig calldata" - } - }, - "id": 77225, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "29868:15:172", - "memberName": "bobInputIOIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 78721, - "src": "29856:27:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29835:49:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_IO_$78658_memory_ptr", - "typeString": "struct IO memory" - } - }, - "id": 77227, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "29885:8:172", - "memberName": "decimals", - "nodeType": "MemberAccess", - "referencedDeclaration": 78655, - "src": "29835:58:172", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 77215, - "name": "TokenDecimalsMismatch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 75898, - "src": "29706:21:172", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint8_$returns$__$", - "typeString": "function (uint8,uint8) pure" - } - }, - "id": 77228, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "29706:205:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 77229, - "nodeType": "RevertStatement", - "src": "29699:212:172" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 77244, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "baseExpression": { - "expression": { - "id": 77232, - "name": "bobOrder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77144, - "src": "29961:8:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 77233, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "29970:12:172", - "memberName": "validOutputs", - "nodeType": "MemberAccess", - "referencedDeclaration": 79041, - "src": "29961:21:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_IO_$78658_memory_ptr_$dyn_memory_ptr", - "typeString": "struct IO memory[] memory" - } - }, - "id": 77236, - "indexExpression": { - "expression": { - "id": 77234, - "name": "clearConfig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77147, - "src": "29983:11:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ClearConfig_$78728_calldata_ptr", - "typeString": "struct ClearConfig calldata" - } - }, - "id": 77235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "29995:16:172", - "memberName": "bobOutputIOIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 78723, - "src": "29983:28:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29961:51:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_IO_$78658_memory_ptr", - "typeString": "struct IO memory" - } - }, - "id": 77237, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "30013:5:172", - "memberName": "token", - "nodeType": "MemberAccess", - "referencedDeclaration": 78653, - "src": "29961:57:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "expression": { - "baseExpression": { - "expression": { - "id": 77238, - "name": "aliceOrder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77141, - "src": "30042:10:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 77239, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "30053:11:172", - "memberName": "validInputs", - "nodeType": "MemberAccess", - "referencedDeclaration": 79037, - "src": "30042:22:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_IO_$78658_memory_ptr_$dyn_memory_ptr", - "typeString": "struct IO memory[] memory" - } - }, - "id": 77242, - "indexExpression": { - "expression": { - "id": 77240, - "name": "clearConfig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77147, - "src": "30065:11:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ClearConfig_$78728_calldata_ptr", - "typeString": "struct ClearConfig calldata" - } - }, - "id": 77241, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "30077:17:172", - "memberName": "aliceInputIOIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 78717, - "src": "30065:29:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "30042:53:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_IO_$78658_memory_ptr", - "typeString": "struct IO memory" - } - }, - "id": 77243, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "30096:5:172", - "memberName": "token", - "nodeType": "MemberAccess", - "referencedDeclaration": 78653, - "src": "30042:59:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "29961:140:172", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 77261, - "nodeType": "IfStatement", - "src": "29940:407:172", - "trueBody": { - "id": 77260, - "nodeType": "Block", - "src": "30116:231:172", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "expression": { - "baseExpression": { - "expression": { - "id": 77246, - "name": "aliceOrder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77141, - "src": "30176:10:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 77247, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "30187:11:172", - "memberName": "validInputs", - "nodeType": "MemberAccess", - "referencedDeclaration": 79037, - "src": "30176:22:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_IO_$78658_memory_ptr_$dyn_memory_ptr", - "typeString": "struct IO memory[] memory" - } - }, - "id": 77250, - "indexExpression": { - "expression": { - "id": 77248, - "name": "clearConfig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77147, - "src": "30199:11:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ClearConfig_$78728_calldata_ptr", - "typeString": "struct ClearConfig calldata" - } - }, - "id": 77249, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "30211:17:172", - "memberName": "aliceInputIOIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 78717, - "src": "30199:29:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "30176:53:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_IO_$78658_memory_ptr", - "typeString": "struct IO memory" - } - }, - "id": 77251, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "30230:5:172", - "memberName": "token", - "nodeType": "MemberAccess", - "referencedDeclaration": 78653, - "src": "30176:59:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "baseExpression": { - "expression": { - "id": 77252, - "name": "bobOrder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77144, - "src": "30257:8:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 77253, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "30266:12:172", - "memberName": "validOutputs", - "nodeType": "MemberAccess", - "referencedDeclaration": 79041, - "src": "30257:21:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_IO_$78658_memory_ptr_$dyn_memory_ptr", - "typeString": "struct IO memory[] memory" - } - }, - "id": 77256, - "indexExpression": { - "expression": { - "id": 77254, - "name": "clearConfig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77147, - "src": "30279:11:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ClearConfig_$78728_calldata_ptr", - "typeString": "struct ClearConfig calldata" - } - }, - "id": 77255, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "30291:16:172", - "memberName": "bobOutputIOIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 78723, - "src": "30279:28:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "30257:51:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_IO_$78658_memory_ptr", - "typeString": "struct IO memory" - } - }, - "id": 77257, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "30309:5:172", - "memberName": "token", - "nodeType": "MemberAccess", - "referencedDeclaration": 78653, - "src": "30257:57:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 77245, - "name": "TokenMismatch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 75891, - "src": "30141:13:172", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address) pure" - } - }, - "id": 77258, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "30141:191:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 77259, - "nodeType": "RevertStatement", - "src": "30134:198:172" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 77274, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "baseExpression": { - "expression": { - "id": 77262, - "name": "bobOrder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77144, - "src": "30382:8:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 77263, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "30391:12:172", - "memberName": "validOutputs", - "nodeType": "MemberAccess", - "referencedDeclaration": 79041, - "src": "30382:21:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_IO_$78658_memory_ptr_$dyn_memory_ptr", - "typeString": "struct IO memory[] memory" - } - }, - "id": 77266, - "indexExpression": { - "expression": { - "id": 77264, - "name": "clearConfig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77147, - "src": "30404:11:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ClearConfig_$78728_calldata_ptr", - "typeString": "struct ClearConfig calldata" - } - }, - "id": 77265, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "30416:16:172", - "memberName": "bobOutputIOIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 78723, - "src": "30404:28:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "30382:51:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_IO_$78658_memory_ptr", - "typeString": "struct IO memory" - } - }, - "id": 77267, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "30434:8:172", - "memberName": "decimals", - "nodeType": "MemberAccess", - "referencedDeclaration": 78655, - "src": "30382:60:172", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "expression": { - "baseExpression": { - "expression": { - "id": 77268, - "name": "aliceOrder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77141, - "src": "30466:10:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 77269, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "30477:11:172", - "memberName": "validInputs", - "nodeType": "MemberAccess", - "referencedDeclaration": 79037, - "src": "30466:22:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_IO_$78658_memory_ptr_$dyn_memory_ptr", - "typeString": "struct IO memory[] memory" - } - }, - "id": 77272, - "indexExpression": { - "expression": { - "id": 77270, - "name": "clearConfig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77147, - "src": "30489:11:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ClearConfig_$78728_calldata_ptr", - "typeString": "struct ClearConfig calldata" - } - }, - "id": 77271, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "30501:17:172", - "memberName": "aliceInputIOIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 78717, - "src": "30489:29:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "30466:53:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_IO_$78658_memory_ptr", - "typeString": "struct IO memory" - } - }, - "id": 77273, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "30520:8:172", - "memberName": "decimals", - "nodeType": "MemberAccess", - "referencedDeclaration": 78655, - "src": "30466:62:172", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "30382:146:172", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 77291, - "nodeType": "IfStatement", - "src": "30361:427:172", - "trueBody": { - "id": 77290, - "nodeType": "Block", - "src": "30543:245:172", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "expression": { - "baseExpression": { - "expression": { - "id": 77276, - "name": "aliceOrder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77141, - "src": "30611:10:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 77277, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "30622:11:172", - "memberName": "validInputs", - "nodeType": "MemberAccess", - "referencedDeclaration": 79037, - "src": "30611:22:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_IO_$78658_memory_ptr_$dyn_memory_ptr", - "typeString": "struct IO memory[] memory" - } - }, - "id": 77280, - "indexExpression": { - "expression": { - "id": 77278, - "name": "clearConfig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77147, - "src": "30634:11:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ClearConfig_$78728_calldata_ptr", - "typeString": "struct ClearConfig calldata" - } - }, - "id": 77279, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "30646:17:172", - "memberName": "aliceInputIOIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 78717, - "src": "30634:29:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "30611:53:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_IO_$78658_memory_ptr", - "typeString": "struct IO memory" - } - }, - "id": 77281, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "30665:8:172", - "memberName": "decimals", - "nodeType": "MemberAccess", - "referencedDeclaration": 78655, - "src": "30611:62:172", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "expression": { - "baseExpression": { - "expression": { - "id": 77282, - "name": "bobOrder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77144, - "src": "30695:8:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 77283, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "30704:12:172", - "memberName": "validOutputs", - "nodeType": "MemberAccess", - "referencedDeclaration": 79041, - "src": "30695:21:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_IO_$78658_memory_ptr_$dyn_memory_ptr", - "typeString": "struct IO memory[] memory" - } - }, - "id": 77286, - "indexExpression": { - "expression": { - "id": 77284, - "name": "clearConfig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77147, - "src": "30717:11:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ClearConfig_$78728_calldata_ptr", - "typeString": "struct ClearConfig calldata" - } - }, - "id": 77285, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "30729:16:172", - "memberName": "bobOutputIOIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 78723, - "src": "30717:28:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "30695:51:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_IO_$78658_memory_ptr", - "typeString": "struct IO memory" - } - }, - "id": 77287, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "30747:8:172", - "memberName": "decimals", - "nodeType": "MemberAccess", - "referencedDeclaration": 78655, - "src": "30695:60:172", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 77275, - "name": "TokenDecimalsMismatch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 75898, - "src": "30568:21:172", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint8_$returns$__$", - "typeString": "function (uint8,uint8) pure" - } - }, - "id": 77288, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "30568:205:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 77289, - "nodeType": "RevertStatement", - "src": "30561:212:172" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 77298, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "baseExpression": { - "id": 77292, - "name": "sOrders", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76085, - "src": "31013:7:172", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 77296, - "indexExpression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 77293, - "name": "aliceOrder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77141, - "src": "31021:10:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 77294, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "31032:4:172", - "memberName": "hash", - "nodeType": "MemberAccess", - "referencedDeclaration": 79344, - "src": "31021:15:172", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_OrderV2_$79042_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_OrderV2_$79042_memory_ptr_$", - "typeString": "function (struct OrderV2 memory) pure returns (bytes32)" - } - }, - "id": 77295, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "31021:17:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31013:26:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "id": 77297, - "name": "ORDER_DEAD", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 75933, - "src": "31043:10:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31013:40:172", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 77311, - "nodeType": "IfStatement", - "src": "31009:170:172", - "trueBody": { - "id": 77310, - "nodeType": "Block", - "src": "31055:124:172", - "statements": [ - { - "eventCall": { - "arguments": [ - { - "expression": { - "id": 77300, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "31092:3:172", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 77301, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "31096:6:172", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "31092:10:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 77302, - "name": "aliceOrder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77141, - "src": "31104:10:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 77303, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "31115:5:172", - "memberName": "owner", - "nodeType": "MemberAccess", - "referencedDeclaration": 79028, - "src": "31104:16:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 77304, - "name": "aliceOrder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77141, - "src": "31122:10:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 77305, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "31133:4:172", - "memberName": "hash", - "nodeType": "MemberAccess", - "referencedDeclaration": 79344, - "src": "31122:15:172", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_OrderV2_$79042_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_OrderV2_$79042_memory_ptr_$", - "typeString": "function (struct OrderV2 memory) pure returns (bytes32)" - } - }, - "id": 77306, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "31122:17:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 77299, - "name": "OrderNotFound", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 79158, - "src": "31078:13:172", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bytes32_$returns$__$", - "typeString": "function (address,address,bytes32)" - } - }, - "id": 77307, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "31078:62:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 77308, - "nodeType": "EmitStatement", - "src": "31073:67:172" - }, - { - "functionReturnParameters": 77159, - "id": 77309, - "nodeType": "Return", - "src": "31158:7:172" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 77318, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "baseExpression": { - "id": 77312, - "name": "sOrders", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76085, - "src": "31196:7:172", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - }, - "id": 77316, - "indexExpression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 77313, - "name": "bobOrder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77144, - "src": "31204:8:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 77314, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "31213:4:172", - "memberName": "hash", - "nodeType": "MemberAccess", - "referencedDeclaration": 79344, - "src": "31204:13:172", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_OrderV2_$79042_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_OrderV2_$79042_memory_ptr_$", - "typeString": "function (struct OrderV2 memory) pure returns (bytes32)" - } - }, - "id": 77315, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "31204:15:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31196:24:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "id": 77317, - "name": "ORDER_DEAD", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 75933, - "src": "31224:10:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31196:38:172", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 77331, - "nodeType": "IfStatement", - "src": "31192:164:172", - "trueBody": { - "id": 77330, - "nodeType": "Block", - "src": "31236:120:172", - "statements": [ - { - "eventCall": { - "arguments": [ - { - "expression": { - "id": 77320, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "31273:3:172", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 77321, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "31277:6:172", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "31273:10:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 77322, - "name": "bobOrder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77144, - "src": "31285:8:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 77323, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "31294:5:172", - "memberName": "owner", - "nodeType": "MemberAccess", - "referencedDeclaration": 79028, - "src": "31285:14:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 77324, - "name": "bobOrder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77144, - "src": "31301:8:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 77325, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "31310:4:172", - "memberName": "hash", - "nodeType": "MemberAccess", - "referencedDeclaration": 79344, - "src": "31301:13:172", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_OrderV2_$79042_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_OrderV2_$79042_memory_ptr_$", - "typeString": "function (struct OrderV2 memory) pure returns (bytes32)" - } - }, - "id": 77326, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "31301:15:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 77319, - "name": "OrderNotFound", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 79158, - "src": "31259:13:172", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bytes32_$returns$__$", - "typeString": "function (address,address,bytes32)" - } - }, - "id": 77327, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "31259:58:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 77328, - "nodeType": "EmitStatement", - "src": "31254:63:172" - }, - { - "functionReturnParameters": 77159, - "id": 77329, - "nodeType": "Return", - "src": "31335:7:172" - } - ] - } - }, - { - "eventCall": { - "arguments": [ - { - "expression": { - "id": 77333, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "31433:3:172", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 77334, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "31437:6:172", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "31433:10:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 77335, - "name": "aliceOrder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77141, - "src": "31445:10:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - { - "id": 77336, - "name": "bobOrder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77144, - "src": "31457:8:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - { - "id": 77337, - "name": "clearConfig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77147, - "src": "31467:11:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ClearConfig_$78728_calldata_ptr", - "typeString": "struct ClearConfig calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - }, - { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - }, - { - "typeIdentifier": "t_struct$_ClearConfig_$78728_calldata_ptr", - "typeString": "struct ClearConfig calldata" - } - ], - "id": 77332, - "name": "Clear", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 79190, - "src": "31427:5:172", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_struct$_OrderV2_$79042_memory_ptr_$_t_struct$_OrderV2_$79042_memory_ptr_$_t_struct$_ClearConfig_$78728_memory_ptr_$returns$__$", - "typeString": "function (address,struct OrderV2 memory,struct OrderV2 memory,struct ClearConfig memory)" - } - }, - "id": 77338, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "31427:52:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 77339, - "nodeType": "EmitStatement", - "src": "31422:57:172" - } - ] - }, - { - "assignments": [ - 77343 - ], - "declarations": [ - { - "constant": false, - "id": 77343, - "mutability": "mutable", - "name": "aliceOrderIOCalculation", - "nameLocation": "31527:23:172", - "nodeType": "VariableDeclaration", - "scope": 77468, - "src": "31499:51:172", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_memory_ptr", - "typeString": "struct OrderIOCalculationV2" - }, - "typeName": { - "id": 77342, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 77341, - "name": "OrderIOCalculationV2", - "nameLocations": [ - "31499:20:172" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 76041, - "src": "31499:20:172" - }, - "referencedDeclaration": 76041, - "src": "31499:20:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_storage_ptr", - "typeString": "struct OrderIOCalculationV2" - } - }, - "visibility": "internal" - } - ], - "id": 77354, - "initialValue": { - "arguments": [ - { - "id": 77345, - "name": "aliceOrder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77141, - "src": "31583:10:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - { - "expression": { - "id": 77346, - "name": "clearConfig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77147, - "src": "31595:11:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ClearConfig_$78728_calldata_ptr", - "typeString": "struct ClearConfig calldata" - } - }, - "id": 77347, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "31607:17:172", - "memberName": "aliceInputIOIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 78717, - "src": "31595:29:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 77348, - "name": "clearConfig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77147, - "src": "31626:11:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ClearConfig_$78728_calldata_ptr", - "typeString": "struct ClearConfig calldata" - } - }, - "id": 77349, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "31638:18:172", - "memberName": "aliceOutputIOIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 78719, - "src": "31626:30:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 77350, - "name": "bobOrder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77144, - "src": "31658:8:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 77351, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "31667:5:172", - "memberName": "owner", - "nodeType": "MemberAccess", - "referencedDeclaration": 79028, - "src": "31658:14:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 77352, - "name": "bobSignedContext", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77155, - "src": "31674:16:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_SignedContextV1_$55640_memory_ptr_$dyn_memory_ptr", - "typeString": "struct SignedContextV1 memory[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_array$_t_struct$_SignedContextV1_$55640_memory_ptr_$dyn_memory_ptr", - "typeString": "struct SignedContextV1 memory[] memory" - } - ], - "id": 77344, - "name": "calculateOrderIO", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77792, - "src": "31553:16:172", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_OrderV2_$79042_memory_ptr_$_t_uint256_$_t_uint256_$_t_address_$_t_array$_t_struct$_SignedContextV1_$55640_memory_ptr_$dyn_memory_ptr_$returns$_t_struct$_OrderIOCalculationV2_$76041_memory_ptr_$", - "typeString": "function (struct OrderV2 memory,uint256,uint256,address,struct SignedContextV1 memory[] memory) view returns (struct OrderIOCalculationV2 memory)" - } - }, - "id": 77353, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "31553:147:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_memory_ptr", - "typeString": "struct OrderIOCalculationV2 memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31499:201:172" - }, - { - "assignments": [ - 77357 - ], - "declarations": [ - { - "constant": false, - "id": 77357, - "mutability": "mutable", - "name": "bobOrderIOCalculation", - "nameLocation": "31738:21:172", - "nodeType": "VariableDeclaration", - "scope": 77468, - "src": "31710:49:172", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_memory_ptr", - "typeString": "struct OrderIOCalculationV2" - }, - "typeName": { - "id": 77356, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 77355, - "name": "OrderIOCalculationV2", - "nameLocations": [ - "31710:20:172" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 76041, - "src": "31710:20:172" - }, - "referencedDeclaration": 76041, - "src": "31710:20:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_storage_ptr", - "typeString": "struct OrderIOCalculationV2" - } - }, - "visibility": "internal" - } - ], - "id": 77368, - "initialValue": { - "arguments": [ - { - "id": 77359, - "name": "bobOrder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77144, - "src": "31792:8:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - { - "expression": { - "id": 77360, - "name": "clearConfig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77147, - "src": "31802:11:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ClearConfig_$78728_calldata_ptr", - "typeString": "struct ClearConfig calldata" - } - }, - "id": 77361, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "31814:15:172", - "memberName": "bobInputIOIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 78721, - "src": "31802:27:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 77362, - "name": "clearConfig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77147, - "src": "31831:11:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ClearConfig_$78728_calldata_ptr", - "typeString": "struct ClearConfig calldata" - } - }, - "id": 77363, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "31843:16:172", - "memberName": "bobOutputIOIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 78723, - "src": "31831:28:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 77364, - "name": "aliceOrder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77141, - "src": "31861:10:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 77365, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "31872:5:172", - "memberName": "owner", - "nodeType": "MemberAccess", - "referencedDeclaration": 79028, - "src": "31861:16:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 77366, - "name": "aliceSignedContext", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77151, - "src": "31879:18:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_SignedContextV1_$55640_memory_ptr_$dyn_memory_ptr", - "typeString": "struct SignedContextV1 memory[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_array$_t_struct$_SignedContextV1_$55640_memory_ptr_$dyn_memory_ptr", - "typeString": "struct SignedContextV1 memory[] memory" - } - ], - "id": 77358, - "name": "calculateOrderIO", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77792, - "src": "31762:16:172", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_OrderV2_$79042_memory_ptr_$_t_uint256_$_t_uint256_$_t_address_$_t_array$_t_struct$_SignedContextV1_$55640_memory_ptr_$dyn_memory_ptr_$returns$_t_struct$_OrderIOCalculationV2_$76041_memory_ptr_$", - "typeString": "function (struct OrderV2 memory,uint256,uint256,address,struct SignedContextV1 memory[] memory) view returns (struct OrderIOCalculationV2 memory)" - } - }, - "id": 77367, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "31762:145:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_memory_ptr", - "typeString": "struct OrderIOCalculationV2 memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31710:197:172" - }, - { - "assignments": [ - 77371 - ], - "declarations": [ - { - "constant": false, - "id": 77371, - "mutability": "mutable", - "name": "clearStateChange", - "nameLocation": "31941:16:172", - "nodeType": "VariableDeclaration", - "scope": 77468, - "src": "31917:40:172", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ClearStateChange_$78737_memory_ptr", - "typeString": "struct ClearStateChange" - }, - "typeName": { - "id": 77370, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 77369, - "name": "ClearStateChange", - "nameLocations": [ - "31917:16:172" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 78737, - "src": "31917:16:172" - }, - "referencedDeclaration": 78737, - "src": "31917:16:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ClearStateChange_$78737_storage_ptr", - "typeString": "struct ClearStateChange" - } - }, - "visibility": "internal" - } - ], - "id": 77376, - "initialValue": { - "arguments": [ - { - "id": 77373, - "name": "aliceOrderIOCalculation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77343, - "src": "31998:23:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_memory_ptr", - "typeString": "struct OrderIOCalculationV2 memory" - } - }, - { - "id": 77374, - "name": "bobOrderIOCalculation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77357, - "src": "32023:21:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_memory_ptr", - "typeString": "struct OrderIOCalculationV2 memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_memory_ptr", - "typeString": "struct OrderIOCalculationV2 memory" - }, - { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_memory_ptr", - "typeString": "struct OrderIOCalculationV2 memory" - } - ], - "id": 77372, - "name": "calculateClearStateChange", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 78033, - "src": "31972:25:172", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_OrderIOCalculationV2_$76041_memory_ptr_$_t_struct$_OrderIOCalculationV2_$76041_memory_ptr_$returns$_t_struct$_ClearStateChange_$78737_memory_ptr_$", - "typeString": "function (struct OrderIOCalculationV2 memory,struct OrderIOCalculationV2 memory) pure returns (struct ClearStateChange memory)" - } - }, - "id": 77375, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "31972:73:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_ClearStateChange_$78737_memory_ptr", - "typeString": "struct ClearStateChange memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "31917:128:172" - }, - { - "expression": { - "arguments": [ - { - "expression": { - "id": 77378, - "name": "clearStateChange", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77371, - "src": "32070:16:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ClearStateChange_$78737_memory_ptr", - "typeString": "struct ClearStateChange memory" - } - }, - "id": 77379, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "32087:10:172", - "memberName": "aliceInput", - "nodeType": "MemberAccess", - "referencedDeclaration": 78734, - "src": "32070:27:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 77380, - "name": "clearStateChange", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77371, - "src": "32099:16:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ClearStateChange_$78737_memory_ptr", - "typeString": "struct ClearStateChange memory" - } - }, - "id": 77381, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "32116:11:172", - "memberName": "aliceOutput", - "nodeType": "MemberAccess", - "referencedDeclaration": 78730, - "src": "32099:28:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 77382, - "name": "aliceOrderIOCalculation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77343, - "src": "32129:23:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_memory_ptr", - "typeString": "struct OrderIOCalculationV2 memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_memory_ptr", - "typeString": "struct OrderIOCalculationV2 memory" - } - ], - "id": 77377, - "name": "recordVaultIO", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77897, - "src": "32056:13:172", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_struct$_OrderIOCalculationV2_$76041_memory_ptr_$returns$__$", - "typeString": "function (uint256,uint256,struct OrderIOCalculationV2 memory)" - } - }, - "id": 77383, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "32056:97:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 77384, - "nodeType": "ExpressionStatement", - "src": "32056:97:172" - }, - { - "expression": { - "arguments": [ - { - "expression": { - "id": 77386, - "name": "clearStateChange", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77371, - "src": "32177:16:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ClearStateChange_$78737_memory_ptr", - "typeString": "struct ClearStateChange memory" - } - }, - "id": 77387, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "32194:8:172", - "memberName": "bobInput", - "nodeType": "MemberAccess", - "referencedDeclaration": 78736, - "src": "32177:25:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 77388, - "name": "clearStateChange", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77371, - "src": "32204:16:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ClearStateChange_$78737_memory_ptr", - "typeString": "struct ClearStateChange memory" - } - }, - "id": 77389, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "32221:9:172", - "memberName": "bobOutput", - "nodeType": "MemberAccess", - "referencedDeclaration": 78732, - "src": "32204:26:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 77390, - "name": "bobOrderIOCalculation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77357, - "src": "32232:21:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_memory_ptr", - "typeString": "struct OrderIOCalculationV2 memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_memory_ptr", - "typeString": "struct OrderIOCalculationV2 memory" - } - ], - "id": 77385, - "name": "recordVaultIO", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77897, - "src": "32163:13:172", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_struct$_OrderIOCalculationV2_$76041_memory_ptr_$returns$__$", - "typeString": "function (uint256,uint256,struct OrderIOCalculationV2 memory)" - } - }, - "id": 77391, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "32163:91:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 77392, - "nodeType": "ExpressionStatement", - "src": "32163:91:172" - }, - { - "id": 77453, - "nodeType": "Block", - "src": "32265:763:172", - "statements": [ - { - "assignments": [ - 77394 - ], - "declarations": [ - { - "constant": false, - "id": 77394, - "mutability": "mutable", - "name": "aliceBounty", - "nameLocation": "32419:11:172", - "nodeType": "VariableDeclaration", - "scope": 77453, - "src": "32411:19:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 77393, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32411:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 77400, - "initialValue": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 77399, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 77395, - "name": "clearStateChange", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77371, - "src": "32433:16:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ClearStateChange_$78737_memory_ptr", - "typeString": "struct ClearStateChange memory" - } - }, - "id": 77396, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "32450:11:172", - "memberName": "aliceOutput", - "nodeType": "MemberAccess", - "referencedDeclaration": 78730, - "src": "32433:28:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "expression": { - "id": 77397, - "name": "clearStateChange", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77371, - "src": "32464:16:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ClearStateChange_$78737_memory_ptr", - "typeString": "struct ClearStateChange memory" - } - }, - "id": 77398, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "32481:8:172", - "memberName": "bobInput", - "nodeType": "MemberAccess", - "referencedDeclaration": 78736, - "src": "32464:25:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "32433:56:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32411:78:172" - }, - { - "assignments": [ - 77402 - ], - "declarations": [ - { - "constant": false, - "id": 77402, - "mutability": "mutable", - "name": "bobBounty", - "nameLocation": "32511:9:172", - "nodeType": "VariableDeclaration", - "scope": 77453, - "src": "32503:17:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 77401, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32503:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 77408, - "initialValue": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 77407, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 77403, - "name": "clearStateChange", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77371, - "src": "32523:16:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ClearStateChange_$78737_memory_ptr", - "typeString": "struct ClearStateChange memory" - } - }, - "id": 77404, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "32540:9:172", - "memberName": "bobOutput", - "nodeType": "MemberAccess", - "referencedDeclaration": 78732, - "src": "32523:26:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "expression": { - "id": 77405, - "name": "clearStateChange", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77371, - "src": "32552:16:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ClearStateChange_$78737_memory_ptr", - "typeString": "struct ClearStateChange memory" - } - }, - "id": 77406, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "32569:10:172", - "memberName": "aliceInput", - "nodeType": "MemberAccess", - "referencedDeclaration": 78734, - "src": "32552:27:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "32523:56:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "32503:76:172" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 77411, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 77409, - "name": "aliceBounty", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77394, - "src": "32597:11:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 77410, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "32611:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "32597:15:172", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 77430, - "nodeType": "IfStatement", - "src": "32593:211:172", - "trueBody": { - "id": 77429, - "nodeType": "Block", - "src": "32614:190:172", - "statements": [ - { - "expression": { - "id": 77427, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "baseExpression": { - "baseExpression": { - "id": 77412, - "name": "sVaultBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76094, - "src": "32632:14:172", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$_$", - "typeString": "mapping(address => mapping(address => mapping(uint256 => uint256)))" - } - }, - "id": 77423, - "indexExpression": { - "expression": { - "id": 77413, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "32647:3:172", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 77414, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "32651:6:172", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "32647:10:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32632:26:172", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(uint256 => uint256))" - } - }, - "id": 77424, - "indexExpression": { - "expression": { - "baseExpression": { - "expression": { - "id": 77415, - "name": "aliceOrder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77141, - "src": "32659:10:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 77416, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "32670:12:172", - "memberName": "validOutputs", - "nodeType": "MemberAccess", - "referencedDeclaration": 79041, - "src": "32659:23:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_IO_$78658_memory_ptr_$dyn_memory_ptr", - "typeString": "struct IO memory[] memory" - } - }, - "id": 77419, - "indexExpression": { - "expression": { - "id": 77417, - "name": "clearConfig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77147, - "src": "32683:11:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ClearConfig_$78728_calldata_ptr", - "typeString": "struct ClearConfig calldata" - } - }, - "id": 77418, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "32695:18:172", - "memberName": "aliceOutputIOIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 78719, - "src": "32683:30:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32659:55:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_IO_$78658_memory_ptr", - "typeString": "struct IO memory" - } - }, - "id": 77420, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "32715:5:172", - "memberName": "token", - "nodeType": "MemberAccess", - "referencedDeclaration": 78653, - "src": "32659:61:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32632:89:172", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 77425, - "indexExpression": { - "expression": { - "id": 77421, - "name": "clearConfig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77147, - "src": "32722:11:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ClearConfig_$78728_calldata_ptr", - "typeString": "struct ClearConfig calldata" - } - }, - "id": 77422, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "32755:18:172", - "memberName": "aliceBountyVaultId", - "nodeType": "MemberAccess", - "referencedDeclaration": 78725, - "src": "32722:51:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "32632:142:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "id": 77426, - "name": "aliceBounty", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77394, - "src": "32778:11:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "32632:157:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 77428, - "nodeType": "ExpressionStatement", - "src": "32632:157:172" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 77433, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 77431, - "name": "bobBounty", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77402, - "src": "32821:9:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 77432, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "32833:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "32821:13:172", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 77452, - "nodeType": "IfStatement", - "src": "32817:201:172", - "trueBody": { - "id": 77451, - "nodeType": "Block", - "src": "32836:182:172", - "statements": [ - { - "expression": { - "id": 77449, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "baseExpression": { - "baseExpression": { - "id": 77434, - "name": "sVaultBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76094, - "src": "32854:14:172", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$_$", - "typeString": "mapping(address => mapping(address => mapping(uint256 => uint256)))" - } - }, - "id": 77445, - "indexExpression": { - "expression": { - "id": 77435, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "32869:3:172", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 77436, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "32873:6:172", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "32869:10:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32854:26:172", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(uint256 => uint256))" - } - }, - "id": 77446, - "indexExpression": { - "expression": { - "baseExpression": { - "expression": { - "id": 77437, - "name": "bobOrder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77144, - "src": "32881:8:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 77438, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "32890:12:172", - "memberName": "validOutputs", - "nodeType": "MemberAccess", - "referencedDeclaration": 79041, - "src": "32881:21:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_IO_$78658_memory_ptr_$dyn_memory_ptr", - "typeString": "struct IO memory[] memory" - } - }, - "id": 77441, - "indexExpression": { - "expression": { - "id": 77439, - "name": "clearConfig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77147, - "src": "32903:11:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ClearConfig_$78728_calldata_ptr", - "typeString": "struct ClearConfig calldata" - } - }, - "id": 77440, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "32915:16:172", - "memberName": "bobOutputIOIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 78723, - "src": "32903:28:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32881:51:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_IO_$78658_memory_ptr", - "typeString": "struct IO memory" - } - }, - "id": 77442, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "32933:5:172", - "memberName": "token", - "nodeType": "MemberAccess", - "referencedDeclaration": 78653, - "src": "32881:57:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32854:85:172", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 77447, - "indexExpression": { - "expression": { - "id": 77443, - "name": "clearConfig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77147, - "src": "32940:11:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ClearConfig_$78728_calldata_ptr", - "typeString": "struct ClearConfig calldata" - } - }, - "id": 77444, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "32973:16:172", - "memberName": "bobBountyVaultId", - "nodeType": "MemberAccess", - "referencedDeclaration": 78727, - "src": "32940:49:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "32854:136:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "id": 77448, - "name": "bobBounty", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77402, - "src": "32994:9:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "32854:149:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 77450, - "nodeType": "ExpressionStatement", - "src": "32854:149:172" - } - ] - } - } - ] - }, - { - "eventCall": { - "arguments": [ - { - "expression": { - "id": 77455, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "33054:3:172", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 77456, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "33058:6:172", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "33054:10:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 77457, - "name": "clearStateChange", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77371, - "src": "33066:16:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ClearStateChange_$78737_memory_ptr", - "typeString": "struct ClearStateChange memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_struct$_ClearStateChange_$78737_memory_ptr", - "typeString": "struct ClearStateChange memory" - } - ], - "id": 77454, - "name": "AfterClear", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 79198, - "src": "33043:10:172", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_struct$_ClearStateChange_$78737_memory_ptr_$returns$__$", - "typeString": "function (address,struct ClearStateChange memory)" - } - }, - "id": 77458, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "33043:40:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 77459, - "nodeType": "EmitStatement", - "src": "33038:45:172" - }, - { - "expression": { - "arguments": [ - { - "id": 77461, - "name": "aliceOrderIOCalculation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77343, - "src": "33103:23:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_memory_ptr", - "typeString": "struct OrderIOCalculationV2 memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_memory_ptr", - "typeString": "struct OrderIOCalculationV2 memory" - } - ], - "id": 77460, - "name": "handleIO", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77995, - "src": "33094:8:172", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_OrderIOCalculationV2_$76041_memory_ptr_$returns$__$", - "typeString": "function (struct OrderIOCalculationV2 memory)" - } - }, - "id": 77462, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "33094:33:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 77463, - "nodeType": "ExpressionStatement", - "src": "33094:33:172" - }, - { - "expression": { - "arguments": [ - { - "id": 77465, - "name": "bobOrderIOCalculation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77357, - "src": "33146:21:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_memory_ptr", - "typeString": "struct OrderIOCalculationV2 memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_memory_ptr", - "typeString": "struct OrderIOCalculationV2 memory" - } - ], - "id": 77464, - "name": "handleIO", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77995, - "src": "33137:8:172", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_OrderIOCalculationV2_$76041_memory_ptr_$returns$__$", - "typeString": "function (struct OrderIOCalculationV2 memory)" - } - }, - "id": 77466, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "33137:31:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 77467, - "nodeType": "ExpressionStatement", - "src": "33137:31:172" - } - ] - }, - "baseFunctions": [ - 79288 - ], - "documentation": { - "id": 77138, - "nodeType": "StructuredDocumentation", - "src": "28644:28:172", - "text": "@inheritdoc IOrderBookV3" - }, - "functionSelector": "9e18968b", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "id": 77158, - "kind": "modifierInvocation", - "modifierName": { - "id": 77157, - "name": "nonReentrant", - "nameLocations": [ - "28921:12:172" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 43676, - "src": "28921:12:172" - }, - "nodeType": "ModifierInvocation", - "src": "28921:12:172" - } - ], - "name": "clear", - "nameLocation": "28686:5:172", - "parameters": { - "id": 77156, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 77141, - "mutability": "mutable", - "name": "aliceOrder", - "nameLocation": "28716:10:172", - "nodeType": "VariableDeclaration", - "scope": 77469, - "src": "28701:25:172", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2" - }, - "typeName": { - "id": 77140, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 77139, - "name": "OrderV2", - "nameLocations": [ - "28701:7:172" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 79042, - "src": "28701:7:172" - }, - "referencedDeclaration": 79042, - "src": "28701:7:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_storage_ptr", - "typeString": "struct OrderV2" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 77144, - "mutability": "mutable", - "name": "bobOrder", - "nameLocation": "28751:8:172", - "nodeType": "VariableDeclaration", - "scope": 77469, - "src": "28736:23:172", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2" - }, - "typeName": { - "id": 77143, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 77142, - "name": "OrderV2", - "nameLocations": [ - "28736:7:172" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 79042, - "src": "28736:7:172" - }, - "referencedDeclaration": 79042, - "src": "28736:7:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_storage_ptr", - "typeString": "struct OrderV2" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 77147, - "mutability": "mutable", - "name": "clearConfig", - "nameLocation": "28790:11:172", - "nodeType": "VariableDeclaration", - "scope": 77469, - "src": "28769:32:172", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ClearConfig_$78728_calldata_ptr", - "typeString": "struct ClearConfig" - }, - "typeName": { - "id": 77146, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 77145, - "name": "ClearConfig", - "nameLocations": [ - "28769:11:172" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 78728, - "src": "28769:11:172" - }, - "referencedDeclaration": 78728, - "src": "28769:11:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ClearConfig_$78728_storage_ptr", - "typeString": "struct ClearConfig" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 77151, - "mutability": "mutable", - "name": "aliceSignedContext", - "nameLocation": "28836:18:172", - "nodeType": "VariableDeclaration", - "scope": 77469, - "src": "28811:43:172", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_SignedContextV1_$55640_memory_ptr_$dyn_memory_ptr", - "typeString": "struct SignedContextV1[]" - }, - "typeName": { - "baseType": { - "id": 77149, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 77148, - "name": "SignedContextV1", - "nameLocations": [ - "28811:15:172" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 55640, - "src": "28811:15:172" - }, - "referencedDeclaration": 55640, - "src": "28811:15:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SignedContextV1_$55640_storage_ptr", - "typeString": "struct SignedContextV1" - } - }, - "id": 77150, - "nodeType": "ArrayTypeName", - "src": "28811:17:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_SignedContextV1_$55640_storage_$dyn_storage_ptr", - "typeString": "struct SignedContextV1[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 77155, - "mutability": "mutable", - "name": "bobSignedContext", - "nameLocation": "28889:16:172", - "nodeType": "VariableDeclaration", - "scope": 77469, - "src": "28864:41:172", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_SignedContextV1_$55640_memory_ptr_$dyn_memory_ptr", - "typeString": "struct SignedContextV1[]" - }, - "typeName": { - "baseType": { - "id": 77153, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 77152, - "name": "SignedContextV1", - "nameLocations": [ - "28864:15:172" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 55640, - "src": "28864:15:172" - }, - "referencedDeclaration": 55640, - "src": "28864:15:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SignedContextV1_$55640_storage_ptr", - "typeString": "struct SignedContextV1" - } - }, - "id": 77154, - "nodeType": "ArrayTypeName", - "src": "28864:17:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_SignedContextV1_$55640_storage_$dyn_storage_ptr", - "typeString": "struct SignedContextV1[]" - } - }, - "visibility": "internal" - } - ], - "src": "28691:220:172" - }, - "returnParameters": { - "id": 77159, - "nodeType": "ParameterList", - "parameters": [], - "src": "28934:0:172" - }, - "scope": 78178, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 77792, - "nodeType": "FunctionDefinition", - "src": "33879:5183:172", - "nodes": [], - "body": { - "id": 77791, - "nodeType": "Block", - "src": "34132:4930:172", - "nodes": [], - "statements": [ - { - "id": 77790, - "nodeType": "UncheckedBlock", - "src": "34142:4914:172", - "statements": [ - { - "assignments": [ - 77490 - ], - "declarations": [ - { - "constant": false, - "id": 77490, - "mutability": "mutable", - "name": "orderHash", - "nameLocation": "34174:9:172", - "nodeType": "VariableDeclaration", - "scope": 77790, - "src": "34166:17:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 77489, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "34166:7:172", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "visibility": "internal" - } - ], - "id": 77494, - "initialValue": { - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "id": 77491, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77473, - "src": "34186:5:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 77492, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "34192:4:172", - "memberName": "hash", - "nodeType": "MemberAccess", - "referencedDeclaration": 79344, - "src": "34186:10:172", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_OrderV2_$79042_memory_ptr_$returns$_t_bytes32_$attached_to$_t_struct$_OrderV2_$79042_memory_ptr_$", - "typeString": "function (struct OrderV2 memory) pure returns (bytes32)" - } - }, - "id": 77493, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "34186:12:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "34166:32:172" - }, - { - "assignments": [ - 77500 - ], - "declarations": [ - { - "constant": false, - "id": 77500, - "mutability": "mutable", - "name": "context", - "nameLocation": "34232:7:172", - "nodeType": "VariableDeclaration", - "scope": 77790, - "src": "34213:26:172", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$dyn_memory_ptr_$dyn_memory_ptr", - "typeString": "uint256[][]" - }, - "typeName": { - "baseType": { - "baseType": { - "id": 77497, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "34213:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 77498, - "nodeType": "ArrayTypeName", - "src": "34213:9:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "id": 77499, - "nodeType": "ArrayTypeName", - "src": "34213:11:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$dyn_storage_$dyn_storage_ptr", - "typeString": "uint256[][]" - } - }, - "visibility": "internal" - } - ], - "id": 77501, - "nodeType": "VariableDeclarationStatement", - "src": "34213:26:172" - }, - { - "id": 77648, - "nodeType": "Block", - "src": "34253:1502:172", - "statements": [ - { - "assignments": [ - 77507 - ], - "declarations": [ - { - "constant": false, - "id": 77507, - "mutability": "mutable", - "name": "callingContext", - "nameLocation": "34290:14:172", - "nodeType": "VariableDeclaration", - "scope": 77648, - "src": "34271:33:172", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$dyn_memory_ptr_$dyn_memory_ptr", - "typeString": "uint256[][]" - }, - "typeName": { - "baseType": { - "baseType": { - "id": 77504, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "34271:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 77505, - "nodeType": "ArrayTypeName", - "src": "34271:9:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "id": 77506, - "nodeType": "ArrayTypeName", - "src": "34271:11:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$dyn_storage_$dyn_storage_ptr", - "typeString": "uint256[][]" - } - }, - "visibility": "internal" - } - ], - "id": 77514, - "initialValue": { - "arguments": [ - { - "id": 77512, - "name": "CALLING_CONTEXT_COLUMNS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 75969, - "src": "34323:23:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 77511, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "34307:15:172", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_array$_t_uint256_$dyn_memory_ptr_$dyn_memory_ptr_$", - "typeString": "function (uint256) pure returns (uint256[] memory[] memory)" - }, - "typeName": { - "baseType": { - "baseType": { - "id": 77508, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "34311:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 77509, - "nodeType": "ArrayTypeName", - "src": "34311:9:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "id": 77510, - "nodeType": "ArrayTypeName", - "src": "34311:11:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$dyn_storage_$dyn_storage_ptr", - "typeString": "uint256[][]" - } - } - }, - "id": 77513, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "34307:40:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$dyn_memory_ptr_$dyn_memory_ptr", - "typeString": "uint256[] memory[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "34271:76:172" - }, - { - "expression": { - "id": 77542, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 77515, - "name": "callingContext", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77507, - "src": "34365:14:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$dyn_memory_ptr_$dyn_memory_ptr", - "typeString": "uint256[] memory[] memory" - } - }, - "id": 77519, - "indexExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 77518, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "id": 77516, - "name": "CONTEXT_CALLING_CONTEXT_COLUMN", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 75977, - "src": "34380:30:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "hexValue": "31", - "id": 77517, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "34413:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "34380:34:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "34365:50:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "arguments": [ - { - "id": 77524, - "name": "orderHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77490, - "src": "34473:9:172", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 77523, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "34465:7:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 77522, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "34465:7:172", - "typeDescriptions": {} - } - }, - "id": 77525, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "34465:18:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "arguments": [ - { - "arguments": [ - { - "expression": { - "id": 77530, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77473, - "src": "34501:5:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 77531, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "34507:5:172", - "memberName": "owner", - "nodeType": "MemberAccess", - "referencedDeclaration": 79028, - "src": "34501:11:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 77529, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "34493:7:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint160_$", - "typeString": "type(uint160)" - }, - "typeName": { - "id": 77528, - "name": "uint160", - "nodeType": "ElementaryTypeName", - "src": "34493:7:172", - "typeDescriptions": {} - } - }, - "id": 77532, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "34493:20:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint160", - "typeString": "uint160" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint160", - "typeString": "uint160" - } - ], - "id": 77527, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "34485:7:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 77526, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "34485:7:172", - "typeDescriptions": {} - } - }, - "id": 77533, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "34485:29:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "arguments": [ - { - "arguments": [ - { - "id": 77538, - "name": "counterparty", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77479, - "src": "34532:12:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 77537, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "34524:7:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint160_$", - "typeString": "type(uint160)" - }, - "typeName": { - "id": 77536, - "name": "uint160", - "nodeType": "ElementaryTypeName", - "src": "34524:7:172", - "typeDescriptions": {} - } - }, - "id": 77539, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "34524:21:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint160", - "typeString": "uint160" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint160", - "typeString": "uint160" - } - ], - "id": 77535, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "34516:7:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 77534, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "34516:7:172", - "typeDescriptions": {} - } - }, - "id": 77540, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "34516:30:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 77520, - "name": "LibUint256Array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 73827, - "src": "34418:15:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LibUint256Array_$73827_$", - "typeString": "type(library LibUint256Array)" - } - }, - "id": 77521, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "34434:9:172", - "memberName": "arrayFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 73701, - "src": "34418:25:172", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", - "typeString": "function (uint256,uint256,uint256) pure returns (uint256[] memory)" - } - }, - "id": 77541, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "34418:146:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "src": "34365:199:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 77543, - "nodeType": "ExpressionStatement", - "src": "34365:199:172" - }, - { - "expression": { - "id": 77590, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 77544, - "name": "callingContext", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77507, - "src": "34583:14:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$dyn_memory_ptr_$dyn_memory_ptr", - "typeString": "uint256[] memory[] memory" - } - }, - "id": 77548, - "indexExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 77547, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "id": 77545, - "name": "CONTEXT_VAULT_INPUTS_COLUMN", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 75985, - "src": "34598:27:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "hexValue": "31", - "id": 77546, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "34628:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "34598:31:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "34583:47:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "expression": { - "baseExpression": { - "expression": { - "id": 77555, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77473, - "src": "34696:5:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 77556, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "34702:11:172", - "memberName": "validInputs", - "nodeType": "MemberAccess", - "referencedDeclaration": 79037, - "src": "34696:17:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_IO_$78658_memory_ptr_$dyn_memory_ptr", - "typeString": "struct IO memory[] memory" - } - }, - "id": 77558, - "indexExpression": { - "id": 77557, - "name": "inputIOIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77475, - "src": "34714:12:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "34696:31:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_IO_$78658_memory_ptr", - "typeString": "struct IO memory" - } - }, - "id": 77559, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "34728:5:172", - "memberName": "token", - "nodeType": "MemberAccess", - "referencedDeclaration": 78653, - "src": "34696:37:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 77554, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "34688:7:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint160_$", - "typeString": "type(uint160)" - }, - "typeName": { - "id": 77553, - "name": "uint160", - "nodeType": "ElementaryTypeName", - "src": "34688:7:172", - "typeDescriptions": {} - } - }, - "id": 77560, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "34688:46:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint160", - "typeString": "uint160" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint160", - "typeString": "uint160" - } - ], - "id": 77552, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "34680:7:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 77551, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "34680:7:172", - "typeDescriptions": {} - } - }, - "id": 77561, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "34680:55:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "baseExpression": { - "expression": { - "id": 77562, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77473, - "src": "34757:5:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 77563, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "34763:11:172", - "memberName": "validInputs", - "nodeType": "MemberAccess", - "referencedDeclaration": 79037, - "src": "34757:17:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_IO_$78658_memory_ptr_$dyn_memory_ptr", - "typeString": "struct IO memory[] memory" - } - }, - "id": 77565, - "indexExpression": { - "id": 77564, - "name": "inputIOIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77475, - "src": "34775:12:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "34757:31:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_IO_$78658_memory_ptr", - "typeString": "struct IO memory" - } - }, - "id": 77566, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "34789:8:172", - "memberName": "decimals", - "nodeType": "MemberAccess", - "referencedDeclaration": 78655, - "src": "34757:40:172", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "expression": { - "baseExpression": { - "expression": { - "id": 77567, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77473, - "src": "34819:5:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 77568, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "34825:11:172", - "memberName": "validInputs", - "nodeType": "MemberAccess", - "referencedDeclaration": 79037, - "src": "34819:17:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_IO_$78658_memory_ptr_$dyn_memory_ptr", - "typeString": "struct IO memory[] memory" - } - }, - "id": 77570, - "indexExpression": { - "id": 77569, - "name": "inputIOIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77475, - "src": "34837:12:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "34819:31:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_IO_$78658_memory_ptr", - "typeString": "struct IO memory" - } - }, - "id": 77571, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "34851:7:172", - "memberName": "vaultId", - "nodeType": "MemberAccess", - "referencedDeclaration": 78657, - "src": "34819:39:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "baseExpression": { - "baseExpression": { - "baseExpression": { - "id": 77572, - "name": "sVaultBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76094, - "src": "34880:14:172", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$_$", - "typeString": "mapping(address => mapping(address => mapping(uint256 => uint256)))" - } - }, - "id": 77575, - "indexExpression": { - "expression": { - "id": 77573, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77473, - "src": "34895:5:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 77574, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "34901:5:172", - "memberName": "owner", - "nodeType": "MemberAccess", - "referencedDeclaration": 79028, - "src": "34895:11:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "34880:27:172", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(uint256 => uint256))" - } - }, - "id": 77581, - "indexExpression": { - "expression": { - "baseExpression": { - "expression": { - "id": 77576, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77473, - "src": "34908:5:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 77577, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "34914:11:172", - "memberName": "validInputs", - "nodeType": "MemberAccess", - "referencedDeclaration": 79037, - "src": "34908:17:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_IO_$78658_memory_ptr_$dyn_memory_ptr", - "typeString": "struct IO memory[] memory" - } - }, - "id": 77579, - "indexExpression": { - "id": 77578, - "name": "inputIOIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77475, - "src": "34926:12:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "34908:31:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_IO_$78658_memory_ptr", - "typeString": "struct IO memory" - } - }, - "id": 77580, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "34940:5:172", - "memberName": "token", - "nodeType": "MemberAccess", - "referencedDeclaration": 78653, - "src": "34908:37:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "34880:66:172", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 77587, - "indexExpression": { - "expression": { - "baseExpression": { - "expression": { - "id": 77582, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77473, - "src": "34947:5:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 77583, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "34953:11:172", - "memberName": "validInputs", - "nodeType": "MemberAccess", - "referencedDeclaration": 79037, - "src": "34947:17:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_IO_$78658_memory_ptr_$dyn_memory_ptr", - "typeString": "struct IO memory[] memory" - } - }, - "id": 77585, - "indexExpression": { - "id": 77584, - "name": "inputIOIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77475, - "src": "34965:12:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "34947:31:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_IO_$78658_memory_ptr", - "typeString": "struct IO memory" - } - }, - "id": 77586, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "35004:7:172", - "memberName": "vaultId", - "nodeType": "MemberAccess", - "referencedDeclaration": 78657, - "src": "34947:64:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "34880:132:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "hexValue": "30", - "id": 77588, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "35090:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "expression": { - "id": 77549, - "name": "LibUint256Array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 73827, - "src": "34633:15:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LibUint256Array_$73827_$", - "typeString": "type(library LibUint256Array)" - } - }, - "id": 77550, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "34649:9:172", - "memberName": "arrayFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 73737, - "src": "34633:25:172", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", - "typeString": "function (uint256,uint256,uint256,uint256,uint256) pure returns (uint256[] memory)" - } - }, - "id": 77589, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "34633:476:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "src": "34583:526:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 77591, - "nodeType": "ExpressionStatement", - "src": "34583:526:172" - }, - { - "expression": { - "id": 77638, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 77592, - "name": "callingContext", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77507, - "src": "35128:14:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$dyn_memory_ptr_$dyn_memory_ptr", - "typeString": "uint256[] memory[] memory" - } - }, - "id": 77596, - "indexExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 77595, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "id": 77593, - "name": "CONTEXT_VAULT_OUTPUTS_COLUMN", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 75989, - "src": "35143:28:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "hexValue": "31", - "id": 77594, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "35174:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "35143:32:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "35128:48:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "expression": { - "baseExpression": { - "expression": { - "id": 77603, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77473, - "src": "35242:5:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 77604, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "35248:12:172", - "memberName": "validOutputs", - "nodeType": "MemberAccess", - "referencedDeclaration": 79041, - "src": "35242:18:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_IO_$78658_memory_ptr_$dyn_memory_ptr", - "typeString": "struct IO memory[] memory" - } - }, - "id": 77606, - "indexExpression": { - "id": 77605, - "name": "outputIOIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77477, - "src": "35261:13:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "35242:33:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_IO_$78658_memory_ptr", - "typeString": "struct IO memory" - } - }, - "id": 77607, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "35276:5:172", - "memberName": "token", - "nodeType": "MemberAccess", - "referencedDeclaration": 78653, - "src": "35242:39:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 77602, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "35234:7:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint160_$", - "typeString": "type(uint160)" - }, - "typeName": { - "id": 77601, - "name": "uint160", - "nodeType": "ElementaryTypeName", - "src": "35234:7:172", - "typeDescriptions": {} - } - }, - "id": 77608, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "35234:48:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint160", - "typeString": "uint160" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint160", - "typeString": "uint160" - } - ], - "id": 77600, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "35226:7:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 77599, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "35226:7:172", - "typeDescriptions": {} - } - }, - "id": 77609, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "35226:57:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "baseExpression": { - "expression": { - "id": 77610, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77473, - "src": "35305:5:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 77611, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "35311:12:172", - "memberName": "validOutputs", - "nodeType": "MemberAccess", - "referencedDeclaration": 79041, - "src": "35305:18:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_IO_$78658_memory_ptr_$dyn_memory_ptr", - "typeString": "struct IO memory[] memory" - } - }, - "id": 77613, - "indexExpression": { - "id": 77612, - "name": "outputIOIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77477, - "src": "35324:13:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "35305:33:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_IO_$78658_memory_ptr", - "typeString": "struct IO memory" - } - }, - "id": 77614, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "35339:8:172", - "memberName": "decimals", - "nodeType": "MemberAccess", - "referencedDeclaration": 78655, - "src": "35305:42:172", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "expression": { - "baseExpression": { - "expression": { - "id": 77615, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77473, - "src": "35369:5:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 77616, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "35375:12:172", - "memberName": "validOutputs", - "nodeType": "MemberAccess", - "referencedDeclaration": 79041, - "src": "35369:18:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_IO_$78658_memory_ptr_$dyn_memory_ptr", - "typeString": "struct IO memory[] memory" - } - }, - "id": 77618, - "indexExpression": { - "id": 77617, - "name": "outputIOIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77477, - "src": "35388:13:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "35369:33:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_IO_$78658_memory_ptr", - "typeString": "struct IO memory" - } - }, - "id": 77619, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "35403:7:172", - "memberName": "vaultId", - "nodeType": "MemberAccess", - "referencedDeclaration": 78657, - "src": "35369:41:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "baseExpression": { - "baseExpression": { - "baseExpression": { - "id": 77620, - "name": "sVaultBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76094, - "src": "35432:14:172", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$_$", - "typeString": "mapping(address => mapping(address => mapping(uint256 => uint256)))" - } - }, - "id": 77623, - "indexExpression": { - "expression": { - "id": 77621, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77473, - "src": "35447:5:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 77622, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "35453:5:172", - "memberName": "owner", - "nodeType": "MemberAccess", - "referencedDeclaration": 79028, - "src": "35447:11:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "35432:27:172", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(uint256 => uint256))" - } - }, - "id": 77629, - "indexExpression": { - "expression": { - "baseExpression": { - "expression": { - "id": 77624, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77473, - "src": "35460:5:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 77625, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "35466:12:172", - "memberName": "validOutputs", - "nodeType": "MemberAccess", - "referencedDeclaration": 79041, - "src": "35460:18:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_IO_$78658_memory_ptr_$dyn_memory_ptr", - "typeString": "struct IO memory[] memory" - } - }, - "id": 77627, - "indexExpression": { - "id": 77626, - "name": "outputIOIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77477, - "src": "35479:13:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "35460:33:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_IO_$78658_memory_ptr", - "typeString": "struct IO memory" - } - }, - "id": 77628, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "35494:5:172", - "memberName": "token", - "nodeType": "MemberAccess", - "referencedDeclaration": 78653, - "src": "35460:39:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "35432:68:172", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 77635, - "indexExpression": { - "expression": { - "baseExpression": { - "expression": { - "id": 77630, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77473, - "src": "35501:5:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 77631, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "35507:12:172", - "memberName": "validOutputs", - "nodeType": "MemberAccess", - "referencedDeclaration": 79041, - "src": "35501:18:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_IO_$78658_memory_ptr_$dyn_memory_ptr", - "typeString": "struct IO memory[] memory" - } - }, - "id": 77633, - "indexExpression": { - "id": 77632, - "name": "outputIOIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77477, - "src": "35520:13:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "35501:33:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_IO_$78658_memory_ptr", - "typeString": "struct IO memory" - } - }, - "id": 77634, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "35560:7:172", - "memberName": "vaultId", - "nodeType": "MemberAccess", - "referencedDeclaration": 78657, - "src": "35501:66:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "35432:136:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "hexValue": "30", - "id": 77636, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "35646:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "expression": { - "id": 77597, - "name": "LibUint256Array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 73827, - "src": "35179:15:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LibUint256Array_$73827_$", - "typeString": "type(library LibUint256Array)" - } - }, - "id": 77598, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "35195:9:172", - "memberName": "arrayFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 73737, - "src": "35179:25:172", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", - "typeString": "function (uint256,uint256,uint256,uint256,uint256) pure returns (uint256[] memory)" - } - }, - "id": 77637, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "35179:486:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "src": "35128:537:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 77639, - "nodeType": "ExpressionStatement", - "src": "35128:537:172" - }, - { - "expression": { - "id": 77646, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 77640, - "name": "context", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77500, - "src": "35683:7:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$dyn_memory_ptr_$dyn_memory_ptr", - "typeString": "uint256[] memory[] memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 77643, - "name": "callingContext", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77507, - "src": "35710:14:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$dyn_memory_ptr_$dyn_memory_ptr", - "typeString": "uint256[] memory[] memory" - } - }, - { - "id": 77644, - "name": "signedContext", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77483, - "src": "35726:13:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_SignedContextV1_$55640_memory_ptr_$dyn_memory_ptr", - "typeString": "struct SignedContextV1 memory[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_array$_t_uint256_$dyn_memory_ptr_$dyn_memory_ptr", - "typeString": "uint256[] memory[] memory" - }, - { - "typeIdentifier": "t_array$_t_struct$_SignedContextV1_$55640_memory_ptr_$dyn_memory_ptr", - "typeString": "struct SignedContextV1 memory[] memory" - } - ], - "expression": { - "id": 77641, - "name": "LibContext", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 57009, - "src": "35693:10:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LibContext_$57009_$", - "typeString": "type(library LibContext)" - } - }, - "id": 77642, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "35704:5:172", - "memberName": "build", - "nodeType": "MemberAccess", - "referencedDeclaration": 57008, - "src": "35693:16:172", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_array$_t_array$_t_uint256_$dyn_memory_ptr_$dyn_memory_ptr_$_t_array$_t_struct$_SignedContextV1_$55640_memory_ptr_$dyn_memory_ptr_$returns$_t_array$_t_array$_t_uint256_$dyn_memory_ptr_$dyn_memory_ptr_$", - "typeString": "function (uint256[] memory[] memory,struct SignedContextV1 memory[] memory) view returns (uint256[] memory[] memory)" - } - }, - "id": 77645, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "35693:47:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$dyn_memory_ptr_$dyn_memory_ptr", - "typeString": "uint256[] memory[] memory" - } - }, - "src": "35683:57:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$dyn_memory_ptr_$dyn_memory_ptr", - "typeString": "uint256[] memory[] memory" - } - }, - "id": 77647, - "nodeType": "ExpressionStatement", - "src": "35683:57:172" - } - ] - }, - { - "assignments": [ - 77651 - ], - "declarations": [ - { - "constant": false, - "id": 77651, - "mutability": "mutable", - "name": "namespace", - "nameLocation": "35946:9:172", - "nodeType": "VariableDeclaration", - "scope": 77790, - "src": "35931:24:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_StateNamespace_$55877", - "typeString": "StateNamespace" - }, - "typeName": { - "id": 77650, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 77649, - "name": "StateNamespace", - "nameLocations": [ - "35931:14:172" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 55877, - "src": "35931:14:172" - }, - "referencedDeclaration": 55877, - "src": "35931:14:172", - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_StateNamespace_$55877", - "typeString": "StateNamespace" - } - }, - "visibility": "internal" - } - ], - "id": 77663, - "initialValue": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "expression": { - "id": 77658, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77473, - "src": "35994:5:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 77659, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "36000:5:172", - "memberName": "owner", - "nodeType": "MemberAccess", - "referencedDeclaration": 79028, - "src": "35994:11:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 77657, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "35986:7:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint160_$", - "typeString": "type(uint160)" - }, - "typeName": { - "id": 77656, - "name": "uint160", - "nodeType": "ElementaryTypeName", - "src": "35986:7:172", - "typeDescriptions": {} - } - }, - "id": 77660, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "35986:20:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint160", - "typeString": "uint160" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint160", - "typeString": "uint160" - } - ], - "id": 77655, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "35978:7:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 77654, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "35978:7:172", - "typeDescriptions": {} - } - }, - "id": 77661, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "35978:29:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 77652, - "name": "StateNamespace", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 55877, - "src": "35958:14:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_userDefinedValueType$_StateNamespace_$55877_$", - "typeString": "type(StateNamespace)" - } - }, - "id": 77653, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "35973:4:172", - "memberName": "wrap", - "nodeType": "MemberAccess", - "src": "35958:19:172", - "typeDescriptions": { - "typeIdentifier": "t_function_wrap_pure$_t_uint256_$returns$_t_userDefinedValueType$_StateNamespace_$55877_$", - "typeString": "function (uint256) pure returns (StateNamespace)" - } - }, - "id": 77662, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "35958:50:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_StateNamespace_$55877", - "typeString": "StateNamespace" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "35931:77:172" - }, - { - "assignments": [ - 77668, - 77671 - ], - "declarations": [ - { - "constant": false, - "id": 77668, - "mutability": "mutable", - "name": "calculateOrderStack", - "nameLocation": "36367:19:172", - "nodeType": "VariableDeclaration", - "scope": 77790, - "src": "36350:36:172", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 77666, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "36350:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 77667, - "nodeType": "ArrayTypeName", - "src": "36350:9:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 77671, - "mutability": "mutable", - "name": "calculateOrderKVs", - "nameLocation": "36405:17:172", - "nodeType": "VariableDeclaration", - "scope": 77790, - "src": "36388:34:172", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 77669, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "36388:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 77670, - "nodeType": "ArrayTypeName", - "src": "36388:9:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "visibility": "internal" - } - ], - "id": 77699, - "initialValue": { - "arguments": [ - { - "expression": { - "expression": { - "id": 77676, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77473, - "src": "36528:5:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 77677, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "36534:9:172", - "memberName": "evaluable", - "nodeType": "MemberAccess", - "referencedDeclaration": 79033, - "src": "36528:15:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EvaluableV2_$55632_memory_ptr", - "typeString": "struct EvaluableV2 memory" - } - }, - "id": 77678, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "36544:5:172", - "memberName": "store", - "nodeType": "MemberAccess", - "referencedDeclaration": 55629, - "src": "36528:21:172", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IInterpreterStoreV1_$55698", - "typeString": "contract IInterpreterStoreV1" - } - }, - { - "arguments": [ - { - "id": 77681, - "name": "namespace", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77651, - "src": "36597:9:172", - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_StateNamespace_$55877", - "typeString": "StateNamespace" - } - }, - { - "arguments": [ - { - "id": 77684, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "36616:4:172", - "typeDescriptions": { - "typeIdentifier": "t_contract$_OrderBook_$78178", - "typeString": "contract OrderBook" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_OrderBook_$78178", - "typeString": "contract OrderBook" - } - ], - "id": 77683, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "36608:7:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 77682, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "36608:7:172", - "typeDescriptions": {} - } - }, - "id": 77685, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "36608:13:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_userDefinedValueType$_StateNamespace_$55877", - "typeString": "StateNamespace" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 77679, - "name": "LibNamespace", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 57900, - "src": "36567:12:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LibNamespace_$57900_$", - "typeString": "type(library LibNamespace)" - } - }, - "id": 77680, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "36580:16:172", - "memberName": "qualifyNamespace", - "nodeType": "MemberAccess", - "referencedDeclaration": 57899, - "src": "36567:29:172", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_StateNamespace_$55877_$_t_address_$returns$_t_userDefinedValueType$_FullyQualifiedNamespace_$55666_$", - "typeString": "function (StateNamespace,address) pure returns (FullyQualifiedNamespace)" - } - }, - "id": 77686, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "36567:55:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_FullyQualifiedNamespace_$55666", - "typeString": "FullyQualifiedNamespace" - } - }, - { - "arguments": [ - { - "expression": { - "expression": { - "id": 77688, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77473, - "src": "36664:5:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 77689, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "36670:9:172", - "memberName": "evaluable", - "nodeType": "MemberAccess", - "referencedDeclaration": 79033, - "src": "36664:15:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EvaluableV2_$55632_memory_ptr", - "typeString": "struct EvaluableV2 memory" - } - }, - "id": 77690, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "36680:10:172", - "memberName": "expression", - "nodeType": "MemberAccess", - "referencedDeclaration": 55631, - "src": "36664:26:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 77687, - "name": "_calculateOrderDispatch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 78161, - "src": "36640:23:172", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_userDefinedValueType$_EncodedDispatch_$55875_$", - "typeString": "function (address) pure returns (EncodedDispatch)" - } - }, - "id": 77691, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "36640:51:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_EncodedDispatch_$55875", - "typeString": "EncodedDispatch" - } - }, - { - "id": 77692, - "name": "context", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77500, - "src": "36709:7:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$dyn_memory_ptr_$dyn_memory_ptr", - "typeString": "uint256[] memory[] memory" - } - }, - { - "arguments": [ - { - "hexValue": "30", - "id": 77696, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "36748:1:172", - "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": 77695, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "36734:13:172", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", - "typeString": "function (uint256) pure returns (uint256[] memory)" - }, - "typeName": { - "baseType": { - "id": 77693, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "36738:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 77694, - "nodeType": "ArrayTypeName", - "src": "36738:9:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - } - }, - "id": 77697, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "36734:16:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IInterpreterStoreV1_$55698", - "typeString": "contract IInterpreterStoreV1" - }, - { - "typeIdentifier": "t_userDefinedValueType$_FullyQualifiedNamespace_$55666", - "typeString": "FullyQualifiedNamespace" - }, - { - "typeIdentifier": "t_userDefinedValueType$_EncodedDispatch_$55875", - "typeString": "EncodedDispatch" - }, - { - "typeIdentifier": "t_array$_t_array$_t_uint256_$dyn_memory_ptr_$dyn_memory_ptr", - "typeString": "uint256[] memory[] memory" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - ], - "expression": { - "expression": { - "expression": { - "id": 77672, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77473, - "src": "36426:5:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 77673, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "36449:9:172", - "memberName": "evaluable", - "nodeType": "MemberAccess", - "referencedDeclaration": 79033, - "src": "36426:32:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EvaluableV2_$55632_memory_ptr", - "typeString": "struct EvaluableV2 memory" - } - }, - "id": 77674, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "36476:11:172", - "memberName": "interpreter", - "nodeType": "MemberAccess", - "referencedDeclaration": 55626, - "src": "36426:61:172", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IInterpreterV2_$56032", - "typeString": "contract IInterpreterV2" - } - }, - "id": 77675, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "36505:5:172", - "memberName": "eval2", - "nodeType": "MemberAccess", - "referencedDeclaration": 56031, - "src": "36426:84:172", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_contract$_IInterpreterStoreV1_$55698_$_t_userDefinedValueType$_FullyQualifiedNamespace_$55666_$_t_userDefinedValueType$_EncodedDispatch_$55875_$_t_array$_t_array$_t_uint256_$dyn_memory_ptr_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$", - "typeString": "function (contract IInterpreterStoreV1,FullyQualifiedNamespace,EncodedDispatch,uint256[] memory[] memory,uint256[] memory) view external returns (uint256[] memory,uint256[] memory)" - } - }, - "id": 77698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "36426:338:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$", - "typeString": "tuple(uint256[] memory,uint256[] memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "36349:415:172" - }, - { - "assignments": [ - 77702 - ], - "declarations": [ - { - "constant": false, - "id": 77702, - "mutability": "mutable", - "name": "orderOutputMax18", - "nameLocation": "36794:16:172", - "nodeType": "VariableDeclaration", - "scope": 77790, - "src": "36779:31:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_Output18Amount_$76043", - "typeString": "Output18Amount" - }, - "typeName": { - "id": 77701, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 77700, - "name": "Output18Amount", - "nameLocations": [ - "36779:14:172" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 76043, - "src": "36779:14:172" - }, - "referencedDeclaration": 76043, - "src": "36779:14:172", - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_Output18Amount_$76043", - "typeString": "Output18Amount" - } - }, - "visibility": "internal" - } - ], - "id": 77709, - "initialValue": { - "arguments": [ - { - "baseExpression": { - "id": 77705, - "name": "calculateOrderStack", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77668, - "src": "36833:19:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 77707, - "indexExpression": { - "hexValue": "31", - "id": 77706, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "36853:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "36833:22:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 77703, - "name": "Output18Amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76043, - "src": "36813:14:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_userDefinedValueType$_Output18Amount_$76043_$", - "typeString": "type(Output18Amount)" - } - }, - "id": 77704, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "36828:4:172", - "memberName": "wrap", - "nodeType": "MemberAccess", - "src": "36813:19:172", - "typeDescriptions": { - "typeIdentifier": "t_function_wrap_pure$_t_uint256_$returns$_t_userDefinedValueType$_Output18Amount_$76043_$", - "typeString": "function (uint256) pure returns (Output18Amount)" - } - }, - "id": 77708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "36813:43:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_Output18Amount_$76043", - "typeString": "Output18Amount" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "36779:77:172" - }, - { - "assignments": [ - 77711 - ], - "declarations": [ - { - "constant": false, - "id": 77711, - "mutability": "mutable", - "name": "orderIORatio", - "nameLocation": "36878:12:172", - "nodeType": "VariableDeclaration", - "scope": 77790, - "src": "36870:20:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 77710, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "36870:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 77715, - "initialValue": { - "baseExpression": { - "id": 77712, - "name": "calculateOrderStack", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77668, - "src": "36893:19:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 77714, - "indexExpression": { - "hexValue": "30", - "id": 77713, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "36913:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "36893:22:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "36870:45:172" - }, - { - "id": 77766, - "nodeType": "Block", - "src": "36930:1718:172", - "statements": [ - { - "assignments": [ - 77717 - ], - "declarations": [ - { - "constant": false, - "id": 77717, - "mutability": "mutable", - "name": "ownerVaultBalance", - "nameLocation": "37092:17:172", - "nodeType": "VariableDeclaration", - "scope": 77766, - "src": "37084:25:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 77716, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "37084:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 77734, - "initialValue": { - "baseExpression": { - "baseExpression": { - "baseExpression": { - "id": 77718, - "name": "sVaultBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76094, - "src": "37112:14:172", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$_$", - "typeString": "mapping(address => mapping(address => mapping(uint256 => uint256)))" - } - }, - "id": 77721, - "indexExpression": { - "expression": { - "id": 77719, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77473, - "src": "37127:5:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 77720, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "37133:5:172", - "memberName": "owner", - "nodeType": "MemberAccess", - "referencedDeclaration": 79028, - "src": "37127:11:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "37112:27:172", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(uint256 => uint256))" - } - }, - "id": 77727, - "indexExpression": { - "expression": { - "baseExpression": { - "expression": { - "id": 77722, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77473, - "src": "37140:5:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 77723, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "37146:12:172", - "memberName": "validOutputs", - "nodeType": "MemberAccess", - "referencedDeclaration": 79041, - "src": "37140:18:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_IO_$78658_memory_ptr_$dyn_memory_ptr", - "typeString": "struct IO memory[] memory" - } - }, - "id": 77725, - "indexExpression": { - "id": 77724, - "name": "outputIOIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77477, - "src": "37159:13:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "37140:33:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_IO_$78658_memory_ptr", - "typeString": "struct IO memory" - } - }, - "id": 77726, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "37174:5:172", - "memberName": "token", - "nodeType": "MemberAccess", - "referencedDeclaration": 78653, - "src": "37140:39:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "37112:68:172", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 77733, - "indexExpression": { - "expression": { - "baseExpression": { - "expression": { - "id": 77728, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77473, - "src": "37181:5:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 77729, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "37208:12:172", - "memberName": "validOutputs", - "nodeType": "MemberAccess", - "referencedDeclaration": 79041, - "src": "37181:39:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_IO_$78658_memory_ptr_$dyn_memory_ptr", - "typeString": "struct IO memory[] memory" - } - }, - "id": 77731, - "indexExpression": { - "id": 77730, - "name": "outputIOIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77477, - "src": "37221:13:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "37181:54:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_IO_$78658_memory_ptr", - "typeString": "struct IO memory" - } - }, - "id": 77732, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "37236:7:172", - "memberName": "vaultId", - "nodeType": "MemberAccess", - "referencedDeclaration": 78657, - "src": "37181:62:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "37112:132:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "37084:160:172" - }, - { - "assignments": [ - 77737 - ], - "declarations": [ - { - "constant": false, - "id": 77737, - "mutability": "mutable", - "name": "ownerVaultBalance18", - "nameLocation": "38312:19:172", - "nodeType": "VariableDeclaration", - "scope": 77766, - "src": "38297:34:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_Output18Amount_$76043", - "typeString": "Output18Amount" - }, - "typeName": { - "id": 77736, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 77735, - "name": "Output18Amount", - "nameLocations": [ - "38297:14:172" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 76043, - "src": "38297:14:172" - }, - "referencedDeclaration": 76043, - "src": "38297:14:172", - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_Output18Amount_$76043", - "typeString": "Output18Amount" - } - }, - "visibility": "internal" - } - ], - "id": 77750, - "initialValue": { - "arguments": [ - { - "arguments": [ - { - "expression": { - "baseExpression": { - "expression": { - "id": 77742, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77473, - "src": "38400:5:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 77743, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "38406:12:172", - "memberName": "validOutputs", - "nodeType": "MemberAccess", - "referencedDeclaration": 79041, - "src": "38400:18:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_IO_$78658_memory_ptr_$dyn_memory_ptr", - "typeString": "struct IO memory[] memory" - } - }, - "id": 77745, - "indexExpression": { - "id": 77744, - "name": "outputIOIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77477, - "src": "38419:13:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "38400:33:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_IO_$78658_memory_ptr", - "typeString": "struct IO memory" - } - }, - "id": 77746, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "38434:8:172", - "memberName": "decimals", - "nodeType": "MemberAccess", - "referencedDeclaration": 78655, - "src": "38400:42:172", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "hexValue": "30", - "id": 77747, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "38444:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "expression": { - "id": 77740, - "name": "ownerVaultBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77717, - "src": "38374:17:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 77741, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "38392:7:172", - "memberName": "scale18", - "nodeType": "MemberAccess", - "referencedDeclaration": 72704, - "src": "38374:25:172", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$", - "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" - } - }, - "id": 77748, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "38374:72:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 77738, - "name": "Output18Amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76043, - "src": "38354:14:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_userDefinedValueType$_Output18Amount_$76043_$", - "typeString": "type(Output18Amount)" - } - }, - "id": 77739, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "38369:4:172", - "memberName": "wrap", - "nodeType": "MemberAccess", - "src": "38354:19:172", - "typeDescriptions": { - "typeIdentifier": "t_function_wrap_pure$_t_uint256_$returns$_t_userDefinedValueType$_Output18Amount_$76043_$", - "typeString": "function (uint256) pure returns (Output18Amount)" - } - }, - "id": 77749, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "38354:93:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_Output18Amount_$76043", - "typeString": "Output18Amount" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "38297:150:172" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 77759, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "id": 77753, - "name": "orderOutputMax18", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77702, - "src": "38491:16:172", - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_Output18Amount_$76043", - "typeString": "Output18Amount" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_userDefinedValueType$_Output18Amount_$76043", - "typeString": "Output18Amount" - } - ], - "expression": { - "id": 77751, - "name": "Output18Amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76043, - "src": "38469:14:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_userDefinedValueType$_Output18Amount_$76043_$", - "typeString": "type(Output18Amount)" - } - }, - "id": 77752, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "38484:6:172", - "memberName": "unwrap", - "nodeType": "MemberAccess", - "src": "38469:21:172", - "typeDescriptions": { - "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_Output18Amount_$76043_$returns$_t_uint256_$", - "typeString": "function (Output18Amount) pure returns (uint256)" - } - }, - "id": 77754, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "38469:39:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "arguments": [ - { - "id": 77757, - "name": "ownerVaultBalance18", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77737, - "src": "38533:19:172", - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_Output18Amount_$76043", - "typeString": "Output18Amount" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_userDefinedValueType$_Output18Amount_$76043", - "typeString": "Output18Amount" - } - ], - "expression": { - "id": 77755, - "name": "Output18Amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76043, - "src": "38511:14:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_userDefinedValueType$_Output18Amount_$76043_$", - "typeString": "type(Output18Amount)" - } - }, - "id": 77756, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "38526:6:172", - "memberName": "unwrap", - "nodeType": "MemberAccess", - "src": "38511:21:172", - "typeDescriptions": { - "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_Output18Amount_$76043_$returns$_t_uint256_$", - "typeString": "function (Output18Amount) pure returns (uint256)" - } - }, - "id": 77758, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "38511:42:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "38469:84:172", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 77765, - "nodeType": "IfStatement", - "src": "38465:169:172", - "trueBody": { - "id": 77764, - "nodeType": "Block", - "src": "38555:79:172", - "statements": [ - { - "expression": { - "id": 77762, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 77760, - "name": "orderOutputMax18", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77702, - "src": "38577:16:172", - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_Output18Amount_$76043", - "typeString": "Output18Amount" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 77761, - "name": "ownerVaultBalance18", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77737, - "src": "38596:19:172", - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_Output18Amount_$76043", - "typeString": "Output18Amount" - } - }, - "src": "38577:38:172", - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_Output18Amount_$76043", - "typeString": "Output18Amount" - } - }, - "id": 77763, - "nodeType": "ExpressionStatement", - "src": "38577:38:172" - } - ] - } - } - ] - }, - { - "expression": { - "id": 77778, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 77767, - "name": "context", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77500, - "src": "38745:7:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$dyn_memory_ptr_$dyn_memory_ptr", - "typeString": "uint256[] memory[] memory" - } - }, - "id": 77769, - "indexExpression": { - "id": 77768, - "name": "CONTEXT_CALCULATIONS_COLUMN", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 75981, - "src": "38753:27:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "38745:36:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "arguments": [ - { - "id": 77774, - "name": "orderOutputMax18", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77702, - "src": "38848:16:172", - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_Output18Amount_$76043", - "typeString": "Output18Amount" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_userDefinedValueType$_Output18Amount_$76043", - "typeString": "Output18Amount" - } - ], - "expression": { - "id": 77772, - "name": "Output18Amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76043, - "src": "38826:14:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_userDefinedValueType$_Output18Amount_$76043_$", - "typeString": "type(Output18Amount)" - } - }, - "id": 77773, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "38841:6:172", - "memberName": "unwrap", - "nodeType": "MemberAccess", - "src": "38826:21:172", - "typeDescriptions": { - "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_Output18Amount_$76043_$returns$_t_uint256_$", - "typeString": "function (Output18Amount) pure returns (uint256)" - } - }, - "id": 77775, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "38826:39:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 77776, - "name": "orderIORatio", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77711, - "src": "38867:12:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 77770, - "name": "LibUint256Array", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 73827, - "src": "38800:15:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LibUint256Array_$73827_$", - "typeString": "type(library LibUint256Array)" - } - }, - "id": 77771, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "38816:9:172", - "memberName": "arrayFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 73686, - "src": "38800:25:172", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", - "typeString": "function (uint256,uint256) pure returns (uint256[] memory)" - } - }, - "id": 77777, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "38800:80:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "src": "38745:135:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 77779, - "nodeType": "ExpressionStatement", - "src": "38745:135:172" - }, - { - "expression": { - "arguments": [ - { - "id": 77781, - "name": "order", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77473, - "src": "38940:5:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - { - "id": 77782, - "name": "outputIOIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77477, - "src": "38947:13:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 77783, - "name": "orderOutputMax18", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77702, - "src": "38962:16:172", - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_Output18Amount_$76043", - "typeString": "Output18Amount" - } - }, - { - "id": 77784, - "name": "orderIORatio", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77711, - "src": "38980:12:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "id": 77785, - "name": "context", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77500, - "src": "38994:7:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$dyn_memory_ptr_$dyn_memory_ptr", - "typeString": "uint256[] memory[] memory" - } - }, - { - "id": 77786, - "name": "namespace", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77651, - "src": "39003:9:172", - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_StateNamespace_$55877", - "typeString": "StateNamespace" - } - }, - { - "id": 77787, - "name": "calculateOrderKVs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77671, - "src": "39014:17:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_userDefinedValueType$_Output18Amount_$76043", - "typeString": "Output18Amount" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_array$_t_uint256_$dyn_memory_ptr_$dyn_memory_ptr", - "typeString": "uint256[] memory[] memory" - }, - { - "typeIdentifier": "t_userDefinedValueType$_StateNamespace_$55877", - "typeString": "StateNamespace" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - ], - "id": 77780, - "name": "OrderIOCalculationV2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76041, - "src": "38902:20:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_OrderIOCalculationV2_$76041_storage_ptr_$", - "typeString": "type(struct OrderIOCalculationV2 storage pointer)" - } - }, - "id": 77788, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "38902:143:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_memory_ptr", - "typeString": "struct OrderIOCalculationV2 memory" - } - }, - "functionReturnParameters": 77488, - "id": 77789, - "nodeType": "Return", - "src": "38895:150:172" - } - ] - } - ] - }, - "documentation": { - "id": 77470, - "nodeType": "StructuredDocumentation", - "src": "33181:693:172", - "text": "Main entrypoint into an order calculates the amount and IO ratio. Both\n are always treated as 18 decimal fixed point values and then rescaled\n according to the order's definition of each token's actual fixed point\n decimals.\n @param order The order to evaluate.\n @param inputIOIndex The index of the input token being calculated for.\n @param outputIOIndex The index of the output token being calculated for.\n @param counterparty The counterparty of the order as it is currently\n being cleared against.\n @param signedContext Any signed context provided by the clearer/taker\n that the order may need for its calculations." - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "calculateOrderIO", - "nameLocation": "33888:16:172", - "parameters": { - "id": 77484, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 77473, - "mutability": "mutable", - "name": "order", - "nameLocation": "33929:5:172", - "nodeType": "VariableDeclaration", - "scope": 77792, - "src": "33914:20:172", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2" - }, - "typeName": { - "id": 77472, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 77471, - "name": "OrderV2", - "nameLocations": [ - "33914:7:172" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 79042, - "src": "33914:7:172" - }, - "referencedDeclaration": 79042, - "src": "33914:7:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_storage_ptr", - "typeString": "struct OrderV2" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 77475, - "mutability": "mutable", - "name": "inputIOIndex", - "nameLocation": "33952:12:172", - "nodeType": "VariableDeclaration", - "scope": 77792, - "src": "33944:20:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 77474, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "33944:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 77477, - "mutability": "mutable", - "name": "outputIOIndex", - "nameLocation": "33982:13:172", - "nodeType": "VariableDeclaration", - "scope": 77792, - "src": "33974:21:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 77476, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "33974:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 77479, - "mutability": "mutable", - "name": "counterparty", - "nameLocation": "34013:12:172", - "nodeType": "VariableDeclaration", - "scope": 77792, - "src": "34005:20:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 77478, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "34005:7:172", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 77483, - "mutability": "mutable", - "name": "signedContext", - "nameLocation": "34060:13:172", - "nodeType": "VariableDeclaration", - "scope": 77792, - "src": "34035:38:172", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_SignedContextV1_$55640_memory_ptr_$dyn_memory_ptr", - "typeString": "struct SignedContextV1[]" - }, - "typeName": { - "baseType": { - "id": 77481, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 77480, - "name": "SignedContextV1", - "nameLocations": [ - "34035:15:172" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 55640, - "src": "34035:15:172" - }, - "referencedDeclaration": 55640, - "src": "34035:15:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_SignedContextV1_$55640_storage_ptr", - "typeString": "struct SignedContextV1" - } - }, - "id": 77482, - "nodeType": "ArrayTypeName", - "src": "34035:17:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_SignedContextV1_$55640_storage_$dyn_storage_ptr", - "typeString": "struct SignedContextV1[]" - } - }, - "visibility": "internal" - } - ], - "src": "33904:175:172" - }, - "returnParameters": { - "id": 77488, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 77487, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 77792, - "src": "34103:27:172", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_memory_ptr", - "typeString": "struct OrderIOCalculationV2" - }, - "typeName": { - "id": 77486, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 77485, - "name": "OrderIOCalculationV2", - "nameLocations": [ - "34103:20:172" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 76041, - "src": "34103:20:172" - }, - "referencedDeclaration": 76041, - "src": "34103:20:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_storage_ptr", - "typeString": "struct OrderIOCalculationV2" - } - }, - "visibility": "internal" - } - ], - "src": "34102:29:172" - }, - "scope": 78178, - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "id": 77897, - "nodeType": "FunctionDefinition", - "src": "39582:1324:172", - "nodes": [], - "body": { - "id": 77896, - "nodeType": "Block", - "src": "39693:1213:172", - "nodes": [], - "statements": [ - { - "expression": { - "id": 77811, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "baseExpression": { - "expression": { - "id": 77803, - "name": "orderIOCalculation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77800, - "src": "39703:18:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_memory_ptr", - "typeString": "struct OrderIOCalculationV2 memory" - } - }, - "id": 77807, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "39722:7:172", - "memberName": "context", - "nodeType": "MemberAccess", - "referencedDeclaration": 76034, - "src": "39703:26:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$dyn_memory_ptr_$dyn_memory_ptr", - "typeString": "uint256[] memory[] memory" - } - }, - "id": 77808, - "indexExpression": { - "id": 77805, - "name": "CONTEXT_VAULT_INPUTS_COLUMN", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 75985, - "src": "39730:27:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "39703:55:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 77809, - "indexExpression": { - "id": 77806, - "name": "CONTEXT_VAULT_IO_BALANCE_DIFF", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76009, - "src": "39759:29:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "39703:86:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 77810, - "name": "input", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77795, - "src": "39792:5:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "39703:94:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 77812, - "nodeType": "ExpressionStatement", - "src": "39703:94:172" - }, - { - "expression": { - "id": 77821, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "baseExpression": { - "expression": { - "id": 77813, - "name": "orderIOCalculation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77800, - "src": "39807:18:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_memory_ptr", - "typeString": "struct OrderIOCalculationV2 memory" - } - }, - "id": 77817, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "39826:7:172", - "memberName": "context", - "nodeType": "MemberAccess", - "referencedDeclaration": 76034, - "src": "39807:26:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$dyn_memory_ptr_$dyn_memory_ptr", - "typeString": "uint256[] memory[] memory" - } - }, - "id": 77818, - "indexExpression": { - "id": 77815, - "name": "CONTEXT_VAULT_OUTPUTS_COLUMN", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 75989, - "src": "39834:28:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "39807:56:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 77819, - "indexExpression": { - "id": 77816, - "name": "CONTEXT_VAULT_IO_BALANCE_DIFF", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76009, - "src": "39864:29:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "39807:87:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 77820, - "name": "output", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77797, - "src": "39897:6:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "39807:96:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 77822, - "nodeType": "ExpressionStatement", - "src": "39807:96:172" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 77825, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 77823, - "name": "input", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77795, - "src": "39918:5:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 77824, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "39926:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "39918:9:172", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 77855, - "nodeType": "IfStatement", - "src": "39914:379:172", - "trueBody": { - "id": 77854, - "nodeType": "Block", - "src": "39929:364:172", - "statements": [ - { - "expression": { - "id": 77852, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "baseExpression": { - "baseExpression": { - "id": 77826, - "name": "sVaultBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76094, - "src": "40014:14:172", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$_$", - "typeString": "mapping(address => mapping(address => mapping(uint256 => uint256)))" - } - }, - "id": 77848, - "indexExpression": { - "expression": { - "expression": { - "id": 77827, - "name": "orderIOCalculation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77800, - "src": "40029:18:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_memory_ptr", - "typeString": "struct OrderIOCalculationV2 memory" - } - }, - "id": 77828, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "40048:5:172", - "memberName": "order", - "nodeType": "MemberAccess", - "referencedDeclaration": 76023, - "src": "40029:24:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 77829, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "40054:5:172", - "memberName": "owner", - "nodeType": "MemberAccess", - "referencedDeclaration": 79028, - "src": "40029:30:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "40014:46:172", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(uint256 => uint256))" - } - }, - "id": 77849, - "indexExpression": { - "arguments": [ - { - "arguments": [ - { - "baseExpression": { - "baseExpression": { - "expression": { - "id": 77834, - "name": "orderIOCalculation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77800, - "src": "40094:18:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_memory_ptr", - "typeString": "struct OrderIOCalculationV2 memory" - } - }, - "id": 77835, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "40113:7:172", - "memberName": "context", - "nodeType": "MemberAccess", - "referencedDeclaration": 76034, - "src": "40094:26:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$dyn_memory_ptr_$dyn_memory_ptr", - "typeString": "uint256[] memory[] memory" - } - }, - "id": 77837, - "indexExpression": { - "id": 77836, - "name": "CONTEXT_VAULT_INPUTS_COLUMN", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 75985, - "src": "40121:27:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "40094:55:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 77839, - "indexExpression": { - "id": 77838, - "name": "CONTEXT_VAULT_IO_TOKEN", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 75993, - "src": "40150:22:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "40094:79:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 77833, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "40086:7:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint160_$", - "typeString": "type(uint160)" - }, - "typeName": { - "id": 77832, - "name": "uint160", - "nodeType": "ElementaryTypeName", - "src": "40086:7:172", - "typeDescriptions": {} - } - }, - "id": 77840, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "40086:88:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint160", - "typeString": "uint160" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint160", - "typeString": "uint160" - } - ], - "id": 77831, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "40061:7:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 77830, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "40061:7:172", - "typeDescriptions": {} - } - }, - "id": 77841, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "40061:127:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "40014:175:172", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 77850, - "indexExpression": { - "baseExpression": { - "baseExpression": { - "expression": { - "id": 77842, - "name": "orderIOCalculation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77800, - "src": "40190:18:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_memory_ptr", - "typeString": "struct OrderIOCalculationV2 memory" - } - }, - "id": 77843, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "40209:7:172", - "memberName": "context", - "nodeType": "MemberAccess", - "referencedDeclaration": 76034, - "src": "40190:26:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$dyn_memory_ptr_$dyn_memory_ptr", - "typeString": "uint256[] memory[] memory" - } - }, - "id": 77845, - "indexExpression": { - "id": 77844, - "name": "CONTEXT_VAULT_INPUTS_COLUMN", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 75985, - "src": "40217:27:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "40190:55:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 77847, - "indexExpression": { - "id": 77846, - "name": "CONTEXT_VAULT_IO_VAULT_ID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76001, - "src": "40246:25:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "40190:82:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "40014:259:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "id": 77851, - "name": "input", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77795, - "src": "40277:5:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "40014:268:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 77853, - "nodeType": "ExpressionStatement", - "src": "40014:268:172" - } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 77858, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 77856, - "name": "output", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77797, - "src": "40306:6:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 77857, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "40315:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "40306:10:172", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 77888, - "nodeType": "IfStatement", - "src": "40302:384:172", - "trueBody": { - "id": 77887, - "nodeType": "Block", - "src": "40318:368:172", - "statements": [ - { - "expression": { - "id": 77885, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "baseExpression": { - "baseExpression": { - "id": 77859, - "name": "sVaultBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76094, - "src": "40404:14:172", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$_$", - "typeString": "mapping(address => mapping(address => mapping(uint256 => uint256)))" - } - }, - "id": 77881, - "indexExpression": { - "expression": { - "expression": { - "id": 77860, - "name": "orderIOCalculation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77800, - "src": "40419:18:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_memory_ptr", - "typeString": "struct OrderIOCalculationV2 memory" - } - }, - "id": 77861, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "40438:5:172", - "memberName": "order", - "nodeType": "MemberAccess", - "referencedDeclaration": 76023, - "src": "40419:24:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 77862, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "40444:5:172", - "memberName": "owner", - "nodeType": "MemberAccess", - "referencedDeclaration": 79028, - "src": "40419:30:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "40404:46:172", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(uint256 => uint256))" - } - }, - "id": 77882, - "indexExpression": { - "arguments": [ - { - "arguments": [ - { - "baseExpression": { - "baseExpression": { - "expression": { - "id": 77867, - "name": "orderIOCalculation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77800, - "src": "40484:18:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_memory_ptr", - "typeString": "struct OrderIOCalculationV2 memory" - } - }, - "id": 77868, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "40503:7:172", - "memberName": "context", - "nodeType": "MemberAccess", - "referencedDeclaration": 76034, - "src": "40484:26:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$dyn_memory_ptr_$dyn_memory_ptr", - "typeString": "uint256[] memory[] memory" - } - }, - "id": 77870, - "indexExpression": { - "id": 77869, - "name": "CONTEXT_VAULT_OUTPUTS_COLUMN", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 75989, - "src": "40511:28:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "40484:56:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 77872, - "indexExpression": { - "id": 77871, - "name": "CONTEXT_VAULT_IO_TOKEN", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 75993, - "src": "40541:22:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "40484:80:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 77866, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "40476:7:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint160_$", - "typeString": "type(uint160)" - }, - "typeName": { - "id": 77865, - "name": "uint160", - "nodeType": "ElementaryTypeName", - "src": "40476:7:172", - "typeDescriptions": {} - } - }, - "id": 77873, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "40476:89:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint160", - "typeString": "uint160" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint160", - "typeString": "uint160" - } - ], - "id": 77864, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "40451:7:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 77863, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "40451:7:172", - "typeDescriptions": {} - } - }, - "id": 77874, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "40451:128:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "40404:176:172", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$", - "typeString": "mapping(uint256 => uint256)" - } - }, - "id": 77883, - "indexExpression": { - "baseExpression": { - "baseExpression": { - "expression": { - "id": 77875, - "name": "orderIOCalculation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77800, - "src": "40581:18:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_memory_ptr", - "typeString": "struct OrderIOCalculationV2 memory" - } - }, - "id": 77876, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "40600:7:172", - "memberName": "context", - "nodeType": "MemberAccess", - "referencedDeclaration": 76034, - "src": "40581:26:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$dyn_memory_ptr_$dyn_memory_ptr", - "typeString": "uint256[] memory[] memory" - } - }, - "id": 77878, - "indexExpression": { - "id": 77877, - "name": "CONTEXT_VAULT_OUTPUTS_COLUMN", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 75989, - "src": "40608:28:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "40581:56:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 77880, - "indexExpression": { - "id": 77879, - "name": "CONTEXT_VAULT_IO_VAULT_ID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76001, - "src": "40638:25:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "40581:83:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "40404:261:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "id": 77884, - "name": "output", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77797, - "src": "40669:6:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "40404:271:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 77886, - "nodeType": "ExpressionStatement", - "src": "40404:271:172" - } - ] - } - }, - { - "eventCall": { - "arguments": [ - { - "expression": { - "id": 77890, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "40860:3:172", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 77891, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "40864:6:172", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "40860:10:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "expression": { - "id": 77892, - "name": "orderIOCalculation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77800, - "src": "40872:18:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_memory_ptr", - "typeString": "struct OrderIOCalculationV2 memory" - } - }, - "id": 77893, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "40891:7:172", - "memberName": "context", - "nodeType": "MemberAccess", - "referencedDeclaration": 76034, - "src": "40872:26:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$dyn_memory_ptr_$dyn_memory_ptr", - "typeString": "uint256[] memory[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_array$_t_array$_t_uint256_$dyn_memory_ptr_$dyn_memory_ptr", - "typeString": "uint256[] memory[] memory" - } - ], - "id": 77889, - "name": "Context", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 55659, - "src": "40852:7:172", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_array$_t_array$_t_uint256_$dyn_memory_ptr_$dyn_memory_ptr_$returns$__$", - "typeString": "function (address,uint256[] memory[] memory)" - } - }, - "id": 77894, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "40852:47:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 77895, - "nodeType": "EmitStatement", - "src": "40847:52:172" - } - ] - }, - "documentation": { - "id": 77793, - "nodeType": "StructuredDocumentation", - "src": "39068:509:172", - "text": "Given an order, final input and output amounts and the IO calculation\n verbatim from `_calculateOrderIO`, dispatch the handle IO entrypoint if\n it exists and update the order owner's vault balances.\n @param input The exact token input amount to move into the owner's\n vault.\n @param output The exact token output amount to move out of the owner's\n vault.\n @param orderIOCalculation The verbatim order IO calculation returned by\n `_calculateOrderIO`." - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "recordVaultIO", - "nameLocation": "39591:13:172", - "parameters": { - "id": 77801, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 77795, - "mutability": "mutable", - "name": "input", - "nameLocation": "39613:5:172", - "nodeType": "VariableDeclaration", - "scope": 77897, - "src": "39605:13:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 77794, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "39605:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 77797, - "mutability": "mutable", - "name": "output", - "nameLocation": "39628:6:172", - "nodeType": "VariableDeclaration", - "scope": 77897, - "src": "39620:14:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 77796, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "39620:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 77800, - "mutability": "mutable", - "name": "orderIOCalculation", - "nameLocation": "39664:18:172", - "nodeType": "VariableDeclaration", - "scope": 77897, - "src": "39636:46:172", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_memory_ptr", - "typeString": "struct OrderIOCalculationV2" - }, - "typeName": { - "id": 77799, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 77798, - "name": "OrderIOCalculationV2", - "nameLocations": [ - "39636:20:172" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 76041, - "src": "39636:20:172" - }, - "referencedDeclaration": 76041, - "src": "39636:20:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_storage_ptr", - "typeString": "struct OrderIOCalculationV2" - } - }, - "visibility": "internal" - } - ], - "src": "39604:79:172" - }, - "returnParameters": { - "id": 77802, - "nodeType": "ParameterList", - "parameters": [], - "src": "39693:0:172" - }, - "scope": 78178, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "id": 77995, - "nodeType": "FunctionDefinition", - "src": "40912:2667:172", - "nodes": [], - "body": { - "id": 77994, - "nodeType": "Block", - "src": "40987:2592:172", - "nodes": [], - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 77907, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "expression": { - "id": 77903, - "name": "orderIOCalculation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77900, - "src": "41217:18:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_memory_ptr", - "typeString": "struct OrderIOCalculationV2 memory" - } - }, - "id": 77904, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "41236:3:172", - "memberName": "kvs", - "nodeType": "MemberAccess", - "referencedDeclaration": 76040, - "src": "41217:22:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 77905, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "41240:6:172", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "41217:29:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 77906, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "41249:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "41217:33:172", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 77924, - "nodeType": "IfStatement", - "src": "41213:489:172", - "trueBody": { - "id": 77923, - "nodeType": "Block", - "src": "41252:450:172", - "statements": [ - { - "expression": { - "arguments": [ - { - "expression": { - "id": 77917, - "name": "orderIOCalculation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77900, - "src": "41638:18:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_memory_ptr", - "typeString": "struct OrderIOCalculationV2 memory" - } - }, - "id": 77918, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "41657:9:172", - "memberName": "namespace", - "nodeType": "MemberAccess", - "referencedDeclaration": 76037, - "src": "41638:28:172", - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_StateNamespace_$55877", - "typeString": "StateNamespace" - } - }, - { - "expression": { - "id": 77919, - "name": "orderIOCalculation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77900, - "src": "41668:18:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_memory_ptr", - "typeString": "struct OrderIOCalculationV2 memory" - } - }, - "id": 77920, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "41687:3:172", - "memberName": "kvs", - "nodeType": "MemberAccess", - "referencedDeclaration": 76040, - "src": "41668:22:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_userDefinedValueType$_StateNamespace_$55877", - "typeString": "StateNamespace" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - ], - "expression": { - "expression": { - "expression": { - "expression": { - "id": 77908, - "name": "orderIOCalculation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77900, - "src": "41593:18:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_memory_ptr", - "typeString": "struct OrderIOCalculationV2 memory" - } - }, - "id": 77913, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "41612:5:172", - "memberName": "order", - "nodeType": "MemberAccess", - "referencedDeclaration": 76023, - "src": "41593:24:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 77914, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "41618:9:172", - "memberName": "evaluable", - "nodeType": "MemberAccess", - "referencedDeclaration": 79033, - "src": "41593:34:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EvaluableV2_$55632_memory_ptr", - "typeString": "struct EvaluableV2 memory" - } - }, - "id": 77915, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "41628:5:172", - "memberName": "store", - "nodeType": "MemberAccess", - "referencedDeclaration": 55629, - "src": "41593:40:172", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IInterpreterStoreV1_$55698", - "typeString": "contract IInterpreterStoreV1" - } - }, - "id": 77916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "41634:3:172", - "memberName": "set", - "nodeType": "MemberAccess", - "referencedDeclaration": 55686, - "src": "41593:44:172", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_userDefinedValueType$_StateNamespace_$55877_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", - "typeString": "function (StateNamespace,uint256[] memory) external" - } - }, - "id": 77921, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "41593:98:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 77922, - "nodeType": "ExpressionStatement", - "src": "41593:98:172" - } - ] - } - }, - { - "condition": { - "expression": { - "expression": { - "id": 77925, - "name": "orderIOCalculation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77900, - "src": "41860:18:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_memory_ptr", - "typeString": "struct OrderIOCalculationV2 memory" - } - }, - "id": 77926, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "41879:5:172", - "memberName": "order", - "nodeType": "MemberAccess", - "referencedDeclaration": 76023, - "src": "41860:24:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 77927, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "41885:8:172", - "memberName": "handleIO", - "nodeType": "MemberAccess", - "referencedDeclaration": 79030, - "src": "41860:33:172", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 77993, - "nodeType": "IfStatement", - "src": "41856:1717:172", - "trueBody": { - "id": 77992, - "nodeType": "Block", - "src": "41895:1678:172", - "statements": [ - { - "assignments": [ - 77932, - 77935 - ], - "declarations": [ - { - "constant": false, - "id": 77932, - "mutability": "mutable", - "name": "handleIOStack", - "nameLocation": "42370:13:172", - "nodeType": "VariableDeclaration", - "scope": 77992, - "src": "42353:30:172", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 77930, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "42353:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 77931, - "nodeType": "ArrayTypeName", - "src": "42353:9:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 77935, - "mutability": "mutable", - "name": "handleIOKVs", - "nameLocation": "42402:11:172", - "nodeType": "VariableDeclaration", - "scope": 77992, - "src": "42385:28:172", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 77933, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "42385:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 77934, - "nodeType": "ArrayTypeName", - "src": "42385:9:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "visibility": "internal" - } - ], - "id": 77968, - "initialValue": { - "arguments": [ - { - "expression": { - "expression": { - "expression": { - "id": 77941, - "name": "orderIOCalculation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77900, - "src": "42555:18:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_memory_ptr", - "typeString": "struct OrderIOCalculationV2 memory" - } - }, - "id": 77942, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "42574:5:172", - "memberName": "order", - "nodeType": "MemberAccess", - "referencedDeclaration": 76023, - "src": "42555:24:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 77943, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "42580:9:172", - "memberName": "evaluable", - "nodeType": "MemberAccess", - "referencedDeclaration": 79033, - "src": "42555:34:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EvaluableV2_$55632_memory_ptr", - "typeString": "struct EvaluableV2 memory" - } - }, - "id": 77944, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "42590:5:172", - "memberName": "store", - "nodeType": "MemberAccess", - "referencedDeclaration": 55629, - "src": "42555:40:172", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IInterpreterStoreV1_$55698", - "typeString": "contract IInterpreterStoreV1" - } - }, - { - "arguments": [ - { - "expression": { - "id": 77947, - "name": "orderIOCalculation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77900, - "src": "42643:18:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_memory_ptr", - "typeString": "struct OrderIOCalculationV2 memory" - } - }, - "id": 77948, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "42662:9:172", - "memberName": "namespace", - "nodeType": "MemberAccess", - "referencedDeclaration": 76037, - "src": "42643:28:172", - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_StateNamespace_$55877", - "typeString": "StateNamespace" - } - }, - { - "arguments": [ - { - "id": 77951, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "42681:4:172", - "typeDescriptions": { - "typeIdentifier": "t_contract$_OrderBook_$78178", - "typeString": "contract OrderBook" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_OrderBook_$78178", - "typeString": "contract OrderBook" - } - ], - "id": 77950, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "42673:7:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 77949, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "42673:7:172", - "typeDescriptions": {} - } - }, - "id": 77952, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "42673:13:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_userDefinedValueType$_StateNamespace_$55877", - "typeString": "StateNamespace" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "id": 77945, - "name": "LibNamespace", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 57900, - "src": "42613:12:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LibNamespace_$57900_$", - "typeString": "type(library LibNamespace)" - } - }, - "id": 77946, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "42626:16:172", - "memberName": "qualifyNamespace", - "nodeType": "MemberAccess", - "referencedDeclaration": 57899, - "src": "42613:29:172", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_userDefinedValueType$_StateNamespace_$55877_$_t_address_$returns$_t_userDefinedValueType$_FullyQualifiedNamespace_$55666_$", - "typeString": "function (StateNamespace,address) pure returns (FullyQualifiedNamespace)" - } - }, - "id": 77953, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "42613:74:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_FullyQualifiedNamespace_$55666", - "typeString": "FullyQualifiedNamespace" - } - }, - { - "arguments": [ - { - "expression": { - "expression": { - "expression": { - "id": 77955, - "name": "orderIOCalculation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77900, - "src": "42723:18:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_memory_ptr", - "typeString": "struct OrderIOCalculationV2 memory" - } - }, - "id": 77956, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "42742:5:172", - "memberName": "order", - "nodeType": "MemberAccess", - "referencedDeclaration": 76023, - "src": "42723:24:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 77957, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "42748:9:172", - "memberName": "evaluable", - "nodeType": "MemberAccess", - "referencedDeclaration": 79033, - "src": "42723:34:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EvaluableV2_$55632_memory_ptr", - "typeString": "struct EvaluableV2 memory" - } - }, - "id": 77958, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "42758:10:172", - "memberName": "expression", - "nodeType": "MemberAccess", - "referencedDeclaration": 55631, - "src": "42723:45:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 77954, - "name": "_handleIODispatch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 78177, - "src": "42705:17:172", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_userDefinedValueType$_EncodedDispatch_$55875_$", - "typeString": "function (address) pure returns (EncodedDispatch)" - } - }, - "id": 77959, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "42705:64:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_EncodedDispatch_$55875", - "typeString": "EncodedDispatch" - } - }, - { - "expression": { - "id": 77960, - "name": "orderIOCalculation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77900, - "src": "42787:18:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_memory_ptr", - "typeString": "struct OrderIOCalculationV2 memory" - } - }, - "id": 77961, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "42806:7:172", - "memberName": "context", - "nodeType": "MemberAccess", - "referencedDeclaration": 76034, - "src": "42787:26:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_uint256_$dyn_memory_ptr_$dyn_memory_ptr", - "typeString": "uint256[] memory[] memory" - } - }, - { - "arguments": [ - { - "hexValue": "30", - "id": 77965, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "42845:1:172", - "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": 77964, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "42831:13:172", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", - "typeString": "function (uint256) pure returns (uint256[] memory)" - }, - "typeName": { - "baseType": { - "id": 77962, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "42835:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 77963, - "nodeType": "ArrayTypeName", - "src": "42835:9:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - } - }, - "id": 77966, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "42831:16:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IInterpreterStoreV1_$55698", - "typeString": "contract IInterpreterStoreV1" - }, - { - "typeIdentifier": "t_userDefinedValueType$_FullyQualifiedNamespace_$55666", - "typeString": "FullyQualifiedNamespace" - }, - { - "typeIdentifier": "t_userDefinedValueType$_EncodedDispatch_$55875", - "typeString": "EncodedDispatch" - }, - { - "typeIdentifier": "t_array$_t_array$_t_uint256_$dyn_memory_ptr_$dyn_memory_ptr", - "typeString": "uint256[] memory[] memory" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - ], - "expression": { - "expression": { - "expression": { - "expression": { - "id": 77936, - "name": "orderIOCalculation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77900, - "src": "42417:18:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_memory_ptr", - "typeString": "struct OrderIOCalculationV2 memory" - } - }, - "id": 77937, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "42453:5:172", - "memberName": "order", - "nodeType": "MemberAccess", - "referencedDeclaration": 76023, - "src": "42417:41:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 77938, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "42476:9:172", - "memberName": "evaluable", - "nodeType": "MemberAccess", - "referencedDeclaration": 79033, - "src": "42417:68:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EvaluableV2_$55632_memory_ptr", - "typeString": "struct EvaluableV2 memory" - } - }, - "id": 77939, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "42503:11:172", - "memberName": "interpreter", - "nodeType": "MemberAccess", - "referencedDeclaration": 55626, - "src": "42417:97:172", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IInterpreterV2_$56032", - "typeString": "contract IInterpreterV2" - } - }, - "id": 77940, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "42532:5:172", - "memberName": "eval2", - "nodeType": "MemberAccess", - "referencedDeclaration": 56031, - "src": "42417:120:172", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_contract$_IInterpreterStoreV1_$55698_$_t_userDefinedValueType$_FullyQualifiedNamespace_$55666_$_t_userDefinedValueType$_EncodedDispatch_$55875_$_t_array$_t_array$_t_uint256_$dyn_memory_ptr_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$", - "typeString": "function (contract IInterpreterStoreV1,FullyQualifiedNamespace,EncodedDispatch,uint256[] memory[] memory,uint256[] memory) view external returns (uint256[] memory,uint256[] memory)" - } - }, - "id": 77967, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "42417:444:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$", - "typeString": "tuple(uint256[] memory,uint256[] memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "42352:509:172" - }, - { - "expression": { - "components": [ - { - "id": 77969, - "name": "handleIOStack", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77932, - "src": "42934:13:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - } - ], - "id": 77970, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "42933:15:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 77971, - "nodeType": "ExpressionStatement", - "src": "42933:15:172" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 77975, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 77972, - "name": "handleIOKVs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77935, - "src": "43072:11:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 77973, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "43084:6:172", - "memberName": "length", - "nodeType": "MemberAccess", - "src": "43072:18:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "hexValue": "30", - "id": 77974, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "43093:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "43072:22:172", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 77991, - "nodeType": "IfStatement", - "src": "43068:495:172", - "trueBody": { - "id": 77990, - "nodeType": "Block", - "src": "43096:467:172", - "statements": [ - { - "expression": { - "arguments": [ - { - "expression": { - "id": 77985, - "name": "orderIOCalculation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77900, - "src": "43506:18:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_memory_ptr", - "typeString": "struct OrderIOCalculationV2 memory" - } - }, - "id": 77986, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "43525:9:172", - "memberName": "namespace", - "nodeType": "MemberAccess", - "referencedDeclaration": 76037, - "src": "43506:28:172", - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_StateNamespace_$55877", - "typeString": "StateNamespace" - } - }, - { - "id": 77987, - "name": "handleIOKVs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77935, - "src": "43536:11:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_userDefinedValueType$_StateNamespace_$55877", - "typeString": "StateNamespace" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - ], - "expression": { - "expression": { - "expression": { - "expression": { - "id": 77976, - "name": "orderIOCalculation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77900, - "src": "43461:18:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_memory_ptr", - "typeString": "struct OrderIOCalculationV2 memory" - } - }, - "id": 77981, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "43480:5:172", - "memberName": "order", - "nodeType": "MemberAccess", - "referencedDeclaration": 76023, - "src": "43461:24:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 77982, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "43486:9:172", - "memberName": "evaluable", - "nodeType": "MemberAccess", - "referencedDeclaration": 79033, - "src": "43461:34:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_EvaluableV2_$55632_memory_ptr", - "typeString": "struct EvaluableV2 memory" - } - }, - "id": 77983, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "43496:5:172", - "memberName": "store", - "nodeType": "MemberAccess", - "referencedDeclaration": 55629, - "src": "43461:40:172", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IInterpreterStoreV1_$55698", - "typeString": "contract IInterpreterStoreV1" - } - }, - "id": 77984, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "43502:3:172", - "memberName": "set", - "nodeType": "MemberAccess", - "referencedDeclaration": 55686, - "src": "43461:44:172", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_userDefinedValueType$_StateNamespace_$55877_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", - "typeString": "function (StateNamespace,uint256[] memory) external" - } - }, - "id": 77988, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "43461:87:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 77989, - "nodeType": "ExpressionStatement", - "src": "43461:87:172" - } - ] - } - } - ] - } - } - ] - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "handleIO", - "nameLocation": "40921:8:172", - "parameters": { - "id": 77901, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 77900, - "mutability": "mutable", - "name": "orderIOCalculation", - "nameLocation": "40958:18:172", - "nodeType": "VariableDeclaration", - "scope": 77995, - "src": "40930:46:172", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_memory_ptr", - "typeString": "struct OrderIOCalculationV2" - }, - "typeName": { - "id": 77899, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 77898, - "name": "OrderIOCalculationV2", - "nameLocations": [ - "40930:20:172" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 76041, - "src": "40930:20:172" - }, - "referencedDeclaration": 76041, - "src": "40930:20:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_storage_ptr", - "typeString": "struct OrderIOCalculationV2" - } - }, - "visibility": "internal" - } - ], - "src": "40929:48:172" - }, - "returnParameters": { - "id": 77902, - "nodeType": "ParameterList", - "parameters": [], - "src": "40987:0:172" - }, - "scope": 78178, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "id": 78033, - "nodeType": "FunctionDefinition", - "src": "44123:654:172", - "nodes": [], - "body": { - "id": 78032, - "nodeType": "Block", - "src": "44349:428:172", - "nodes": [], - "statements": [ - { - "expression": { - "id": 78018, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "components": [ - { - "expression": { - "id": 78008, - "name": "clearStateChange", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 78006, - "src": "44415:16:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ClearStateChange_$78737_memory_ptr", - "typeString": "struct ClearStateChange memory" - } - }, - "id": 78010, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "44432:10:172", - "memberName": "aliceInput", - "nodeType": "MemberAccess", - "referencedDeclaration": 78734, - "src": "44415:27:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 78011, - "name": "clearStateChange", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 78006, - "src": "44444:16:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ClearStateChange_$78737_memory_ptr", - "typeString": "struct ClearStateChange memory" - } - }, - "id": 78012, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "44461:11:172", - "memberName": "aliceOutput", - "nodeType": "MemberAccess", - "referencedDeclaration": 78730, - "src": "44444:28:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 78013, - "isConstant": false, - "isInlineArray": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "TupleExpression", - "src": "44414:59:172", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 78015, - "name": "aliceOrderIOCalculation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77999, - "src": "44513:23:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_memory_ptr", - "typeString": "struct OrderIOCalculationV2 memory" - } - }, - { - "id": 78016, - "name": "bobOrderIOCalculation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 78002, - "src": "44538:21:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_memory_ptr", - "typeString": "struct OrderIOCalculationV2 memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_memory_ptr", - "typeString": "struct OrderIOCalculationV2 memory" - }, - { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_memory_ptr", - "typeString": "struct OrderIOCalculationV2 memory" - } - ], - "id": 78014, - "name": "calculateClearStateAlice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 78145, - "src": "44488:24:172", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_OrderIOCalculationV2_$76041_memory_ptr_$_t_struct$_OrderIOCalculationV2_$76041_memory_ptr_$returns$_t_uint256_$_t_uint256_$", - "typeString": "function (struct OrderIOCalculationV2 memory,struct OrderIOCalculationV2 memory) pure returns (uint256,uint256)" - } - }, - "id": 78017, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "44488:72:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "src": "44414:146:172", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 78019, - "nodeType": "ExpressionStatement", - "src": "44414:146:172" - }, - { - "expression": { - "id": 78030, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "components": [ - { - "expression": { - "id": 78020, - "name": "clearStateChange", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 78006, - "src": "44629:16:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ClearStateChange_$78737_memory_ptr", - "typeString": "struct ClearStateChange memory" - } - }, - "id": 78022, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "44646:8:172", - "memberName": "bobInput", - "nodeType": "MemberAccess", - "referencedDeclaration": 78736, - "src": "44629:25:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 78023, - "name": "clearStateChange", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 78006, - "src": "44656:16:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ClearStateChange_$78737_memory_ptr", - "typeString": "struct ClearStateChange memory" - } - }, - "id": 78024, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberLocation": "44673:9:172", - "memberName": "bobOutput", - "nodeType": "MemberAccess", - "referencedDeclaration": 78732, - "src": "44656:26:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 78025, - "isConstant": false, - "isInlineArray": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "TupleExpression", - "src": "44628:55:172", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "id": 78027, - "name": "bobOrderIOCalculation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 78002, - "src": "44723:21:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_memory_ptr", - "typeString": "struct OrderIOCalculationV2 memory" - } - }, - { - "id": 78028, - "name": "aliceOrderIOCalculation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77999, - "src": "44746:23:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_memory_ptr", - "typeString": "struct OrderIOCalculationV2 memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_memory_ptr", - "typeString": "struct OrderIOCalculationV2 memory" - }, - { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_memory_ptr", - "typeString": "struct OrderIOCalculationV2 memory" - } - ], - "id": 78026, - "name": "calculateClearStateAlice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 78145, - "src": "44698:24:172", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_OrderIOCalculationV2_$76041_memory_ptr_$_t_struct$_OrderIOCalculationV2_$76041_memory_ptr_$returns$_t_uint256_$_t_uint256_$", - "typeString": "function (struct OrderIOCalculationV2 memory,struct OrderIOCalculationV2 memory) pure returns (uint256,uint256)" - } - }, - "id": 78029, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "44698:72:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", - "typeString": "tuple(uint256,uint256)" - } - }, - "src": "44628:142:172", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 78031, - "nodeType": "ExpressionStatement", - "src": "44628:142:172" - } - ] - }, - "documentation": { - "id": 77996, - "nodeType": "StructuredDocumentation", - "src": "43585:533:172", - "text": "Calculates the clear state change given both order calculations for order\n alice and order bob. The input of each is their output multiplied by\n their IO ratio and the output of each is the smaller of their maximum\n output and the counterparty IO * max output.\n @param aliceOrderIOCalculation Order calculation for Alice.\n @param bobOrderIOCalculation Order calculation for Bob.\n @return clearStateChange The clear state change with absolute inputs and\n outputs for Alice and Bob." - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "calculateClearStateChange", - "nameLocation": "44132:25:172", - "parameters": { - "id": 78003, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 77999, - "mutability": "mutable", - "name": "aliceOrderIOCalculation", - "nameLocation": "44195:23:172", - "nodeType": "VariableDeclaration", - "scope": 78033, - "src": "44167:51:172", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_memory_ptr", - "typeString": "struct OrderIOCalculationV2" - }, - "typeName": { - "id": 77998, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 77997, - "name": "OrderIOCalculationV2", - "nameLocations": [ - "44167:20:172" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 76041, - "src": "44167:20:172" - }, - "referencedDeclaration": 76041, - "src": "44167:20:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_storage_ptr", - "typeString": "struct OrderIOCalculationV2" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 78002, - "mutability": "mutable", - "name": "bobOrderIOCalculation", - "nameLocation": "44256:21:172", - "nodeType": "VariableDeclaration", - "scope": 78033, - "src": "44228:49:172", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_memory_ptr", - "typeString": "struct OrderIOCalculationV2" - }, - "typeName": { - "id": 78001, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 78000, - "name": "OrderIOCalculationV2", - "nameLocations": [ - "44228:20:172" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 76041, - "src": "44228:20:172" - }, - "referencedDeclaration": 76041, - "src": "44228:20:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_storage_ptr", - "typeString": "struct OrderIOCalculationV2" - } - }, - "visibility": "internal" - } - ], - "src": "44157:126:172" - }, - "returnParameters": { - "id": 78007, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 78006, - "mutability": "mutable", - "name": "clearStateChange", - "nameLocation": "44331:16:172", - "nodeType": "VariableDeclaration", - "scope": 78033, - "src": "44307:40:172", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ClearStateChange_$78737_memory_ptr", - "typeString": "struct ClearStateChange" - }, - "typeName": { - "id": 78005, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 78004, - "name": "ClearStateChange", - "nameLocations": [ - "44307:16:172" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 78737, - "src": "44307:16:172" - }, - "referencedDeclaration": 78737, - "src": "44307:16:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ClearStateChange_$78737_storage_ptr", - "typeString": "struct ClearStateChange" - } - }, - "visibility": "internal" - } - ], - "src": "44306:42:172" - }, - "scope": 78178, - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "id": 78145, - "nodeType": "FunctionDefinition", - "src": "44783:2025:172", - "nodes": [], - "body": { - "id": 78144, - "nodeType": "Block", - "src": "45007:1801:172", - "nodes": [], - "statements": [ - { - "assignments": [ - 78048 - ], - "declarations": [ - { - "constant": false, - "id": 78048, - "mutability": "mutable", - "name": "bobInputMax18", - "nameLocation": "45224:13:172", - "nodeType": "VariableDeclaration", - "scope": 78144, - "src": "45210:27:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_Input18Amount_$76045", - "typeString": "Input18Amount" - }, - "typeName": { - "id": 78047, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 78046, - "name": "Input18Amount", - "nameLocations": [ - "45210:13:172" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 76045, - "src": "45210:13:172" - }, - "referencedDeclaration": 76045, - "src": "45210:13:172", - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_Input18Amount_$76045", - "typeString": "Input18Amount" - } - }, - "visibility": "internal" - } - ], - "id": 78064, - "initialValue": { - "arguments": [ - { - "arguments": [ - { - "expression": { - "id": 78057, - "name": "bobOrderIOCalculation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 78039, - "src": "45358:21:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_memory_ptr", - "typeString": "struct OrderIOCalculationV2 memory" - } - }, - "id": 78058, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "45380:7:172", - "memberName": "IORatio", - "nodeType": "MemberAccess", - "referencedDeclaration": 76030, - "src": "45358:29:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "expression": { - "id": 78059, - "name": "Math", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46932, - "src": "45389:4:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Math_$46932_$", - "typeString": "type(library Math)" - } - }, - "id": 78060, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "45394:8:172", - "memberName": "Rounding", - "nodeType": "MemberAccess", - "referencedDeclaration": 46073, - "src": "45389:13:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Rounding_$46073_$", - "typeString": "type(enum Math.Rounding)" - } - }, - "id": 78061, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "45403:2:172", - "memberName": "Up", - "nodeType": "MemberAccess", - "referencedDeclaration": 46071, - "src": "45389:16:172", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$46073", - "typeString": "enum Math.Rounding" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_enum$_Rounding_$46073", - "typeString": "enum Math.Rounding" - } - ], - "expression": { - "arguments": [ - { - "expression": { - "id": 78053, - "name": "bobOrderIOCalculation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 78039, - "src": "45294:21:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_memory_ptr", - "typeString": "struct OrderIOCalculationV2 memory" - } - }, - "id": 78054, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "45316:9:172", - "memberName": "outputMax", - "nodeType": "MemberAccess", - "referencedDeclaration": 76028, - "src": "45294:31:172", - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_Output18Amount_$76043", - "typeString": "Output18Amount" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_userDefinedValueType$_Output18Amount_$76043", - "typeString": "Output18Amount" - } - ], - "expression": { - "id": 78051, - "name": "Output18Amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76043, - "src": "45272:14:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_userDefinedValueType$_Output18Amount_$76043_$", - "typeString": "type(Output18Amount)" - } - }, - "id": 78052, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "45287:6:172", - "memberName": "unwrap", - "nodeType": "MemberAccess", - "src": "45272:21:172", - "typeDescriptions": { - "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_Output18Amount_$76043_$returns$_t_uint256_$", - "typeString": "function (Output18Amount) pure returns (uint256)" - } - }, - "id": 78055, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "45272:54:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 78056, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "45327:13:172", - "memberName": "fixedPointMul", - "nodeType": "MemberAccess", - "referencedDeclaration": 72431, - "src": "45272:68:172", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_enum$_Rounding_$46073_$returns$_t_uint256_$attached_to$_t_uint256_$", - "typeString": "function (uint256,uint256,enum Math.Rounding) pure returns (uint256)" - } - }, - "id": 78062, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "45272:147:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 78049, - "name": "Input18Amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76045, - "src": "45240:13:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_userDefinedValueType$_Input18Amount_$76045_$", - "typeString": "type(Input18Amount)" - } - }, - "id": 78050, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "45254:4:172", - "memberName": "wrap", - "nodeType": "MemberAccess", - "src": "45240:18:172", - "typeDescriptions": { - "typeIdentifier": "t_function_wrap_pure$_t_uint256_$returns$_t_userDefinedValueType$_Input18Amount_$76045_$", - "typeString": "function (uint256) pure returns (Input18Amount)" - } - }, - "id": 78063, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "45240:189:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_Input18Amount_$76045", - "typeString": "Input18Amount" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "45210:219:172" - }, - { - "assignments": [ - 78067 - ], - "declarations": [ - { - "constant": false, - "id": 78067, - "mutability": "mutable", - "name": "aliceOutputMax18", - "nameLocation": "45454:16:172", - "nodeType": "VariableDeclaration", - "scope": 78144, - "src": "45439:31:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_Output18Amount_$76043", - "typeString": "Output18Amount" - }, - "typeName": { - "id": 78066, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 78065, - "name": "Output18Amount", - "nameLocations": [ - "45439:14:172" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 76043, - "src": "45439:14:172" - }, - "referencedDeclaration": 76043, - "src": "45439:14:172", - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_Output18Amount_$76043", - "typeString": "Output18Amount" - } - }, - "visibility": "internal" - } - ], - "id": 78070, - "initialValue": { - "expression": { - "id": 78068, - "name": "aliceOrderIOCalculation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 78036, - "src": "45473:23:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_memory_ptr", - "typeString": "struct OrderIOCalculationV2 memory" - } - }, - "id": 78069, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "45497:9:172", - "memberName": "outputMax", - "nodeType": "MemberAccess", - "referencedDeclaration": 76028, - "src": "45473:33:172", - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_Output18Amount_$76043", - "typeString": "Output18Amount" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "45439:67:172" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 78079, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "id": 78073, - "name": "aliceOutputMax18", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 78067, - "src": "45619:16:172", - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_Output18Amount_$76043", - "typeString": "Output18Amount" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_userDefinedValueType$_Output18Amount_$76043", - "typeString": "Output18Amount" - } - ], - "expression": { - "id": 78071, - "name": "Output18Amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76043, - "src": "45597:14:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_userDefinedValueType$_Output18Amount_$76043_$", - "typeString": "type(Output18Amount)" - } - }, - "id": 78072, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "45612:6:172", - "memberName": "unwrap", - "nodeType": "MemberAccess", - "src": "45597:21:172", - "typeDescriptions": { - "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_Output18Amount_$76043_$returns$_t_uint256_$", - "typeString": "function (Output18Amount) pure returns (uint256)" - } - }, - "id": 78074, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "45597:39:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "arguments": [ - { - "id": 78077, - "name": "bobInputMax18", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 78048, - "src": "45660:13:172", - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_Input18Amount_$76045", - "typeString": "Input18Amount" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_userDefinedValueType$_Input18Amount_$76045", - "typeString": "Input18Amount" - } - ], - "expression": { - "id": 78075, - "name": "Input18Amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76045, - "src": "45639:13:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_userDefinedValueType$_Input18Amount_$76045_$", - "typeString": "type(Input18Amount)" - } - }, - "id": 78076, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "45653:6:172", - "memberName": "unwrap", - "nodeType": "MemberAccess", - "src": "45639:20:172", - "typeDescriptions": { - "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_Input18Amount_$76045_$returns$_t_uint256_$", - "typeString": "function (Input18Amount) pure returns (uint256)" - } - }, - "id": 78078, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "45639:35:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "45597:77:172", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 78091, - "nodeType": "IfStatement", - "src": "45593:183:172", - "trueBody": { - "id": 78090, - "nodeType": "Block", - "src": "45676:100:172", - "statements": [ - { - "expression": { - "id": 78088, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 78080, - "name": "aliceOutputMax18", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 78067, - "src": "45690:16:172", - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_Output18Amount_$76043", - "typeString": "Output18Amount" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "arguments": [ - { - "id": 78085, - "name": "bobInputMax18", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 78048, - "src": "45750:13:172", - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_Input18Amount_$76045", - "typeString": "Input18Amount" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_userDefinedValueType$_Input18Amount_$76045", - "typeString": "Input18Amount" - } - ], - "expression": { - "id": 78083, - "name": "Input18Amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76045, - "src": "45729:13:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_userDefinedValueType$_Input18Amount_$76045_$", - "typeString": "type(Input18Amount)" - } - }, - "id": 78084, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "45743:6:172", - "memberName": "unwrap", - "nodeType": "MemberAccess", - "src": "45729:20:172", - "typeDescriptions": { - "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_Input18Amount_$76045_$returns$_t_uint256_$", - "typeString": "function (Input18Amount) pure returns (uint256)" - } - }, - "id": 78086, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "45729:35:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 78081, - "name": "Output18Amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76043, - "src": "45709:14:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_userDefinedValueType$_Output18Amount_$76043_$", - "typeString": "type(Output18Amount)" - } - }, - "id": 78082, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "45724:4:172", - "memberName": "wrap", - "nodeType": "MemberAccess", - "src": "45709:19:172", - "typeDescriptions": { - "typeIdentifier": "t_function_wrap_pure$_t_uint256_$returns$_t_userDefinedValueType$_Output18Amount_$76043_$", - "typeString": "function (uint256) pure returns (Output18Amount)" - } - }, - "id": 78087, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "45709:56:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_Output18Amount_$76043", - "typeString": "Output18Amount" - } - }, - "src": "45690:75:172", - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_Output18Amount_$76043", - "typeString": "Output18Amount" - } - }, - "id": 78089, - "nodeType": "ExpressionStatement", - "src": "45690:75:172" - } - ] - } - }, - { - "expression": { - "id": 78107, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 78092, - "name": "aliceOutput", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 78044, - "src": "45907:11:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "expression": { - "baseExpression": { - "expression": { - "expression": { - "id": 78098, - "name": "aliceOrderIOCalculation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 78036, - "src": "45981:23:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_memory_ptr", - "typeString": "struct OrderIOCalculationV2 memory" - } - }, - "id": 78099, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "46005:5:172", - "memberName": "order", - "nodeType": "MemberAccess", - "referencedDeclaration": 76023, - "src": "45981:29:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 78100, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "46011:12:172", - "memberName": "validOutputs", - "nodeType": "MemberAccess", - "referencedDeclaration": 79041, - "src": "45981:42:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_IO_$78658_memory_ptr_$dyn_memory_ptr", - "typeString": "struct IO memory[] memory" - } - }, - "id": 78103, - "indexExpression": { - "expression": { - "id": 78101, - "name": "aliceOrderIOCalculation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 78036, - "src": "46024:23:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_memory_ptr", - "typeString": "struct OrderIOCalculationV2 memory" - } - }, - "id": 78102, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "46048:13:172", - "memberName": "outputIOIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 76025, - "src": "46024:37:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "45981:81:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_IO_$78658_memory_ptr", - "typeString": "struct IO memory" - } - }, - "id": 78104, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "46063:8:172", - "memberName": "decimals", - "nodeType": "MemberAccess", - "referencedDeclaration": 78655, - "src": "45981:90:172", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "hexValue": "30", - "id": 78105, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "46073:1:172", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "expression": { - "arguments": [ - { - "id": 78095, - "name": "aliceOutputMax18", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 78067, - "src": "45943:16:172", - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_Output18Amount_$76043", - "typeString": "Output18Amount" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_userDefinedValueType$_Output18Amount_$76043", - "typeString": "Output18Amount" - } - ], - "expression": { - "id": 78093, - "name": "Output18Amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76043, - "src": "45921:14:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_userDefinedValueType$_Output18Amount_$76043_$", - "typeString": "type(Output18Amount)" - } - }, - "id": 78094, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "45936:6:172", - "memberName": "unwrap", - "nodeType": "MemberAccess", - "src": "45921:21:172", - "typeDescriptions": { - "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_Output18Amount_$76043_$returns$_t_uint256_$", - "typeString": "function (Output18Amount) pure returns (uint256)" - } - }, - "id": 78096, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "45921:39:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 78097, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "45961:6:172", - "memberName": "scaleN", - "nodeType": "MemberAccess", - "referencedDeclaration": 72779, - "src": "45921:46:172", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$", - "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" - } - }, - "id": 78106, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "45921:163:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "45907:177:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 78108, - "nodeType": "ExpressionStatement", - "src": "45907:177:172" - }, - { - "assignments": [ - 78111 - ], - "declarations": [ - { - "constant": false, - "id": 78111, - "mutability": "mutable", - "name": "aliceInput18", - "nameLocation": "46187:12:172", - "nodeType": "VariableDeclaration", - "scope": 78144, - "src": "46173:26:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_Input18Amount_$76045", - "typeString": "Input18Amount" - }, - "typeName": { - "id": 78110, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 78109, - "name": "Input18Amount", - "nameLocations": [ - "46173:13:172" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 76045, - "src": "46173:13:172" - }, - "referencedDeclaration": 76045, - "src": "46173:13:172", - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_Input18Amount_$76045", - "typeString": "Input18Amount" - } - }, - "visibility": "internal" - } - ], - "id": 78126, - "initialValue": { - "arguments": [ - { - "arguments": [ - { - "expression": { - "id": 78119, - "name": "aliceOrderIOCalculation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 78036, - "src": "46288:23:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_memory_ptr", - "typeString": "struct OrderIOCalculationV2 memory" - } - }, - "id": 78120, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "46312:7:172", - "memberName": "IORatio", - "nodeType": "MemberAccess", - "referencedDeclaration": 76030, - "src": "46288:31:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "expression": { - "id": 78121, - "name": "Math", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46932, - "src": "46321:4:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Math_$46932_$", - "typeString": "type(library Math)" - } - }, - "id": 78122, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "46326:8:172", - "memberName": "Rounding", - "nodeType": "MemberAccess", - "referencedDeclaration": 46073, - "src": "46321:13:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Rounding_$46073_$", - "typeString": "type(enum Math.Rounding)" - } - }, - "id": 78123, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "46335:2:172", - "memberName": "Up", - "nodeType": "MemberAccess", - "referencedDeclaration": 46071, - "src": "46321:16:172", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$46073", - "typeString": "enum Math.Rounding" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_enum$_Rounding_$46073", - "typeString": "enum Math.Rounding" - } - ], - "expression": { - "arguments": [ - { - "id": 78116, - "name": "aliceOutputMax18", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 78067, - "src": "46256:16:172", - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_Output18Amount_$76043", - "typeString": "Output18Amount" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_userDefinedValueType$_Output18Amount_$76043", - "typeString": "Output18Amount" - } - ], - "expression": { - "id": 78114, - "name": "Output18Amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76043, - "src": "46234:14:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_userDefinedValueType$_Output18Amount_$76043_$", - "typeString": "type(Output18Amount)" - } - }, - "id": 78115, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "46249:6:172", - "memberName": "unwrap", - "nodeType": "MemberAccess", - "src": "46234:21:172", - "typeDescriptions": { - "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_Output18Amount_$76043_$returns$_t_uint256_$", - "typeString": "function (Output18Amount) pure returns (uint256)" - } - }, - "id": 78117, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "46234:39:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 78118, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "46274:13:172", - "memberName": "fixedPointMul", - "nodeType": "MemberAccess", - "referencedDeclaration": 72431, - "src": "46234:53:172", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_enum$_Rounding_$46073_$returns$_t_uint256_$attached_to$_t_uint256_$", - "typeString": "function (uint256,uint256,enum Math.Rounding) pure returns (uint256)" - } - }, - "id": 78124, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "46234:104:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 78112, - "name": "Input18Amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76045, - "src": "46202:13:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_userDefinedValueType$_Input18Amount_$76045_$", - "typeString": "type(Input18Amount)" - } - }, - "id": 78113, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "46216:4:172", - "memberName": "wrap", - "nodeType": "MemberAccess", - "src": "46202:18:172", - "typeDescriptions": { - "typeIdentifier": "t_function_wrap_pure$_t_uint256_$returns$_t_userDefinedValueType$_Input18Amount_$76045_$", - "typeString": "function (uint256) pure returns (Input18Amount)" - } - }, - "id": 78125, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "46202:146:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_Input18Amount_$76045", - "typeString": "Input18Amount" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "46173:175:172" - }, - { - "expression": { - "id": 78142, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 78127, - "name": "aliceInput", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 78042, - "src": "46358:10:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "expression": { - "baseExpression": { - "expression": { - "expression": { - "id": 78133, - "name": "bobOrderIOCalculation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 78039, - "src": "46690:21:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_memory_ptr", - "typeString": "struct OrderIOCalculationV2 memory" - } - }, - "id": 78134, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "46712:5:172", - "memberName": "order", - "nodeType": "MemberAccess", - "referencedDeclaration": 76023, - "src": "46690:27:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderV2_$79042_memory_ptr", - "typeString": "struct OrderV2 memory" - } - }, - "id": 78135, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "46718:12:172", - "memberName": "validOutputs", - "nodeType": "MemberAccess", - "referencedDeclaration": 79041, - "src": "46690:40:172", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_IO_$78658_memory_ptr_$dyn_memory_ptr", - "typeString": "struct IO memory[] memory" - } - }, - "id": 78138, - "indexExpression": { - "expression": { - "id": 78136, - "name": "bobOrderIOCalculation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 78039, - "src": "46731:21:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_memory_ptr", - "typeString": "struct OrderIOCalculationV2 memory" - } - }, - "id": 78137, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "46753:13:172", - "memberName": "outputIOIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 76025, - "src": "46731:35:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "46690:77:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_IO_$78658_memory_ptr", - "typeString": "struct IO memory" - } - }, - "id": 78139, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberLocation": "46768:8:172", - "memberName": "decimals", - "nodeType": "MemberAccess", - "referencedDeclaration": 78655, - "src": "46690:86:172", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "id": 78140, - "name": "FLAG_ROUND_UP", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 72386, - "src": "46778:13:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "arguments": [ - { - "id": 78130, - "name": "aliceInput18", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 78111, - "src": "46656:12:172", - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_Input18Amount_$76045", - "typeString": "Input18Amount" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_userDefinedValueType$_Input18Amount_$76045", - "typeString": "Input18Amount" - } - ], - "expression": { - "id": 78128, - "name": "Input18Amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76045, - "src": "46635:13:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_userDefinedValueType$_Input18Amount_$76045_$", - "typeString": "type(Input18Amount)" - } - }, - "id": 78129, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberLocation": "46649:6:172", - "memberName": "unwrap", - "nodeType": "MemberAccess", - "src": "46635:20:172", - "typeDescriptions": { - "typeIdentifier": "t_function_unwrap_pure$_t_userDefinedValueType$_Input18Amount_$76045_$returns$_t_uint256_$", - "typeString": "function (Input18Amount) pure returns (uint256)" - } - }, - "id": 78131, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "46635:34:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 78132, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "46670:6:172", - "memberName": "scaleN", - "nodeType": "MemberAccess", - "referencedDeclaration": 72779, - "src": "46635:41:172", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$", - "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" - } - }, - "id": 78141, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "46635:166:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "46358:443:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 78143, - "nodeType": "ExpressionStatement", - "src": "46358:443:172" - } - ] - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "calculateClearStateAlice", - "nameLocation": "44792:24:172", - "parameters": { - "id": 78040, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 78036, - "mutability": "mutable", - "name": "aliceOrderIOCalculation", - "nameLocation": "44854:23:172", - "nodeType": "VariableDeclaration", - "scope": 78145, - "src": "44826:51:172", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_memory_ptr", - "typeString": "struct OrderIOCalculationV2" - }, - "typeName": { - "id": 78035, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 78034, - "name": "OrderIOCalculationV2", - "nameLocations": [ - "44826:20:172" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 76041, - "src": "44826:20:172" - }, - "referencedDeclaration": 76041, - "src": "44826:20:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_storage_ptr", - "typeString": "struct OrderIOCalculationV2" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 78039, - "mutability": "mutable", - "name": "bobOrderIOCalculation", - "nameLocation": "44915:21:172", - "nodeType": "VariableDeclaration", - "scope": 78145, - "src": "44887:49:172", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_memory_ptr", - "typeString": "struct OrderIOCalculationV2" - }, - "typeName": { - "id": 78038, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 78037, - "name": "OrderIOCalculationV2", - "nameLocations": [ - "44887:20:172" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 76041, - "src": "44887:20:172" - }, - "referencedDeclaration": 76041, - "src": "44887:20:172", - "typeDescriptions": { - "typeIdentifier": "t_struct$_OrderIOCalculationV2_$76041_storage_ptr", - "typeString": "struct OrderIOCalculationV2" - } - }, - "visibility": "internal" - } - ], - "src": "44816:126:172" - }, - "returnParameters": { - "id": 78045, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 78042, - "mutability": "mutable", - "name": "aliceInput", - "nameLocation": "44974:10:172", - "nodeType": "VariableDeclaration", - "scope": 78145, - "src": "44966:18:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 78041, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "44966:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 78044, - "mutability": "mutable", - "name": "aliceOutput", - "nameLocation": "44994:11:172", - "nodeType": "VariableDeclaration", - "scope": 78145, - "src": "44986:19:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 78043, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "44986:7:172", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "44965:41:172" - }, - "scope": 78178, - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "id": 78161, - "nodeType": "FunctionDefinition", - "src": "46814:214:172", - "nodes": [], - "body": { - "id": 78160, - "nodeType": "Block", - "src": "46908:120:172", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 78155, - "name": "expression_", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 78147, - "src": "46952:11:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 78156, - "name": "CALCULATE_ORDER_ENTRYPOINT", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 75941, - "src": "46965:26:172", - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_SourceIndexV2_$55998", - "typeString": "SourceIndexV2" - } - }, - { - "id": 78157, - "name": "CALCULATE_ORDER_MAX_OUTPUTS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 75957, - "src": "46993:27:172", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_userDefinedValueType$_SourceIndexV2_$55998", - "typeString": "SourceIndexV2" - }, - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - ], - "expression": { - "id": 78153, - "name": "LibEncodedDispatch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 57164, - "src": "46925:18:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LibEncodedDispatch_$57164_$", - "typeString": "type(library LibEncodedDispatch)" - } - }, - "id": 78154, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "46944:7:172", - "memberName": "encode2", - "nodeType": "MemberAccess", - "referencedDeclaration": 57110, - "src": "46925:26:172", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_userDefinedValueType$_SourceIndexV2_$55998_$_t_uint256_$returns$_t_userDefinedValueType$_EncodedDispatch_$55875_$", - "typeString": "function (address,SourceIndexV2,uint256) pure returns (EncodedDispatch)" - } - }, - "id": 78158, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "46925:96:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_EncodedDispatch_$55875", - "typeString": "EncodedDispatch" - } - }, - "functionReturnParameters": 78152, - "id": 78159, - "nodeType": "Return", - "src": "46918:103:172" - } - ] - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_calculateOrderDispatch", - "nameLocation": "46823:23:172", - "parameters": { - "id": 78148, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 78147, - "mutability": "mutable", - "name": "expression_", - "nameLocation": "46855:11:172", - "nodeType": "VariableDeclaration", - "scope": 78161, - "src": "46847:19:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 78146, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "46847:7:172", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "46846:21:172" - }, - "returnParameters": { - "id": 78152, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 78151, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 78161, - "src": "46891:15:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_EncodedDispatch_$55875", - "typeString": "EncodedDispatch" - }, - "typeName": { - "id": 78150, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 78149, - "name": "EncodedDispatch", - "nameLocations": [ - "46891:15:172" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 55875, - "src": "46891:15:172" - }, - "referencedDeclaration": 55875, - "src": "46891:15:172", - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_EncodedDispatch_$55875", - "typeString": "EncodedDispatch" - } - }, - "visibility": "internal" - } - ], - "src": "46890:17:172" - }, - "scope": 78178, - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "id": 78177, - "nodeType": "FunctionDefinition", - "src": "47034:196:172", - "nodes": [], - "body": { - "id": 78176, - "nodeType": "Block", - "src": "47122:108:172", - "nodes": [], - "statements": [ - { - "expression": { - "arguments": [ - { - "id": 78171, - "name": "expression_", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 78163, - "src": "47166:11:172", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 78172, - "name": "HANDLE_IO_ENTRYPOINT", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 75949, - "src": "47179:20:172", - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_SourceIndexV2_$55998", - "typeString": "SourceIndexV2" - } - }, - { - "id": 78173, - "name": "HANDLE_IO_MAX_OUTPUTS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 75965, - "src": "47201:21:172", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_userDefinedValueType$_SourceIndexV2_$55998", - "typeString": "SourceIndexV2" - }, - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - ], - "expression": { - "id": 78169, - "name": "LibEncodedDispatch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 57164, - "src": "47139:18:172", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LibEncodedDispatch_$57164_$", - "typeString": "type(library LibEncodedDispatch)" - } - }, - "id": 78170, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "47158:7:172", - "memberName": "encode2", - "nodeType": "MemberAccess", - "referencedDeclaration": 57110, - "src": "47139:26:172", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$_t_userDefinedValueType$_SourceIndexV2_$55998_$_t_uint256_$returns$_t_userDefinedValueType$_EncodedDispatch_$55875_$", - "typeString": "function (address,SourceIndexV2,uint256) pure returns (EncodedDispatch)" - } - }, - "id": 78174, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "47139:84:172", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_EncodedDispatch_$55875", - "typeString": "EncodedDispatch" - } - }, - "functionReturnParameters": 78168, - "id": 78175, - "nodeType": "Return", - "src": "47132:91:172" - } - ] - }, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_handleIODispatch", - "nameLocation": "47043:17:172", - "parameters": { - "id": 78164, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 78163, - "mutability": "mutable", - "name": "expression_", - "nameLocation": "47069:11:172", - "nodeType": "VariableDeclaration", - "scope": 78177, - "src": "47061:19:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 78162, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "47061:7:172", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "47060:21:172" - }, - "returnParameters": { - "id": 78168, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 78167, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 78177, - "src": "47105:15:172", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_EncodedDispatch_$55875", - "typeString": "EncodedDispatch" - }, - "typeName": { - "id": 78166, - "nodeType": "UserDefinedTypeName", - "pathNode": { - "id": 78165, - "name": "EncodedDispatch", - "nameLocations": [ - "47105:15:172" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 55875, - "src": "47105:15:172" - }, - "referencedDeclaration": 55875, - "src": "47105:15:172", - "typeDescriptions": { - "typeIdentifier": "t_userDefinedValueType$_EncodedDispatch_$55875", - "typeString": "EncodedDispatch" - } - }, - "visibility": "internal" - } - ], - "src": "47104:17:172" - }, - "scope": 78178, - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - } - ], - "abstract": false, - "baseContracts": [ - { - "baseName": { - "id": 76047, - "name": "IOrderBookV3", - "nameLocations": [ - "10622:12:172" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 79289, - "src": "10622:12:172" - }, - "id": 76048, - "nodeType": "InheritanceSpecifier", - "src": "10622:12:172" - }, - { - "baseName": { - "id": 76049, - "name": "ReentrancyGuard", - "nameLocations": [ - "10636:15:172" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 43711, - "src": "10636:15:172" - }, - "id": 76050, - "nodeType": "InheritanceSpecifier", - "src": "10636:15:172" - }, - { - "baseName": { - "id": 76051, - "name": "Multicall", - "nameLocations": [ - "10653:9:172" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 45336, - "src": "10653:9:172" - }, - "id": 76052, - "nodeType": "InheritanceSpecifier", - "src": "10653:9:172" - }, - { - "baseName": { - "id": 76053, - "name": "OrderBookV3FlashLender", - "nameLocations": [ - "10664:22:172" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 75553, - "src": "10664:22:172" - }, - "id": 76054, - "nodeType": "InheritanceSpecifier", - "src": "10664:22:172" - }, - { - "baseName": { - "id": 76055, - "name": "DeployerDiscoverableMetaV3", - "nameLocations": [ - "10688:26:172" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 54788, - "src": "10688:26:172" - }, - "id": 76056, - "nodeType": "InheritanceSpecifier", - "src": "10688:26:172" - } - ], - "canonicalName": "OrderBook", - "contractDependencies": [], - "contractKind": "contract", - "documentation": { - "id": 76046, - "nodeType": "StructuredDocumentation", - "src": "10532:68:172", - "text": "@title OrderBook\n See `IOrderBookV1` for more documentation." - }, - "fullyImplemented": true, - "linearizedBaseContracts": [ - 78178, - 54788, - 73107, - 75553, - 45336, - 43711, - 79289, - 55660, - 78980 - ], - "name": "OrderBook", - "nameLocation": "10609:9:172", - "scope": 78179, - "usedErrors": [ - 56287, - 56724, - 73087, - 73092, - 75439, - 75884, - 75891, - 75898, - 75905, - 75910, - 75915, - 75920, - 75925, - 78997, - 79000, - 79069, - 79078, - 79081, - 79084, - 79087, - 79090 - ] - } - ], - "license": "CAL" - }, - "id": 172 -} \ No newline at end of file diff --git a/orderbook-rs/src/orderbook/registry.rs b/orderbook-rs/src/orderbook/registry.rs index 4920a7ed3..4ed0059bb 100644 --- a/orderbook-rs/src/orderbook/registry.rs +++ b/orderbook-rs/src/orderbook/registry.rs @@ -1,7 +1,7 @@ use alloy_sol_types::sol; use ethers::contract::abigen; -sol!(IOrderBookV3, "src/orderbook/abi/OrderBook.json"); +sol!(IOrderBookV3, "src/orderbook/abi/IOrderBookV3.json"); abigen!(IParserV1, "src/interpreter/abi/IParserV1.json"); abigen!(IExpressionDeployerV3,